Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
19
Help us understand the problem. What is going on with this article?
@takuma_yoshida

VPCプライベートネットワークからS3へ接続する

More than 5 years have passed since last update.

従来はVPC内のインスタンスからS3に接続するためには、インスタンスがパブリックネットワーク内にある必要がありました。しかし、VPCエンドポイントという特別な裏口ができたので、プライベートネットワーク内のインスタンスもこの裏口からS3に接続することが可能になりました。

VPC内のプライベートネットワークからS3への接続方法

1 VPCエンドポイントを作成する

1-1: VPCコンソール > エンドポイント作成

endpoint1

1-2: VPCを選択

*VPC-ID : VPCエンドポイント = 1:1になります

1-3: バケットポリシーを設定

今回はFull Accessの設定としました。特定のバケットへの通信のみ許可する場合は、こちらでポリシーを追加すると良いと思います。

endpoint2

1-4: ひもづけるルーティングテーブルを選択

*インターネットゲートウェイに紐付いていない、ローカルNWのみ通信可能なルーティングテーブルを選択してください

endpoint3

そうすると、ルーティングテーブルが次のようにupdateされます

endpoint4

以上で設定は終わりです!

注意点

【設定時の話】
VPCエンドポイントを設定時、既存インスタンスからS3への接続が途切れるそうです(未検証)。設定時はタイミングを見計らうといいと思われます

【バケットポリシーの話】
従来、S3接続のIP制限はバケットポリシーにCIDRを記載していました。

ドキュメントには

When using Amazon S3 endpoints, you cannot use a bucket policy or an IAM policy to allow access from a VPC CIDR range (the private IP address range). VPC CIDR blocks can be overlapping or identical, which may lead to unexpected results

とあり、Source-IPがプライベートIPになったからって、IP制限を直接バケットポリシーに書かないでね、とかいてあります。特定インスタンスからS3接続を許可したい場合は、Security-Groupのoutband規制で絞るなど、他の方法で回避するのでしょうか。

2 確認

以下の通り、インターネットに通信できない状態ですが

[root@ip-172-31-6-140 ~]# curl https://www.google.co.jp/curl: (7) Failed to connect to 2404:6800:4008:c01::5e: Network is unreachable
[root@ip-172-31-6-140 ~]#

無事、s3上にある画像ファイルをDLすることができました。

[root@ip-172-31-6-140 ~]# aws s3 cp s3://test-3-shake.com/20150305051314_thumb.jpg .
download: s3://test-3-shake.com/20150305051314_thumb.jpg to ./20150305051314_thumb.jpg
[root@ip-172-31-6-140 ~]#

通信内容をtcpdumpしてwiresharkで見てみた

hoge

S3との通信内容をtcpdumpしてみました。ご覧の通り、S3(54.231.230.6)へはインターネット経由で接続していることがわかります。(パブリックネットワークからS3へ接続した時と変わりありません)

プライベートネットワーク内のインスタンスとS3との接続自体がローカル通信(= 接続速度速くなる)であることを期待していたのですが、そういう訳ではないようです。

セキュリティ要件が厳しく、プライベートネットワーク内のインスタンスからS3へNATインスタンス越しに接続している方には、とても嬉しいニュースかなと思います!

19
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
19
Help us understand the problem. What is going on with this article?