据我了解,一个实例需要被授予访问的cloudformation:*资源,以便做任何事情与CloudFormation。
但是,当我在一个Beanstalk Web服务器实例上运行这个:
cfn-get-metadata -s awseb-e-xxxxxxxxx-stack -r AWSEBAutoScalingGroup
我得到一个完整的元数据转储,没有问题。
cloudformation:*权限cloudformation:*资源。 我怎样才能读取任何CF元数据?
我注意到,在客户端代码中,脚本使用实例凭据( self.using_instance_identity为True)
signer = CFNSigner() \ if self.using_instance_identity \ else V4Signer(region, 'cloudformation')
这是一些特定于CF的魔法吗?或者我错过了一些授予CF权限的地方?
是的,CloudFormation服务有一个特殊的未公开的身份validation机制,允许来自堆栈中任何实例的cfn- *脚本在不使用IAM的情况下查看堆栈的元数据。 它可能像这样工作: