メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

ポリシーでのアクセス許可の指定

Amazon S3 は、ポリシー内で指定できる一連のアクセス権限を定義します。それぞれのアクセス権限は、特定の Amazon S3 オペレーションに対応するキーワードです(『Amazon Simple Storage Service API Reference』の「バケットに対するオペレーション」および「オブジェクトに対するオペレーション」を参照)。

このセクションでは、ポリシーで指定できるオブジェクトオペレーションに対するアクセス権限のリストを示します。

オブジェクトオペレーションに対する Amazon S3 のアクセス権限

アクセス許可 Amazon S3 オペレーション
s3:AbortMultipartUpload マルチパートアップロードの中止
s3:DeleteObject DELETE Object

s3:DeleteObjectTagging

DELETE Object tagging
s3:DeleteObjectVersion DELETE Object(オブジェクトの特定のバージョンを指定する場合)

s3:DeleteObjectVersionTagging

DELETE Object tagging (オブジェクトの特定のバージョンを指定する場合)
s3:GetObject

GET ObjectHEAD ObjectGET Object torrent

バージョニング対応のバケットに対してこのアクセス許可を付与すると、常に最新バージョンのデータが取得されます。

s3:GetObjectAcl GET Object ACL

s3:GetObjectTagging

GET Object tagging
s3:GetObjectTorrent GET Object torrent
s3:GetObjectVersion

GET ObjectHEAD ObjectGET Object torrent

特定のバージョンのオブジェクトデータに対するアクセスを許可するには、このアクセス許可を付与する必要があります。つまり、バージョン番号を指定してこれらのリクエストを実行する場合は、この Amazon S3 アクセス権限が必要です。

s3:GetObjectVersionAcl GET ACL(オブジェクトの特定のバージョンを指定する場合)

s3:GetObjectVersionTagging

GET Object tagging (オブジェクトの特定のバージョンを指定する場合)
s3:GetObjectVersionTorrent GET Object Torrent versioning
s3:ListMultipartUploadParts パートのリスト
s3:PutObject

PUT ObjectPOST ObjectInitiate Multipart UploadUpload PartComplete Multipart UploadPUT Object - Copy

s3:PutObjectAcl PUT Object ACL

s3:PutObjectTagging

PUT Object tagging
s3:PutObjectVersionAcl PUT Object ACL (オブジェクトの特定のバージョンを指定する場合)

s3:PutObjectVersionTagging

PUT Object tagging (オブジェクトの特定のバージョンを指定する場合)

s3:RestoreObject

POST Object restore

以下のバケットポリシーの例では、ユーザー(Dave)に s3:PutObjects3:PutObjectAcl のアクセス許可を付与します。Principal エレメントを削除すれば、ユーザーにポリシーをアタッチできます。これらはオブジェクトオペレーションであるため、ARN Resource の相対 ID 部分ではオブジェクト(examplebucket/*)を指定します。詳細については、「ポリシーでのリソースの指定」を参照してください。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:user/Dave" }, "Action": ["s3:PutObject","s3:PutObjectAcl"], "Resource": "arn:aws:s3:::examplebucket/*" } ] }

ワイルドカードを使用して、すべての Amazon S3 アクションに対するアクセス権限を付与することもできます。

Copy
"Action": "*"

このセクションでは、ポリシーで指定できるバケットオペレーションに関連するアクセス権限のリストを示します。

バケットオペレーションに関連する Amazon S3 アクセス権限

アクセス許可のキーワード 対応する Amazon S3 オペレーション
s3:CreateBucket PUT Bucket
s3:DeleteBucket DELETE Bucket
s3:ListBucket GET Bucket (List Objects)HEAD Bucket
s3:ListBucketVersions GET Bucket Object versions
s3:ListAllMyBuckets GET Service
s3:ListBucketMultipartUploads マルチパートアップロードのリスト

以下のユーザーポリシーの例では、ユーザーに s3:CreateBuckets3:ListAllMyBucketss3:GetBucketLocation のアクセス許可を付与します。これらのすべてのアクセス許可で、ARN Resource の相対 ID 部分は「*」に設定します。その他のすべてのバケットアクションには、バケット名を指定する必要があります。詳細については、「ポリシーでのリソースの指定」を参照してください。

Copy
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::*" ] } ] }

ユーザーがコンソールを使用してバケットを表示し、バケットのコンテンツを参照する場合、ユーザーは s3:ListAllMyBuckets および s3:GetBucketLocation のアクセス許可を持っている必要があります。チュートリアル例については、「チュートリアル例: ユーザーポリシーを使用したバケットへのアクセスの制御」を参照してください。

このセクションでは、ポリシーで指定できるバケットサブリソースオペレーションに関連するアクセス権限のリストを示します。

バケットサブリソースオペレーションに関連する Amazon S3 アクセス権限

アクセス許可 対応する Amazon S3 オペレーション
s3:DeleteBucketPolicy DELETE Bucket policy
s3:DeleteBucketWebsite DELETE Bucket website
s3:DeleteReplicationConfiguration DELETE Bucket replication
s3:GetAccelerateConfiguration GET Bucket accelerate
s3:GetAnalyticsConfiguration GET Bucket analyticsList Bucket Analytics Configurations
s3:GetBucketAcl GET Bucket acl
s3:GetBucketCORS GET Bucket cors
s3:GetBucketLocation GET Bucket location
s3:GetBucketLogging GET Bucket logging
s3:GetBucketNotification GET Bucket notification
s3:GetBucketPolicy GET Bucket policy
s3:GetBucketRequestPayment GET Bucket requestPayment
s3:GetBucketTagging GET Bucket tagging
s3:GetBucketVersioning GET Bucket versioning
s3:GetBucketWebsite GET Bucket website
s3:GetInventoryConfiguration GET Bucket inventoryList Bucket Inventory Configurations
s3:GetLifecycleConfiguration GET Bucket lifecycle
s3:GetMetricsConfiguration GET Bucket metricsList Bucket Metrics Configurations
s3:GetReplicationConfiguration GET Bucket replication
s3:PutAccelerateConfiguration PUT Bucket accelerate
s3:PutAnalyticsConfiguration PUT Bucket analyticsDELETE Bucket analytics
s3:PutBucketAcl PUT Bucket acl
s3:PutBucketCORS PUT Bucket cors
s3:PutBucketLogging PUT Bucket logging
s3:PutBucketNotification PUT Bucket notification
s3:PutBucketPolicy PUT Bucket policy
s3:PutBucketRequestPayment PUT Bucket requestPayment
s3:PutBucketTagging DELETE Bucket taggingPUT Bucket tagging
s3:PutBucketVersioning PUT Bucket versioning
s3:PutBucketWebsite PUT Bucket website
s3:PutInventoryConfiguration PUT Bucket inventoryDELETE Bucket inventory
s3:PutLifecycleConfiguration PUT Bucket lifecycle
s3:PutMetricsConfiguration PUT Bucket metricsDELETE Bucket metrics
s3:PutReplicationConfiguration PUT Bucket replication

以下のユーザーポリシーは、ユーザー Dave に examplebucket バケットに対する s3:GetBucketAcl のアクセス許可を付与します。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-ID:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": "arn:aws:s3:::examplebucket" } ] }

オブジェクトを削除するには、明示的に DELETE Object API を呼び出すか、オブジェクトのライフサイクルを設定して(「オブジェクトのライフサイクル管理」を参照)、有効期限が過ぎたオブジェクトを Amazon S3 が削除できるようにします。ユーザーやアカウントがオブジェクトを削除することを明示的に禁止する場合は、s3:DeleteObjects3:DeleteObjectVersion、および s3:PutLifecycleConfiguration のアクセス許可を明示的に拒否する必要があります。デフォルトでは、ユーザーにはアクセス許可が付与されていません。ただし、ユーザーを作成してグループに追加し、グループにアクセス許可を付与すると、意図していないアクセス許可がユーザーに付与される場合があります。このような場合は、他のすべてのアクセス許可に優先される明示的な拒否を使用して、特定のアクションに対するユーザーのアクセス許可を拒否することができます。