S3 バケットポリシー

AWS クラウドプラクティショナー 問題集Ⅰ|完全無料&徹底解説

AWS クラウドプラクティショナー 問題集Ⅰ|完全無料&徹底解説 ◆◇◆ AWS認定試験実践トレーニング ◆◇◆ 全世界で1000万人以上が利用するオンライン学習サービスのWhizl…

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は、バケットポリシーを作成するためのポリシージェネレーターや、バケットポリシーの構文チェックを行うツールを提供しています。