アクセスを1つのバケットのみに表示/アクセスするように制限するS3ポリシーはありますか?


123

images.mysite.comS3のようなシンプルなバケットと、バックアップなどを含む他のバケットがあります。

特定のユーザーがimages.mysite.com画像をアップロードするためにバケットにアクセスできるようにしたいのですが。しかし、私は彼に他のバケツを見せたくない。それらが存在することすらありません。

これを行うポリシーを作成できませんでした。制限的なことを試みるたびに、バケットのリストがブロックされます。


この質問はスーパーユーザーに投稿する必要があるため、トピックから外れるように投票します
Tonny Madsen

ポリシーはここで生成できます:awspolicygen.s3.amazonaws.com/policygen.html
Suhail Gupta


1
なぜバケットのURLを共有しないのですか- https://s3.console.aws.amazon.com/s3/buckets/my-bucket-name/。これにより、リスト全体が表示されないようにして、現在のポリシーの内容を変更する必要がなくなります。
ツリーコーダー

回答:


119

私はしばらくこれを試していて、ついに実用的な解決策を思いつきました。実行するアクションの種類に応じて、異なる「リソース」を使用する必要があります。また、以前の回答に欠けていたアクション(などDeleteObject)をいくつか追加し、さらに制限(のようにPutBucketAcl)しました。

現在、次のIAMポリシーが機能しています。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:ListBucketMultipartUploads"
      ],
      "Resource": "arn:aws:s3:::itnighq",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion",
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:GetObjectVersion",
        "s3:GetObjectVersionAcl",
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:PutObjectVersionAcl"
      ],
      "Resource": "arn:aws:s3:::itnighq/*",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*",
      "Condition": {}
    }
  ]
}

バケットに関するアクションとオブジェクトに関するアクションは、異なるarnを持つ必要があります。


9
これは素晴らしい答えです、ありがとう。s3:ListAllMyBuckets権限の影響は、このポリシーの受信者がすべての(ルートの)バケットを見ることができるということです。直接のデータ開示はありませんが、バケット名に関して機密性/混乱がある可能性があります。この特定の権限を削除することは可能であり、物事はまだ機能します(ただし、「s3cmd ls」などはターゲットバケットを返しません)。
マイクリパス

91
これにより、ユーザーが他のバケット名を表示できなくなることはありません。
メトス'14

2
@metdos最後のポリシーを削除することで、ユーザーが他のバケット名を見るのを防ぐことができます。
ヘンドラウジア2014

20
コンソールでバケットのリストを参照してください(したがって、バケットへのアクセスのためのコンソールを使用)するためにしなければなりません付与ListAllMyBucketsGetBucketLocationのためのすべて(S3バケット"arn:aws:s3:::*"ではなく動作する"*"リソースのため)。このAWSブログの投稿で述べたように、「余談ですが、現在、特定のバケットを選択的にフィルターで除外することはできないため、ユーザーはコンソールアクセスのすべてのバケットを一覧表示する権限を持っている必要があります」
jwadsa​​ck 14年

10
これは恐ろしいアドバイスです。それは危険で、具体的にはOPが望んでいないものです。実行可能な回避策については、Andreas StankewitzBFarの回答を参照してください。
AndreKR 2017年

37

私たちのユースケース:クラウドアプリケーションのクライアントに、一般的なS3ツールを使用してクライアントが直接アクセスできるバックアップスペースを提供します。もちろん、どのクライアントも他のクライアントが持っているものを見るべきではありません。

cloudberrymanが説明したように、「すべてのバケットをリストすることも、まったくリストしないこともできます。」なので、回避策を考え出す必要があります。バックグラウンド:

AWS S3コンソールまたはS3Foxがエラーメッセージなしで接続するには、ユーザーにListAllMyBuckets権限を付与する必要があります。ただし、ListAllMyBucketsは、割り当てられたリソースに関係なく、すべてのバケットをリストします(実際には、arn:... ::: *のみが機能します)。あなたが私に尋ねれば、それは深刻なバグです。ところで ListBucketはバケットのコンテンツを一覧表示する権限を付与するため、すべてのバケットのListBucketを拒否しても、一覧表示が妨げられることはありません。

回避策として考えた可能性は3つあります。私は最後のものを選びました。

(1)GUIDなどの不可解なバケット名を使用する

利点:セットアップが簡単

短所:特にクライアントにとって、管理が難しい。(他の何千もの特定のGUIDを見つけることを想像してください。)また、バケットの数=バックアップサービスを使用しているクライアントの数も示しています。

(2)クライアント固有のフォルダーで1つのバケットを使用する

これは、AmazonがS3 / IAMの例で特定のユーザーまたはユーザーグループのみがアクセスできるスペースを提供するように提案している方法です。参照: AWSサンプルIAMポリシー

利点:セットアップがかなり簡単で、AWSのアイデアに対応

短所:すべてのバケットの存在を公開することを強制するため、クライアントは「ホーム」バケットを見つけることができます。AWSアカウンティングはバケットの使用状況の統計を提供しますが、フォルダーの使用状況の統計は提供しません。そのため、クライアントによるコストの計算は困難です。

(3)ListAllMyBucketsにアクセス権を付与しない

利点:あなたが望むものを手に入れます:クライアントは他のクライアントのバケットを見ることができません

短所:クライアントは自分のバケットを表示できません。S3Browserには "cannot do"というメッセージが表示され、バケット名の入力を求められます。S3Foxはルートに接続するとエラーメッセージをスローしますが、バケット名がわかっている場合はクライアントのバケットに直接移動できます。Amazon S3コンソールはまったく機能しません。

これが、必要に応じてS3 IAMを処理するのに役立つことを願っています。


1
また、ソリューション(1)では、バケットでWebホスティングを使用する場合、バケット名はドメイン名と一致する必要があります。
アンディFusniak

31

ListAllMyBuckets権限を付与せずにS3コンソールへのアクセスを提供することはできません。

私の場合(そしておそらくあなたの将来の読者も)、受け入れられる代替手段は、サインインしたユーザーを、ユーザーに見てもらいたいバケ​​ットに直接リダイレクトすることです。

これを行うには、IAMサインインURLに以下を追加します。 /s3/?bucket=bucket-name

完全なサインインURL(your-aliasbucket-nameを置き換えます):

https://your-alias.signin.aws.amazon.com/console/s3/?bucket=bucket-name

IAMポリシー(バケット名を置き換える):

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}

ユーザーのバケット固有の権限を作成する方法の詳細については、次のブログを参照してください。http//mikeferrier.com/2011/10/27/granting-access-to-a-single-s3-bucket-using-amazon-iam /


1
これはうまくいきます。ユーザーがバケットビューの外側を探索できなかった場合に最適です。しかし、それを取り上げます。@BFarに感謝します。
ジェイミーポプキン2017

これは正しい答えです。他のすべてはすべてのバケットをリストします-元のリクエストに従って非表示にする必要があります。
Steve Horvath

まさに私が必要とするもの。ありがとう。
Di Zhang

20

このポリシーを試してください。また、ユーザーに選択したバケットのみを一覧表示させる方法がないことも考慮に入れてください。すべてのバケットをリストするか、何もリストしないことができます。

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:PutObjectAcl",
                "s3:ListBucket",
                "s3:GetBucketAcl",
                "s3:PutBucketAcl",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::your_bucket_here/*",
            "Condition": {}
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*",
            "Condition": {}
        }
    ]
}

2
それはうまくいきます!私はs3:*それを私のために機能させるためにアクションを変更しなければなりませんでした。私も持っていましたが"Resource": ["arn:aws:s3:::your_bucket_here", "arn:aws:s3:::your_bucket_here/*"]、これは必要ないかもしれません。
Michael Yagudaev 2013年

3
s3:*は、バケットの削除を含む、あらゆることを行うためのアクセスを許可します。よろしいですか?
Dave Gregory

10

私はこの質問を次のように解釈します。「1つのバケットへのアクセスを許可して、他のバケットにはアクセスできないために見えないようにすることはできますか?」なぜなら、アクセスが許可されなかったバケットの名前を表示することは、依然として情報漏えいに相当するからです。

そして正解はノーです。必要な権限はListAllMyBucketsで、これによりユーザーはすべてのバケットを表示できます。この権限を除外すると、コンソールが使用できなくなります。


6

ユーザーが他のバケットの知識を持たずに特定のバケットにアクセスできるようにするための優れた方法があります。以下のようなグループポリシーでは、ユーザーは「バケットa」のみを表示できます。唯一の問題は、ユーザーが特定のバケットエンドポイントに接続した場合にのみ、バケットにアクセスできることです。以下の例では、bucket-a.s3.amazonaws.comになります。これが発生するには、バケットで「認証済みユーザー」を許可する必要がある場合もあります。

{
    "Statement": [
     {
         "Sid": "<EXAMPLE_SID>",
         "Action": [
           "s3:ListBucket",
           "s3:GetBucketLocation"
          ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::bucket-a"
         ]
     },
     {
      "Sid": "<EXAMPLE_SID>",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::bucket-a/*"
      ]
     }
   ]
}

この方法はMac OS / XのCyber​​duckでテストされ、s3cmdパッケージを使用しました

./s3cmd ls s3://bucket-a --access_key=ACCESS_KEY --secret_key=SECRET_KEY --bucket-locat
ion=ap-southeast-2

すべてのバケットのリストを引き続き表示できます。動作しません:(
Rishikesh Chandra

5

なぜ答えがチェックされなかったのか混乱していますか?

上記のソリューションの各ポリシーステートメントを分解してみましょう。

このポリシーステートメントから降圧自体バケットの内容に適用されますが、ありません。バケツの中身が見えないので、これはおそらく質問が求めたものではありませ

{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectAcl",
"s3:PutObjectAcl",
"s3:ListBucket",
"s3:GetBucketAcl",
"s3:PutBucketAcl",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::your_bucket_here/*",
"Condition": {}
}

から派生したこの2つのステートメントポリシーは、(arn:aws:s3:::your_bucket_here/readonlyでバケットへの読み取り専用アクセスを許可しますが、バケットのコンテンツ(arn:aws:s3:::your_bucket_here/*)でCRUD操作を許可します。

{
  "Effect": "Allow",
  "Action": [
    "s3:ListBucket",
    "s3:GetBucketLocation",
    "s3:ListBucketMultipartUploads"
  ],
  "Resource": "arn:aws:s3:::your_bucket_here",
  "Condition": {}
},
{
  "Effect": "Allow",
  "Action": [
    "s3:AbortMultipartUpload",
    "s3:DeleteObject",
    "s3:DeleteObjectVersion",
    "s3:GetObject",
    "s3:GetObjectAcl",
    "s3:GetObjectVersion",
    "s3:GetObjectVersionAcl",
    "s3:PutObject",
    "s3:PutObjectAcl",
    "s3:PutObjectAclVersion"
  ],
  "Resource": "arn:aws:s3:::your_bucket_here/*",
  "Condition": {}
}

ただし、ポリシーには次のステートメントが含まれているため、ユーザーはエンドポイントですべてのバケットを表示できます。これはおそらく質問が求めたものではありません

{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*",
"Condition": {}
}

ただし、上記はS3ストアをブラウザするクライアントを使用する場合に非常に役立ちます。クライアントがバケットではなくストアに直接アクセスする場合、ルートにあるバケットのリストにアクセスする必要があります。


3

おそらく最も単純なユースケース:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::bucket-name"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": ["arn:aws:s3:::bucket-name/*"]
    }
  ]
}

1
AWSの応答:This policy contains the following error: The policy must contain a valid version string
MaximeBernard、2015年

そうです-私は私の応答を修正しました-> <br/>ここに可能な値は2つだけです:<br/> * 2012-10-17 *と2008-10-17。<BR/>さらなる参照はここで見つけることができます:<BR/> docs.aws.amazon.com/IAM/latest/UserGuide/...
jjanczyszyn

(listing included)ユーザーが入ることを許可されているバケットのみをリストする方法の意味について何か考えはありますか?これまでのところ(および他のすべての回答によれば)、AWSではそれを許可していないようです。
MaximeBernard、2015年

3

AWS Organizationsを使用してこれを行う簡単な方法または回避策があります。AWS組織では、複数のユーザーアカウントを持つことができます。メインアカウントは複数のAWSアカウント(サブ)を持つことができ、どのサービス(s3 / EC2 / *)が追加されても、それらのリソースのみが表示されます。

https://aws.amazon.com/blogs/aws/aws-organizations-policy-based-management-for-multiple-aws-accounts/ https://aws.amazon.com/organizations/を参照してください

マイアカウントページの組織


3

私はこの解決策を見つけました:
AWS FLOW:
AWSフロー

バケットポリシー:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::MyExampleBucket",
        "arn:aws:s3:::MyExampleBucket/*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:userId": [
            "AROAEXAMPLEID:*", #Role ID
            "111111111111" #AccountID
          ]
        }
      }
    }
  ]
}

IAMポリシー:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::MyExampleBucket",
        "arn:aws:s3:::MyExampleBucket/*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:userId": [
            "AROAEXAMPLEID:*",  #Role ID
            "AIDAEXAMPLEID",  #UserID
            "111111111111"  #AccountID
          ]
        }
      }
    }
  ]
}

aws iam get-user -–user-name USER-NAME --profile = ExampleProfile

aws iam get-role --role-name ROLE-NAME --profile = ExampleProfile

出典:https : //aws.amazon.com/blogs/security/how-to-restrict-amazon-s3-bucket-access-to-a-specific-iam-role/

PSはバケットポリシーに注意してください、あなたは許可なしで外に出ることができます


2

上記でよく説明されているように、コンソールにバケットを1つだけリストすることはできません。ただし、S3バケットのアクセスがIAMにアタッチされている場合、バケットへのURLが利用可能であれば、IAMはバケットに直接アクセスできます。S3バケットのURLは次のようになります。

https://s3.console.aws.amazon.com/s3/buckets/BucketName

BucketNameは、IAMがアクセスできるバケットの名前です。


1
これも2018年に実現可能な唯一の解決策だと思います。
Saurabh

1

なんとか次のように動作しました。他のバケットのリストがアクセス拒否メッセージを受信したことを意味します。しかし、パスとして設定されたバケット名を使用して接続した場合は、必要なバケットを引き続き表示できました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets"
      ],
      "Resource": "arn:aws:s3:::test"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::test"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": ["arn:aws:s3:::test/*"]
    }
  ]
}

私はこの接続をテストするためにCyber​​duckを使用していました。


1

s3:ListAllMyBucketsアクションを特定のバケットに制限することはできませんが、回避策としては、特定のバケットのコンソールURLを送信できます。

  • https://s3.console.aws.amazon.com/s3/buckets/BUCKET_NAME/

出典:S3コンソールからのS3バケットの制限リスト

そのためには、特定のユーザーまたはグループに対して次のポリシードキュメントを指定する必要があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket-1",
                "arn:aws:s3:::my-bucket-2"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket-1/*",
                "arn:aws:s3:::my-bucket-2/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        }
    ]
}

読み取りと書き込みのアクセス権を与えるバケットはどこにmy-bucket-1ありmy-bucket-2ますか。

関連:


1

このポリシーを試してください。ユーザーはバケットをリストできません。許可されたバケットへの直接リンクを使用する必要があります。

例:s3.console.aws.amazon.com/s3/buckets/bucketname/?region=us-east-1&tab=overview

{
  "Statement": [
    {
      "Action": [
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::bucketname"
      ]
    },
    {
      "Action": [
        "s3:PutObject",
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::bucketname*"
      ]
    },

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

1

上記の他の説明と同様:

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListBucket"
         ],
         "Resource":"arn:aws:s3:::awsexamplebucket"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject"
         ],
         "Resource":"arn:aws:s3:::awsexamplebucket/*"
      }
   ]
}

しかしここに欠けている部分があります。S3-> Homeを介してバケットにアクセスすることはできませんが、直接リンクを介して目的のバケットのみにアクセスすることは可能です。

https://s3.console.aws.amazon.com/s3/buckets/yourawsbucket/

詳細については、次の投稿をご覧ください。

https://aws.amazon.com/premiumsupport/knowledge-center/s3-console-access-certain-bucket/


0

解決策は私のために働いた。特定のバケットmy-s3-bucketの特定のユーザーmy_iam_userにアクセスを許可するポリシーが必要でした。

このポリシーにより、ユーザーは特定のs3バケットのファイルを一覧表示、削除、取得できます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/my_iam_user"
            },
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::my-s3-bucket"
        },
        {
            "Sid": "AddDeleteFiles",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/my_iam_user"
            },
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::my-s3-bucket/*"
        }
    ]
}

0

私はこれで解決される同様のニーズを追加します:

{
  "Version": "2012-10-17",
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:Get*",
            "s3:Put*",
            "s3:DeleteObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::my-bucket-name",
            "arn:aws:s3:::my-bucket-name/*"
        ]
    }
  ]
}

0

バケットのコンテンツを他のユーザーから隠すために、次のものを使用します。これは、他のバケット(ListAllMyBucketsを使用しないでください)を非表示にするのに役立つだけでなく、1つのバケットを作成するときに同じバケット内のフォルダーも非表示にするのに役立ちます。

次のポリシーがIAMグループに適用され、すべてのユーザーがこのグループに属しています。aws:useridバケット内に同じ名前のサブフォルダーを取得して作成する必要があります。

UserIDを取得できます: aws iam get-user --user-name "user_name_for_folder_access":

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::bucket_name/${aws:userid}/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket_name"
            ]
        }
    ]
}

0

我々が思いついた素晴らしいシンプルなソリューションは、ユーザーがルートディレクトリにログインするのをブロックすることです。そのため、リモートパスを目的のフォルダに設定してログインする必要があります。

 {
"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::folder-name*",
        "Condition": {}
    }
]
}

0

いいえ、現時点では、ユーザーをルートまたは他の場所の選択的バケットの表示に制限することはできません。現在、これらの3つのオプションしかありません。

私はクライアントにバケット名を明示的に使用するように依頼することにしました。



-1

これは私にとって完璧に働きました。ユーザーはファイルのリストをアップロード、ダウンロード、取得できますが、他のバケットのファイルを表示することはできません。

 {    

"Statement": [    

{
    "Effect": "Allow",
    "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:GetObjectAcl",
        "s3:PutObjectAcl",
        "s3:ListBucket",
        "s3:GetBucketAcl",
        "s3:PutBucketAcl",
        "s3:GetBucketLocation"
    ],
    "Resource": "arn:aws:s3:::mybucketname/*",
    "Condition": {}
},
{
    "Effect": "Allow",
    "Action": "s3:ListAllMyBuckets",
    "Resource": "*",
    "Condition": {}
},
{
    "Effect": "Deny",
    "Action": [
        "s3:DeleteBucket",
        "s3:DeleteBucketPolicy",
        "s3:DeleteBucketWebsite",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion"
    ],
    "Resource": "arn:aws:s3:::mybucketname/*",    

    "Condition": {}    

}
]
}      

-2

Denyアクセスしないバケットの句を追加します。それらがまだリストされている可能性があることを覚えておいてください。ただし、それらの中のコンテンツにアクセスすることはできません。

{
    "バージョン": "2012-10-17"、
    「ステートメント」:[
        {
            "効果": "許可"、
            "アクション": "s3:*"、
            "資源": "*"
        }、
        {
            "効果": "拒否"、
            "アクション": "s3:*"、
            "資源": [
                "arn:aws:s3 ::: bucket-name"、
                「arn:aws:s3 ::: bucket-name / *」
            ]
        }
    ]
}

1
リソースへのアクセスを明示的に許可する必要があります。すべてのリソースへのアクセスをデフォルトで許可する場合、非公開にしたいリソースを誤って省略することができます。また、すべてのS3アクションへのアクセスを許可すると、ユーザーはリソースを公開したり、静的ホスティングをセットアップしたり、その他の有害なことを実行したりできます。
OndrejGalbavý2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.