AWS S3 试图了解授予策略的权限

AWS S3 Trying to understand permission given to a Policy

我正在尝试创建一个策略,供部署在 ECS 中的应用程序使用,getObject/Put/Delete 存储桶中的一些文件。 我正在创建的策略如下所示:

{
        "Sid": "VisualEditor1",
        "Effect": "Allow",
        "Action": [
            "s3:ListBucket",
            "s3:DeleteObject",
            "s3:PutObjectAcl",
            "s3:ListBucket",
            "s3:ListMultipartUploadParts",
            "s3:PutObject",
            "s3:GetObject",
            "s3:ListBucketVersions",
            "s3:ListBucketMultipartUploads"
        ],
        "Resource": [
            "arn:aws:s3:::name-of-bucket",
        ]

但是我在尝试将文件上传到存储桶时仍然遇到拒绝访问错误,我看到了一些 AWS 示例,其中人们将策略中的资源定义为:

"arn:aws:s3:::name-of-bucket/*",

请注意 /* .

所以我的问题是我什么时候应该使用 /* 什么时候不应该使用它(我应该使用它的权限)。

您必须同时执行这两项操作,这意味着您需要对存储桶、存储桶本身和存储桶中的对象拥有权限。每一层都可以控制。

在下面的政策通知中,分为三个部分。第一部分提供列出您帐户中的存储桶的权限。下一节提供列出存储桶内容和获取存储桶位置的权限 属性。第三部分控制您可以在存储桶内执行的操作。

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