AWS PrivateLink で使用するマルチリージョンアクセスポイントの設定
AWS PrivateLink は、Virtual Private Cloud (VPC) 内のプライベート IP アドレスを使用して Amazon S3 にプライベート接続できます。VPC 内で 1 つ以上のインターフェイスエンドポイントをプロビジョニングして、Amazon S3 マルチリージョンアクセスポイントに接続できます。
AWS Management Console、AWS CLI、または AWS SDK によって、マルチリージョンアクセスポイントの com.amazonaws.s3-global.accesspoint エンドポイントを作成することができます。マルチリージョンアクセスポイントのインターフェイスエンドポイントを設定する方法の詳細については、VPC ユーザーガイドの「インターフェイス VPC エンドポイント」を参照してください。
インターフェイスエンドポイント経由でマルチリージョンアクセスポイントにリクエストを送信するには、次の手順に従って VPC とマルチリージョンアクセスポイントを設定します。
AWS PrivateLink で使用するマルチリージョンアクセスポイントを設定するには
-
マルチリージョンアクセスポイントに接続できる適切な VPC エンドポイントを作成するか、所有します。VPC エンドポイントの作成の詳細については、VPC ユーザーガイドの「インターフェイス VPC エンドポイント 」を参照してください。
重要
必ず com.amazonaws.s3-global.acesspoint エンドポイントを作成してください。他のエンドポイントタイプでは、マルチリージョンアクセスポイントにアクセスできません。
この VPC エンドポイントが作成されると、エンドポイントに対してプライベート DNS が有効になっている場合、VPC 内のすべてのマルチリージョンアクセスポイントリクエストはこのエンドポイントを経由します。これはデフォルトで有効になっています。
-
マルチリージョンアクセスポイントポリシーが VPC エンドポイントからの接続をサポートしていない場合は、更新する必要があります。
-
個々のバケットポリシーで、マルチリージョンアクセスポイントのユーザーへのアクセスが許可されていることを確認します。
マルチリージョンアクセスポイントは、リクエスト自体を満たすのではなく、バケットにリクエストをルーティングすることによって機能することに注意してください。リクエストの発信者は、マルチリージョンアクセスポイントに対する許可を持ち、マルチリージョンアクセスポイント内の個々のバケットへのアクセスが許可されている必要があることを覚えておくことが重要です。そうしないと、リクエストは、発信者がリクエストを実行するための許可を持たないバケットにルーティングされる可能性があります。マルチリージョンアクセスポイントと関連付けられているバケットは、同じまたは別の AWS アカウントに所有されることができます。ただし、許可が正しく設定されていれば、異なるアカウントの VPC でマルチリージョンアクセスポイントを使用できます。
このため、VPC エンドポイントポリシーでは、マルチリージョンアクセスポイントと、リクエストを処理できるようにする基盤となる各バケットの両方へのアクセスを許可する必要があります。例えば、エイリアス mfzwi23gnjvgw.mrap
を持つマルチリージョンアクセスポイントがあるとします。バケット amzn-s3-demo-bucket1
および amzn-s3-demo-bucket2
によって支えられており、すべて AWS アカウント 123456789012
が所有しています。この場合、以下の VPC エンドポイントでは、mfzwi23gnjvgw.mrap
に対して行われた VPC からの GetObject
リクエストを、いずれかのバッキングバケットで実行できます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Read-buckets-and-MRAP-VPCE-policy", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket1
/*", "arn:aws:s3:::amzn-s3-demo-bucket2
/*", "arn:aws:s3::123456789012:accesspoint/mfzwi23gnjvgw.mrap/object/*" ] }] }
前述したように、マルチリージョンアクセスポイントポリシーが VPC エンドポイント経由のアクセスをサポートするように設定されていることも確認する必要があります。アクセスをリクエストしている VPC エンドポイントを指定する必要はありません。次のサンプルポリシーは、GetObject
リクエストにマルチリージョンアクセスポイントを使用しようとしているリクエスターにアクセスを許可します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Open-read-MRAP-policy", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3::123456789012:accesspoint/mfzwi23gnjvgw.mrap/object/*" }] }
もちろん、個々のバケットには、VPC エンドポイントを介して送信されたリクエストからのアクセスをサポートするポリシーが必要です。以下のポリシーの例では、VPC エンドポイントを介して行われたリクエストを含む匿名ユーザーに読み取りアクセス許可が付与されます。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Public-read", "Effect":"Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket1
", "arn:aws:s3:::amzn-s3-demo-bucket2
/*"] }] }
VPC エンドポイントポリシーの編集については、「VPC ユーザーガイド」の「VPC エンドポイントによるサービスへのアクセスのコントロール」を参照してください。