当前位置: 首页 > 知识库问答 >
问题:

aws s3存储桶策略未按预期工作

易阳云
2023-03-14
{  
   "Version":"2012-10-17",
   "Id":"BackupBucketPolicy",
   "Statement":[  
      {  
         "Sid":"DenyAllOther",
         "Effect":"Deny",
         "NotPrincipal":{  
            "AWS":[  
               "arn:aws:iam::ACCID1:user/USER1",
               "arn:aws:iam::ACCID1:root",
               "arn:aws:iam::ACCID2:role/backup-full-access"
            ]
         },
         "Action":"s3:*",
         "Resource":[  
            "arn:aws:s3:::test-nr-6",
            "arn:aws:s3:::test-nr-6/*"
         ]
      },
      {  
         "Sid":"DevAccountRootFullAccess",
         "Effect":"Allow",
         "Principal":{  
            "AWS":[  
               "arn:aws:iam::ACCID1:user/USER1",
               "arn:aws:iam::ACCID1:root"
            ]
         },
         "Action":"s3:*",
         "Resource":[  
            "arn:aws:s3:::test-nr-6",
            "arn:aws:s3:::test-nr-6/*"
         ]
      },
      {  
         "Sid":"GraphBackupReadWriteDeleteAccess",
         "Effect":"Allow",
         "Principal":{  
            "AWS":"arn:aws:iam::ACCID2:role/backup-full-access"
         },
         "Action":[  
            "s3:ListBucket",
            "s3:GetObject",
            "s3:PutObject",
            "s3:DeleteObject"
         ],
         "Resource":[  
            "arn:aws:s3:::test-nr-6",
            "arn:aws:s3:::test-nr-6/*"
         ]
      }
   ]
}
{  
   "Version":"2012-10-17",
   "Statement":[  
      {  
         "Sid":"Stmt2",
         "Effect":"Allow",
         "Action":[  
            "s3:ListBucket",
            "s3:GetObject",
            "s3:PutObject",
            "s3:DeleteObject"
         ],
         "Resource":[  
            "arn:aws:s3:::test-nr-6",
            "arn:aws:s3:::test-nr-6/*"
         ]
      }
   ]
}

我搞不清这里出了什么问题。如有任何帮助,我们将不胜感激。

共有1个答案

沃威
2023-03-14

首先,您不需要deny-all-other策略,因为S3 bucket权限默认为deny。

其次,创建backup-full-access角色时,需要将其类型设置为跨帐户访问的角色。

最后,您的角色策略应该写成:

{
  "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:::test-nr-6"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::test-nr-6/*"
    }
  ]
}
 类似资料:
  • 我想为我们拥有的一些用例实现数据回放,为此,我需要使用Kafka保留策略(我使用的是连接,我需要窗口时间才能准确)。附言:我正在使用Kafka版本0.10.1.1 我将数据发送到主题中,如下所示: 我创建的主题如下: Kafka主题--创建--zookeeper localhost:2181--复制因子1--分区1--主题myTopic Kafka主题--zookeeper localhost--

  • 我有一个Log4j2.xml定义为: 据我所知,当我的日志文件达到1MB时,它应该会滚动到新的日志文件。要滚动的文件数应为30。然而,如果你看看我下面的日志,有超过40个,所有最新的都接近30MB。当前日志文件MLMServices。日志记录了从2016年4月13日至今的条目。事实上,最后几个日志文件是MLMServices-2016-05-24-4。日志,MLMServices-2016-05-

  • 所以我就做了如下的桶策略: {“版本”:“2012-10-17”,“ID”:“HTTP引用策略示例”,“语句”:[{“SID”:“允许从www.example.com和example.com发起的get请求”,“Effect”:“Allow”,“Principal”:“”Action“:”S3:“,”Resource“:”arn:aws:s3:::exampleBucket/“,”Conditio

  • 我已经配置了log4j2.xml文件,application.log文件将被创建,它应该每天翻转。 但是在JVM中,applicatoin.log文件在10MB之后会翻转,如果翻转三次,第一个文件会被覆盖。也就是说我随时都application.logapplication-2020-10-16.log.zip. 为什么log4j2(v2.13)即使配置为每日,也会每10MB滚动一次文件?任何在l

  • 我已经读了很多文档,看了很多视频,但是我对IAM角色和Bucket策略仍然很困惑。让我困惑的是: 1)我创建了一个Bucket。那时我可以将它公有或私有。如果我将它公有,那么任何人或任何应用程序都可以“看到”Bucket中的对象。我认为可以将权限设置为添加/删除/获取/列出Bucket中的对象。如果是这样,那么为什么我需要为S3 Bucket添加任何IAM角色,或者添加任何Bucket策略(???

  • 我已为Azure存储帐户的Azure用户分配了基于角色的存储读取器访问权限。用户可以看到存储帐户,但无法看到任何blob、表或队列。为什么?我认为读卡器访问应该允许用户查看Blob服务中的内容,即容器和单个Blob?我在这里附上了一个屏幕截图 将权限更改为“Contributor”可以解决问题,但授予的权限远大于所需的权限。 对此有什么想法吗?