エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する
VPC エンドポイントポリシーは、VPC エンドポイントにアタッチできるリソースベースのポリシーで、どの AWS プリンシパルがエンドポイントを使用して AWS のサービス にアクセスするかを制御します。
エンドポイントポリシーは、アイデンティティベースのポリシーやリソースベースのポリシーを上書き、または置き換えません。例えば、Amazon S3 に接続するためにインターフェイスエンドポイントを使用する場合、Amazon S3 バケットポリシーを使用して、特定のエンドポイントまたは特定の VPC からのバケットへのアクセスを制御することもできます。
考慮事項
-
エンドポイントポリシーは、IAM ポリシー言語を使用する JSON ポリシードキュメントです。エンドポイントポリシーには、プリンシパル要素を含める必要があります。エンドポイントポリシーのサイズは 20,480 文字 (空白を含む) を超えることはできません。
-
AWS のサービス のインターフェイスまたはゲートウェイエンドポイントを作成するときに、エンドポイントポリシーをエンドポイントにアタッチできます。いつでもエンドポイントポリシーの更新ができます。エンドポイントポリシーをアタッチしない場合、デフォルトのエンドポイントポリシーがアタッチされます。
-
すべての AWS のサービス がエンドポイントポリシーをサポートしているわけではありません。AWS のサービス は、エンドポイントポリシーをサポートしていない場合、サービスのあらゆるエンドポイントへのフルアクセスを許可します。詳細については、「エンドポイントポリシーのサポートを表示する」を参照してください。
-
AWS のサービス 以外のエンドポイントサービスの VPC エンドポイントを作成すると、エンドポイントへのフルアクセスが許可されます。
-
ワイルドカード文字 (* または ?) または数値条件演算子を、システム生成識別子 (
aws:PrincipalAccount
またはaws:SourceVpc
など) を参照するグローバルコンテキストキーで使用することはできません。 -
文字列条件演算子を使用する場合は、各ワイルドカード文字の前後に少なくとも 6 つの連続した文字を使用する必要があります。
-
リソースまたは条件要素で ARN を指定する場合、ARN のアカウント部分にはアカウント ID またはワイルドカード文字を含めることができますが、両方を含めることはできません。
デフォルトのエンドポイントポリシー
デフォルトのエンドポイントポリシーでは、エンドポイントへのフルアクセスが許可されています。
{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } ] }
インターフェイスエンドポイントのポリシー
AWS のサービス のエンドポイントポリシーの例については、「AWS PrivateLink と統合する AWS のサービス」を参照してください。テーブルの最初の列には、AWS のサービス ごとの AWS PrivateLink ドキュメントへのリンクが含まれています AWS のサービス がエンドポイントポリシーをサポートしている場合、そのドキュメントにはエンドポイントポリシーの例が含まれています。
ゲートウェイエンドポイントのプリンシパル
ゲートウェイエンドポイントでは、Principal
要素を *
に設定する必要があります。プリンシパルを指定するには、aws:PrincipalArn
条件キーを使用します。
"Condition": { "StringEquals": { "aws:PrincipalArn": "
arn:aws:iam::123456789012:user/endpointuser
" } }
次の形式でプリンシパルを指定すると、アカウントのすべてのユーザーとロールではなく、AWS アカウントのルートユーザー のみにアクセスが許可されます。
"AWS": "
account_id
"
ゲートウェイエンドポイントのエンドポイントポリシーの例については、次を参照してください。
VPC エンドポイントポリシーを更新する
次の手順を使用して、AWS のサービス のエンドポイントポリシーを更新します。エンドポイントポリシーを更新した後、変更が有効になるまでに数分かかる場合があります。
コンソールを使用してエンドポイントポリシーを変更するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで、[Endpoints] (エンドポイント) を選択します。
-
VPC エンドポイントを選択します。
-
[Actions] (アクション)、[Manage policy] (ポリシーを管理) の順に選択します。
-
[Full Access] (フルアクセス) を選択してサービスへのフルアクセスを許可するか、[Custom] (カスタム) を選択してカスタムポリシーをアタッチします。
-
[Save] を選択します。
コマンドラインを使用してエンドポイントポリシーを変更するには
-
modify-vpc-endpoint (AWS CLI)
-
Edit-EC2VpcEndpoint (Tools for Windows PowerShell)