• 検索結果がありません。

S3 バケット ポリシーの例

バケットポリシーでは、そのポリシーが関連付けられたバケットに対するアクセス権限を 指定します。バケットポリシーは、S3 PutBucketPolicy APIを使用して設定します。

バケットポリシーを設定するには、AWS CLIで次のコマンドを使用します。

> aws s3api put-bucket-policy --bucket examplebucket --policy file://

policy.json

例:すべてのユーザにバケットへの読み取り専用アクセスを許可する

この例では、匿名ユーザを含むすべてのユーザにバケット内のオブジェクトのリスト とバケット内のすべてのオブジェクトのGet Object処理を許可しています。それ以外 の処理はすべて拒否されます。バケットへの書き込みがrootアカウントにしか許可さ れないため、このポリシーは限定的な状況でしか使用されないことに注意してくださ い。

{

"Statement": [ {

"Sid": "AllowEveryoneReadOnlyAccess", "Effect": "Allow",

"Principal": "*",

"Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource":

["urn:sgws:s3:::examplebucket","urn:sgws:s3:::examplebucket/*"]

} ] }

例:特定のアカウントのすべてのユーザにフルアクセスを許可し、別のアカウントの すべてのユーザにバケットへの読み取り専用アクセスを許可する

この例では、指定したアカウントのすべてのユーザにバケットへのフルアクセスを許 可しています。さらに、アカウントをもう1つ指定し、そのアカウントのすべてのユー ザには、バケットのList処理と「shared/」というオブジェクトキープレフィックスで 始まるバケット内のオブジェクトのGet処理のみを許可しています。

注:StorageGRID Webscaleでは、非所有者アカウント(匿名アカウントを含む)に

よって作成されたオブジェクトが、バケット所有者アカウントによって所有されま す。これらのオブジェクトにはバケットポリシーが適用されます。

{

"Statement": [ {

"Effect": "Allow", "Principal": {

"SGWS": "95390887230002558202"

},

"Action": "s3:*", "Resource": [

"urn:sgws:s3:::examplebucket/*"

] }, {

"Effect": "Allow", "Principal": {

"SGWS": "31181711887329436680"

},

"Action": "s3:GetObject",

"Resource": "urn:sgws:s3:::examplebucket/shared/*"

}, {

"Effect": "Allow", "Principal": {

"SGWS": "31181711887329436680"

},

"Action": "s3:ListBucket",

"Resource": "urn:sgws:s3:::examplebucket", "Condition": {

"StringLike": {

"s3:prefix": "shared/*"

} } } ] }

例:すべてのユーザにバケットへの読み取り専用アクセスを許可し、指定したグルー プにフルアクセスを許可する

この例では、指定したアカウントの匿名ユーザを含むすべてのユーザにバケットのList 処理とバケット内のすべてのオブジェクトのGET Object処理を許可し、そのうちの

Marketingグループに属するユーザにのみフルアクセスを許可しています。

{

"Statement": [ {

"Effect": "Allow", "Principal": {

"SGWS": "urn:sgws:identity::95390887230002558202:federated-group/

Marketing"

},

"Action": "s3:*", "Resource": [

"urn:sgws:s3:::examplebucket", "urn:sgws:s3:::examplebucket/*"

] }, {

"Effect": "Allow", "Principal": "*",

"Action": ["s3:ListBucket","s3:GetObject"], "Resource": [

"urn:sgws:s3:::examplebucket", "urn:sgws:s3:::examplebucket/*"

] } ] }

例:クライアントのIP範囲を限定して、すべてのユーザにバケットへの読み取り / 書 き込みアクセスを許可する

この例では、指定したIP範囲(54.240.143.0~54.240.143.255で54.240.143.188を除く)か らの要求についてのみ、匿名ユーザを含むすべてのユーザにバケットのList処理とバ ケット内のすべてのオブジェクトの全処理を許可しています。それ以外の処理やIP範 囲外からの要求はすべて拒否されます。

10.4以降)でのみサポートされます。

{

"Statement": [ {

"Sid": "AllowEveryoneReadWriteAccessIfInSourceIpRange", "Effect": "Allow",

"Principal": "*",

"Action": [ "s3:*Object", "s3:ListBucket" ], "Resource":

["urn:sgws:s3:::examplebucket","urn:sgws:s3:::examplebucket/*"], "Condition": {

"IpAddress": {"sgws:SourceIp": "54.240.143.0/24"}, "NotIpAddress": {"sgws:SourceIp": "54.240.143.188"}

} } ] }

例:指定したフェデレーションユーザにのみバケットへのフルアクセスを許可する この例では、Bobというフェデレーションユーザにexamplebucketバケットとそのオ ブジェクトへのフルアクセスを許可しています。「root」を含む他のユーザについて は、すべての処理を明示的に拒否しています。ただし、この場合も「root」によるPut/

Get/DeleteBucketPolicyは拒否されません。

{

"Statement": [ {

"Effect": "Allow", "Principal": {

"SGWS": "urn:sgws:identity::95390887230002558202:federated-user/Bob"

},

"Action": [ "s3:*"

],

"Resource": [

"urn:sgws:s3:::examplebucket", "urn:sgws:s3:::examplebucket/*"

] }, {

"Effect": "Deny", "NotPrincipal": {

"SGWS": "urn:sgws:identity::95390887230002558202:federated-user/Bob"

},

"Action": [ "s3:*"

],

"Resource": [

"urn:sgws:s3:::examplebucket", "urn:sgws:s3:::examplebucket/*"

] } ] }

関連概念

バケットの処理(21ページ)

関連したドキュメント