amazon-web-services - 在策略资源中使用 AWS::Region
问题描述
我正在尝试根据当前的云形成堆栈区域动态更改 s3 资源名称。Cloudformation 堆栈更新没有任何错误。难道我做错了什么?我期望将 {AWS::Region} 的政策解析为 us-east-1。
Version: 2012-10-17
Statement:
- Sid: RestrictS3Access
Effect: Allow
Action:
- 's3:GetObject'
Resource:
- !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${cognito-identity.amazonaws.com:sub}"
- !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${cognito-identity.amazonaws.com:sub}/*"
我期待看到如下政策。我正在检查 aws 控制台的结果。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::dnsa-us-east-1/${cognito-identity.amazonaws.com:sub}",
"arn:aws:s3:::dnsa-us-east-1/${cognito-identity.amazonaws.com:sub}/*"
],
"Effect": "Allow",
"Sid": "RestrictS3Access"
}
解决方案
如果你想${cognito-identity.amazonaws.com:sub}
保持不变,你需要用${!}
.
Version: 2012-10-17
Statement:
- Sid: RestrictS3Access
Effect: Allow
Action:
- 's3:GetObject'
Resource:
- !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${!cognito-identity.amazonaws.com:sub}"
- !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${!cognito-identity.amazonaws.com:sub}/*"
推荐阅读
- java - Android Studio 中的 IP 查找问题无法解析主机地址 Java
- python - pyspark中的动态联合数据框
- sed - 找到第一个出现的单词并使用 sed 命令编辑它旁边的行
- c# - 从命令行触发 C# windows 窗体中的操作?
- azure-logic-apps - 基于文件名创建动态文件夹的逻辑应用
- android - 数据绑定:如何解决“找不到访问者”问题
- sql - SQL 案例语句作为列
- javascript - 如何保护 socket.io 聊天室
- python - 一个 div 内的硒计数 div
- python - 尝试使用 GoogleSheet API 打开电子表格时如何修复“google.auth.exceptions.RefreshError: ('No access token in response。”