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

Amazon S3 のアクション

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

Amazon S3 のポリシーでアクセス許可を指定する方法については、以下のポリシーの例を参照してください。Amazon S3 のポリシーで使用できるアクション、リソース、条件キーの一覧については、「Amazon S3 のアクション、リソース、条件キー」を参照してください。Amazon S3 のアクションの一覧については、「Actions」を参照してください。

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

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

Amazon S3 のすべてのアクションのアクセス許可

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

"Action": "*"

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

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

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

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] } ] }

オブジェクト削除のアクセス許可

オブジェクトを削除するには、明示的に 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":[ "*" ] } ] }