Amazon S3 アクション - Amazon Simple Storage Service

Amazon S3 アクション

Amazon S3 は、ポリシー内で指定できる一連のアクセス許可を定義します。それぞれのアクセス許可は、特定の Amazon S3 オペレーションに対応するキーワードです。Amazon S3 オペレーションの詳細については、Amazon Simple Storage Service API Reference の「アクション」を参照してください。

ポリシーで Amazon S3 にアクセス許可を指定する方法については、次のポリシーの例を参照してください。ポリシー用の Amazon S3 アクション、リソース、および条件キーのリストについては、「Amazon S3 のアクション、リソース、条件キー」を参照してください。Amazon S3 アクションの詳細なリストについては、「アクション」を参照してください。

以下のバケットポリシーの例では、ユーザー (Dave) に s3:PutObjects3:PutObjectAcl のアクセス許可を付与します。Principal エレメントを削除すれば、ユーザーにポリシーをアタッチできます。これらはオブジェクトオペレーションです。これらのオペレーションに基づいて、Resource ARN の relative-id 部分はオブジェクト (examplebucket/*) を識別します。詳細については、Amazon S3 リソース を参照してください。

{ "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 アクションに対するアクセス許可

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

"Action": "*"

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

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

コンソールアクセスのポリシー

ユーザーが AWS マネジメントコンソール を使用してバケットやそれらのいずれかのバケット内容を表示する場合、s3:ListAllMyBuckets および s3:GetBucketLocation アクセス許可が必要です。例については、ブログ記事 Writing IAM Policies: How to Grant Access to an Amazon S3 Bucket にある Policy for Console Access を参照してください。

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

{ "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 のアクセス許可を明示的に拒否する必要があります。

明示的な拒否

デフォルトでは、ユーザーには一切のアクセス許可がありません。ただし、ユーザーを作成し、グループにユーザーを追加してアクセス許可を付与すると、意図していないアクセス許可が付与される可能性があります。このような場合は、他のすべてのアクセス許可に優先される明示的な拒否を使用して、特定のアクションに対するユーザーのアクセス許可を拒否することができます。

以下のユーザーポリシーの例では、ユーザーに s3:GetAccountPublicAccessBlock のアクセス許可を付与します。これらのアクセス許可については、Resource 値を "*" に設定します。詳細については、「Amazon S3 リソース」を参照してください。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }