0

バケット ポリシーを使用して、バケットへのユーザー アクセスを制限しようとしています。私には一連のユーザーがいて、すべてのユーザーに S3FullAccess ポリシーがあります。IAM で何も変更できません。自分のバケット ポリシーにしかアクセスできません。そのため、バケット ポリシーを使用してユーザーのアクセスを制御したいと考えています。ユーザーを 3 つのカテゴリに分類しています。

  1. 自分のバケットへの管理者アクセス (自分のバケットへのすべてのアクセス)
  2. バケットへのアクセスが制限されているユーザー (get-bucket-policy、get-bucket-location など)
  3. バケットにアクセスできません。(自分のバケットにはアクセスできません)

以下のポリシーは私が試したものですが、うまくいきません。

{
    "Version": "2012-10-17",
    "Id": "PolicyTesting",
    "Statement": [
        {
            "Sid": "0",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<<account_id>>:user/users_with_limited_access"
            },
            "Action": [
                "s3:GetBucketPolicy",
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::<<my_bucket_name>>",
                "arn:aws:s3:::<<my_bucket_name>>/*"
            ]
        },
        {
            "Sid": "1",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::<<account_id>>:user/admin_users"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<<my_bucket_name>>",
                "arn:aws:s3:::<<my_bucket_name>>/*"
            ]
        }
    ]
}

上記のポリシーを試してみましたが、管理者ユーザーのみがバケットにアクセスできます。アクセスが制限されているユーザーは、get-bucket-policy、get-bucket-location などの許可されたアクションを実行できません。アクセス拒否の例外が発生しています。これを解決するのを手伝ってください。

4

2 に答える 2