微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这些 AWS 存储桶策略权限如何工作?

如何解决这些 AWS 存储桶策略权限如何工作?

我有以下有效的存储桶策略,但在我看来逻辑是相反的。好像 'ArnLike' 应该是 'ArnNotLike'。

所需的意图是应该允许“条件”中列出的用户 ID 和角色访问存储桶。这就是正在发生的事情。所以它按预期工作,但由于“效果”设置为“拒绝”,我不明白为什么“ArnLike”不应该是“ArnNotLike”。

有人能帮我理解为什么吗?谢谢。

以下摘录来自我的 serverless.yml 配置文件

MyBucketPolicy:
  Type: 'AWS::S3::BucketPolicy'
  Properties:
    Bucket: !Ref MyBucket
    PolicyDocument:
      Statement:
        - Action:
            - 's3:*'
          Effect: Deny
          Resource: !Join
            - ''
            - - !GetAtt MyBucket.Arn
              - '/*'
          Principal: '*'
          Condition:
            StringNotLike:
              'aws:userId':
                - ${cf:external-stack.Role1}:*
                - ${cf:external-stack.Role2}:*
                - !Ref AWS::AccountId
            ArnLike:
              'aws:role':
                - arn:aws:iam::*:role/${self:service}-${self:custom.stage}-${self:custom.region}-lambdaRole
                - arn:aws:iam::*:role/another-lambda-${self:custom.stage}-${self:custom.region}-lambdaRole

解决方法

所以逻辑不正确。条件中的“匹配器”被并在一起。所以这会让任何东西都可以访问。 :-) 啊。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。