amazon-web-services - 在 AWS Cloud Formation 中,如何在 IAM 策略中使用 Ref 指定两个资源?
问题描述
如果它们针对两个不同的资源,如何将两个相同的 IAM 策略合二为一。其中一项资源具有 Join 和 Ref。CloudFormation 模板中是否可以将以下两个策略合并为单个策略?
- Effect: Allow
Action:
- "s3:DeleteObject"
- "s3:DeleteObjectTagging"
- "s3:GetObjectAcl"
- "s3:GetObjectTagging"
- "s3:PutObject"
- "s3:PutObjectAcl"
- "s3:PutObjectTagging"
Resource:
!Join
- ''
- - 'arn:aws:s3:::'
- !Ref TestBucketName
- '/*'
- Effect: Allow
Action:
- "s3:DeleteObject"
- "s3:DeleteObjectTagging"
- "s3:GetObjectAcl"
- "s3:GetObjectTagging"
- "s3:PutObject"
- "s3:PutObjectAcl"
- "s3:PutObjectTagging"
Resource: "arn:aws:s3:::SecondTestBucket/Download/*"
解决方案
您也可以使用!Sub 或 Fn::Sub代替Join
下面的清晰代码。
- Effect: Allow
Action:
- "s3:DeleteObject"
- "s3:DeleteObjectAcl"
- "s3:DeleteObjectTagging"
- "s3:GetObjectAcl"
- "s3:GetObjectTagging"
- "s3:PutObject"
- "s3:PutObjectAcl"
- "s3:PutObjectTagging"
Resource:
- !Sub arn:aws:s3:::${TestBucketName}/*
- "arn:aws:s3:::SecondTestBucket/Download/*"
推荐阅读
- mysql - MySQL 大插入更新查询
- c# - 如何制作在客户端计算机上运行的 winforms 数据库应用程序
- html - 存储帐户静态网站在 Firefox 中提供其他值,如在 IE 和 chrome 中
- javascript - 使用 API 级别 18 的 Android WebView 评估Javascript
- c# - 尝试使用 XYZ pcmsim = (XYZ)appConfig.GetSection("XYZ"); 获取部分时出错
- angular - 路由器导航后,您可以保持角度延迟加载的组件“活动”吗?
- c# - 反序列化 XML 数据时获取空值
- spring-boot - StreamListener 或条件延迟
- java - 如何在 JUnit 测试中访问空手道配置参数?
- mongodb - 乘以行和搜索查询