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"
                    ]
                }
            }
        }
    ]
}