S3 バケットポリシー
S3 バケットポリシー
Amazon S3のバケットポリシーは、S3バケットに対するアクセス制御を設定するためのJSON形式のドキュメントです。バケットポリシーを使用することで、特定のIAMユーザーやグループ、IPアドレス、その他の条件に基づいて、S3バケットにアクセスするユーザーを制御できます。
バケットポリシーでは、アクセス許可を設定するために、以下の要素が使用されます。
- Principal
アクセスを許可するIAMユーザー、IAMロール、AWSアカウント番号、または全てのAWSユーザーを指定します。 - Action
許可するアクションを指定します。たとえば、「s3:GetObject」は、オブジェクトを取得するアクションを許可します。 - Resource
アクションが許可されるS3リソースを指定します。たとえば、「arn:aws:s3:::my-bucket/*」は、my-bucketバケット内のすべてのオブジェクトを対象にします。 - Condition
アクセスを許可するための追加条件を指定することができます。たとえば、「IpAddress」条件を使用して、特定のIPアドレスからのアクセスを許可することができます。
例えば、以下のようなバケットポリシーを作成することができます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowGetObject",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/myuser"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
このバケットポリシーでは、IAMユーザー「myuser」に対して、「s3:GetObject」アクションを許可するよう設定されています。また、「my-bucket」バケット内のすべてのオブジェクトが対象となっています。
バケットポリシーは、AWSのアクセスポリシー言語に従って記述する必要があります。このため、正しい構文を理解する必要があります。AWSは、バケットポリシーを作成するためのポリシージェネレーターや、バケットポリシーの構文チェックを行うツールを提供しています。