1.      アクセス・コントロール・リストで S3 バケットを作成し、パブリック・アクセスが出来ない代わりに、ルート・アカウントからのアクセスと現ユーザーからのアクセスが可能な状態にします。


2.      バケット・ポリシーを以下のような形式に変更します。以下に説明されている値の決定方法についての詳細は、「特定の IAM ロールへの Amazon S3 バケット・アクセスを制限する方法」を参照してください。

以下は、AWS のエキスパート向けにまとめられた、値を導き出す方法です。

775488040364 AWS アカウント番号

lansa-secure S3 セキュア・バッケト名

AROAI4S5N5QLPZ5QHQIJ2 paas-ec2 のロール ID (aws iam get-role -–role-name ROLE-NAME)

AIDAJFF4TKJHEGHMMDUUQ 管理者の IAM ユーザー ID (aws iam get-user -–user-name USER-NAME)

{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Effect": "Allow",

            "Principal": {

                "AWS": "arn:aws:iam::775488040364:role/paas-ec2"

            },

            "Action": "s3:ListBucket",

            "Resource": "arn:aws:s3:::lansa-secure"

        },

        {

            "Effect": "Allow",

            "Principal": {

                "AWS": "arn:aws:iam::775488040364:role/paas-ec2"

            },

            "Action": [

                "s3:GetObject",

                "s3:PutObject",

                "s3:DeleteObject"

            ],

            "Resource": "arn:aws:s3:::lansa-secure/*"

        },

        {

            "Effect": "Deny",

            "Principal": "*",

            "Action": "s3:*",

            "Resource": [

                "arn:aws:s3:::lansa-secure",

                "arn:aws:s3:::lansa-secure/*"

            ],

            "Condition": {

                "StringNotLike": {

                    "aws:userId": [

                        "AROAI4S5N5QLPZ5QHQIJ2:*",

                        "AIDAJFF4TKJHEGHMMDUUQ",

                        "775488040364"

                    ]

                }

            }

        }

    ]

}