s3のVPCエンドポイント情報

基本機能

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-endpoints.html

  • サブネット単位で設定可能 -- 実際はRouteTable単位

インターフェースエンドポイントとゲートウェイエンドポイントがある。 s3はゲートウェイエンドポイント。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpce-gateway.html

プレフィックスリストの ID の形式は pl-xxxxxxx で、プレフィックスリストの名前の形式は「com.amazonaws.region.service」

作るとこいう感じのリソースができるので、 これをサブネットのRouteTBLに追加すると設定される。

エンドポイントにはエンドポイントポリシーが割振れて、これでアクセスコントロールが出来る。 今はまだ全許可しかしてない。 (アウトバウンドを抑制するようなセキュリティ要件が厳しい場合に使用するのか?)

1 つの VPC 内に複数のエンドポイントを (複数のサービス用などに) 作成できます。また、1 つのサービス用に複数のエンドポイントを作成し、複数のルートテーブルを使用して、この同じサービスに複数のサブネットから異なるアクセスポリシーを適用することもできます。

なるほど。S3とDynamoDBと両方ともをVPCエンドポイントにする場合二つのエンドポイントを一つのRouteテーブルに紐付ける形になると。

きになる制限

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-endpoints-s3.html

エンドポイントポリシーでは、Docker イメージレイヤーを保存するために Amazon ECR で使用される Amazon S3 バケットへのアクセスを許可する必要があります。詳細については、Amazon Elastic Container Registry ユーザーガイドの「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

ECR使ってる場合ECRのバケットへの許可を明示的にやる必要がありそう。

特定の S3 バケットへのアクセスを制限するポリシーを作成できます。これは、VPC で S3 バケットを使用する他の AWS サービスがある場合に便利です。my_secure_bucket のみへのアクセスを制限するポリシーの例を次に示します。

なるほど。VPCエンドポイント側の設定でVPC内部のリソースからのアクセスを制御できると。

Amazon S3 バケットポリシーの使用

バケットポリシー側でもできると。 リクエストを出す側と受け付ける側。どちら側でやるかは好みだと思うけど。

それなりに複雑になってきてる構成の場合エンドポイントルールでやるのはそれなりに効率良さそう。