【发布时间】:2018-09-16 06:52:51
【问题描述】:
我一直在尝试以 YAML 格式编写一些 AWS CloudFormation 模板。
CloudFormation 在尝试解析 IAM 策略变量(例如 ${aws:username})以及替换时遇到了问题。一个例子如下:
CommonUserGroup:
Type: AWS::IAM::Group
Properties:
GroupName: Common
Path: /project/
Policies:
- PolicyName: ClusterPolicy
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: "iam:GetAccountPasswordPolicy"
Resource: "*"
- Effect: Allow
Action: "iam:ChangePassword"
Resource: !Sub 'arn:aws:iam::${AWS::AccountId}:user/${aws:username}'
当使用 CloudFormation 模板尝试创建堆栈时,返回以下错误:
Template validation error: Template format error: Unresolved resource dependencies [aws:username] in the Resources block of the template
如果我手动指定用户名,而不是使用策略变量,例如:
'arn:aws:iam::${AWS::AccountId}:user/bob'
然后错误就消失了。
有没有一种方法可以逃避策略变量,使 CloudFormation 不会尝试将它们解析为模板的一部分?
【问题讨论】:
标签: amazon-web-services yaml amazon-cloudformation amazon-iam