如何解决这些 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 举报,一经查实,本站将立刻删除。