バケットポリシーの例 - Amazon S3 on Outposts

バケットポリシーの例

S3 on Outposts バケットポリシーを使用すると、S3 on Outposts バケット内のオブジェクトへのアクセスを保護して、適切な権限を持つユーザーだけがアクセスできるようにすることができます。適切な権限を持たない認証済みユーザーが S3 on Outposts リソースにアクセスできないようにすることもできます。

このセクションでは、S3 on Outposts バケットポリシーの一般的なユースケース例を紹介します。これらのポリシーをテストするには、user input placeholders をお客様の情報 (バケット名など) と置き換えます。

オブジェクトのセットに対するアクセス許可を付与または拒否するために、Amazon リソースネーム (ARN) やその他の値でワイルドカード文字 (*) を使用できます。例えば、共通のプレフィックスで始まるか、.html などの特定の拡張子で終わるオブジェクトのグループへのアクセスをコントロールできます。

AWS Identity and Access Management (IAM) ポリシー言語については、「S3 on Outposts で IAM を設定する」を参照してください。

注記

Amazon S3 コンソールを使用して s3outposts のアクセス許可をテストするときには、コンソールに必要な s3outposts:createendpoints3outposts:listendpoints などのアクセス許可を追加で付与する必要があります。

バケットポリシーを作成するためのその他のリソース

特定の IP アドレスに基づく Amazon S3 on Outposts バケットへのアクセスの管理

バケットポリシーは、リソースベースの AWS Identity and Access Management (IAM) ポリシーを使用して、バケットとその中のオブジェクトへのアクセス許可を付与できます。バケット所有者のみが、ポリシーをバケットに関連付けることができます。バケットに添付された許可は、バケット所有者が所有するバケットのすべてのオブジェクトに適用されます。バケットポリシーのサイズは 20 KB に制限されています。詳細については、「バケットポリシー」を参照してください。

特定の IP アドレスへのアクセスの制限

以下の例では、リクエストが指定した IP アドレス範囲から発信されたものでない限り、指定したバケット内のオブジェクトに対してすべてのユーザーが S3 on Outposts のオペレーションを実行できないようにします。

注記

特定の IP アドレスへのアクセスを制限する場合は、S3 on Outposts バケットにアクセスできる VPC エンドポイント、VPC ソース IP アドレス、または外部 IP アドレスも必ず指定してください。指定しないと、適切な権限が設定されていない限り、すべてのユーザーが S3 on Outposts バケット内のオブジェクトに対して s3outposts オペレーションを実行することをポリシーで拒否されている場合、バケットにアクセスできなくなる可能性があります。

このポリシーの Condition ステートメントは、許可された IP バージョン 4 (IPv4) の IP アドレスの範囲として、192.0.2.0/24 を識別します。

Condition ブロックでは、NotIpAddress 条件と aws:SourceIp 条件キー (AWS 全体をターゲットとする条件キー) を使用します。aws:SourceIp 条件キーは、パブリック IP アドレス範囲にのみ使用できます。これらの条件キーの詳細については、「S3 on Outposts のアクション、リソース、条件キー」を参照してください。aws:SourceIp IPv4 値は標準の CIDR 表記を使用します。詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素のリファレンス」を参照してください。

警告

この S3 on Outposts ポリシーを使用する前に、この例の 192.0.2.0/24 IP アドレス範囲をユースケースに適した値に置き換えてください。置き換えないと、バケットにアクセスできなくなります。

{ "Version": "2012-10-17", "Id": "S3OutpostsPolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Deny", "Principal": "*", "Action": "s3outposts:*", "Resource": [ "arn:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/accesspoint/EXAMPLE-ACCESS-POINT-NAME" "arn:aws:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET" ], "Condition": { "NotIpAddress": { "aws:SourceIp": "192.0.2.0/24" } } } ] }

IPv4 アドレスと IPv6 アドレスの許可

IPv6 アドレスの使用を開始する場合は、既存の IPv4 アドレス範囲に IPv6 アドレス範囲を追加して組織のすべてのポリシーを更新することをお勧めします。こうすることで、IPv6 への移行後もポリシーが引き続き機能するようになります。

以下の S3 on Outposts バケットポリシーの例は、組織の有効な IP アドレスすべてを含めるために、IPv4 アドレス範囲と IPv6 アドレス範囲を混在させる方法を示しています。このポリシーの例では、サンプル IP アドレス (192.0.2.1 および 2001:DB8:1234:5678::1) へのアクセスを許可したり、アドレス 203.0.113.1 および 2001:DB8:1234:5678:ABCD::1 へのアクセスを拒否したりできます。

aws:SourceIp 条件キーは、パブリック IP アドレス範囲にのみ使用できます。aws:SourceIp の IPv6 の値は、標準の CIDR 形式で指定する必要があります。IPv6 では、0 の範囲を表すために :: の使用がサポートされています (例: 2001:DB8:1234:5678::/64)。詳細については、『IAM ユーザーガイド』の「IP アドレス条件演算子」を参照してください。

警告

この S3 on Outposts ポリシーを使用する前に、この例の IP アドレス範囲をユースケースに適した値に置き換えます。置き換えないと、バケットにアクセスできなくなる可能性があります。

{ "Id": "S3OutpostsPolicyId2", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIPmix", "Effect": "Allow", "Principal": "*", "Action": "s3outposts:*", "Resource": [ "arn:aws:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET", "arn:aws:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET/*" ], "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "2001:DB8:1234:5678::/64" ] }, "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "2001:DB8:1234:5678:ABCD::/80" ] } } } ] }