首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修改Bucket属性?

如何修改Bucket属性?
EN

Stack Overflow用户
提问于 2019-04-21 06:10:47
回答 2查看 39关注 0票数 0

我正在尝试编写一个桶策略,它使用内部函数!GetAtt从桶中获取属性,但我不知道如何为多个桶编写它。

对于不使用本征函数的单个桶,它类似于;

代码语言:javascript
复制
            Effect: "Allow"
            Action: "s3:*"
            Resource: [
              "arn:aws:s3:::ExampleBucketName",
              "arn:aws:s3:::ExampleBucketName/*"
              ]

我试图用多个桶的内在函数来完成这个任务,但是对于子目录部分,我没有得到正确的结果。如何使用!/*进入目录GetAtt?

我的代码是这样的;

代码语言:javascript
复制
            Effect: "Allow"
            Action: "s3:*"
            Resource: [
              !GetAtt "ExampleBucketOne.Arn",
              !GetAtt "ExampleBucketOne.Arn"/"*",
              !GetAtt "ExampleBucketTwo.Arn",
              !GetAtt "ExampleBucketTwo.Arn"/"*"
               ]

我知道资源部分的第二行(以/*结尾)是错误的,这就是我请求帮助的原因。正确的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-21 10:25:28

您需要使用一个连接将/*添加到末尾。

代码语言:javascript
复制
!Join [ "", [ !GetAtt "ExampleBucketOne.Arn","/*" ] ]

上面的语法刚刚结束,所以您可能需要再次检查它,但基本语法是:

代码语言:javascript
复制
!Join [ ":", [ a, b, c ] ]

这将导致:

代码语言:javascript
复制
a:b:c

参考: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html

票数 0
EN

Stack Overflow用户

发布于 2019-04-22 19:54:46

另一个选择是!Sub,它更容易使用。

代码语言:javascript
复制
        Effect: "Allow"
        Action: "s3:*"
        Resource:
          - !Sub ${ExampleBucketOne.Arn}
          - !Sub ${ExampleBucketOne.Arn}/*
          - !Sub ${ExampleBucketTwo.Arn}
          - !Sub ${ExampleBucketTwo.Arn}/*
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55780343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档