我想了解以下政策
Policies:
- PolicyName: InstanceIAMPolicy
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- 'ssm:DescribeAssociation'
- 'ssm:GetDeployablePatchSnapshotForInstance'
- 'ssm:GetDocument'
- 'ssm:GetManifest'
- 'ssm:GetParameters'
- 'ssm:ListInstanceAssociations'
- 'ssm:PutComplianceItems'
- 'ssm:PutConfigurePackageResult'
- 'ssm:UpdateAssociationStatus'
- 'ssm:UpdateInstanceAssociationStatus'
- 'ssm:UpdateInstanceInformation'
Resource: '*'
Effect: Allow
Action:
- 'ec2messages:AcknowledgeMessage'
- 'ec2messages:FailMessage'
- 'ec2messages:GetEndpoint'
- 'ec2messages:GetMessages'
- 'ec2messages:SendReply'
Resource: '*'
我的问题与提到的资源参数有关*。这是否意味着可以在AWS基础架构中的任何资源上执行操作?我是CloudFormation模板和AWS的新手。谢谢你的帮助。
答案 0 :(得分:1)
简短的答案是肯定的。
在您的模板中,您在“语句”下有两个部分。每个部分都定义了“允许”操作。对于每个部分,您“允许”所有资源的API。第一部分用于SSM,第二部分用于SSM EC2Messages。
注意:根据允许操作,您可以将这两个部分合并在一起。
此链接将帮助您使用CloudFormation模板:
答案 1 :(得分:1)
您问题中的CloudFormation模板正在创建IAM策略。您的问题实际上是关于通配符在IAM策略中的工作原理。 *
wildcard in an IAM policy Resource
元素表示应用此IAM策略的内容可以针对您的AWS账户中的任何资源执行列出的操作。
该策略似乎是您将应用于EC2实例配置文件的策略,以允许AWS SSM代理在该EC2实例上执行任何SSM任务。由于资源特定为*
通配符,因此SSM代理可以下载您发送的任何SSM文档(ssm:GetDocument
)。这基本上允许SSM代理在EC2实例上正常工作,而不需要您在每次触发它时都授予它对您需要它执行的每个操作的特定访问权。