0

IAM で特定のログインを持つユーザーのみがアクセスできる、いくつかの Web の小さな Web ページといくつかのドキュメントをホストするバケットを作成しました。これらのユーザーは、この特定のバケットへの (読み取り) アクセス権のみを持つ必要があり、他のバケットは許可されません。理想的には、これらのユーザーは、他のバケットがあることさえ知らないはずです。

このために、IAM で「テスト」ユーザーを作成し、そのユーザーをグループに追加して、以下のようにグループ ポリシーを割り当てました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "AllowS3GetActionsInPrivateFolder",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::my.web.page/*"
            ]
        }
    ]
}
  1. テスト ユーザーでログインして S3 に移動すると、他のすべてのバケットが表示され、別のバケットをクリックすると「申し訳ありませんが、権限がありません」というエラーが表示されます。これはちょっと機能しますが、理想的には、ユーザーは他のバケットをリストすることさえできないはずです。

  2. https://s3.amazonaws.com/my.web.page/index.htmlにアクセスすると、AccessDenied XML メッセージが表示されます。このバケットの HTML ページをブラウザーで開くことができるようにするには、ポリシーをどのように変更すればよいですか。

  3. ユーザーは引き続きバケットへの書き込みアクセス権を持っています。読み取りアクセスのみを許可するにはどうすればよいですか?

あなたの助けに感謝します。

4

1 に答える 1

0

このポリシーを使用すると機能します。バケットの例と書かれている場所に、バケット名を入力します

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::examplebucket/*"
            ]
        },
        {
            "Sid": "AllowS3GetActionsInPrivateFolder",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::my.web.page/*"
            ]
        }
    ]
}
于 2016-06-28T16:07:47.193 に答える