amazon-cloudformation - 如何修改存储桶属性
问题描述
我正在尝试编写一个使用内部函数 !GetAtt 从存储桶获取属性的存储桶策略,但我不确定如何为多个存储桶编写它。
对于不使用内在函数的单桶,它类似于;
Effect: "Allow"
Action: "s3:*"
Resource: [
"arn:aws:s3:::ExampleBucketName",
"arn:aws:s3:::ExampleBucketName/*"
]
我正在尝试使用多个存储桶的内在函数来执行此操作,但对于子目录部分我没有正确处理。如何使用 !GetAtt 进入目录 /*?
我的代码如下所示;
Effect: "Allow"
Action: "s3:*"
Resource: [
!GetAtt "ExampleBucketOne.Arn",
!GetAtt "ExampleBucketOne.Arn"/"*",
!GetAtt "ExampleBucketTwo.Arn",
!GetAtt "ExampleBucketTwo.Arn"/"*"
]
我知道资源部分中以 /* 结尾的备用第二行是错误的,这就是我寻求帮助的原因。正确的方法是什么?
解决方案
另一种选择是!Sub
更容易使用。
Effect: "Allow"
Action: "s3:*"
Resource:
- !Sub ${ExampleBucketOne.Arn}
- !Sub ${ExampleBucketOne.Arn}/*
- !Sub ${ExampleBucketTwo.Arn}
- !Sub ${ExampleBucketTwo.Arn}/*
推荐阅读
- python-3.x - 找不到仅适用于数字的 Tesseract 4.0 tessdata
- ios - Expo react ios build在iPad中无法正常工作
- xamarin - 如何减小 xamarin 表单中占位符的字体大小?
- php - 在 Woocommerce 中更改管理产品“虚拟”复选框字段标签名称
- docker - Gitlab CI 将环境变量传递给 docker build
- karate - 如何在条件循环中使用 karate.match
- javascript - 如何使 &:hover 可访问?我可以同时使用焦点和悬停吗?
- rust - 如何在 QEMU 模拟器下在 Windows10 64 位上运行基于 Rust 的 Redox OS 的预编译镜像?
- python - 读取 Http 流
- c++ - 包装枚举集