是否可以从 CloudFormation 检索作为参数传入的值以用于其他用途?

nnn*_*nnm 3 powershell amazon-web-services aws-cloudformation

我将 Windows 用户帐户凭据作为参数传入 CloudFormation 模板中。使用 SSM/EC2Config,我需要在与此模板关联的实例上执行命令,但由于 Windows 上只有一个特定用户帐户被授予对我所需资源的访问权限,因此当我通过以下方式执行 Powershell 命令时,我需要指定这些相同的凭据SSM(因为仅以管理员身份运行将没有适当的访问权限)。

这些命令将在稍后运行,而不是在实例启动时运行。我有什么办法可以从 CloudFormation 获取这些凭据吗?或者还有其他方法可以实现此目的或类似的目的吗?

mfi*_*rca 5

只要相关参数没有NoEcho显式设置为true(默认为)的属性,您就可以使用任意各种工具(例如 AWS API、CLI 或 SDK)中的描述堆栈false调用来检索参数值。你的选择)。如果设置为,您将无法检索这些参数值。NoEchotrue

要运行该命令,您需要从使用具有正确调用权限的 IAM 角色/实例配置文件运行的实例运行它describe-stacks,或者该工具已配置有具有权限的 AWS 安全凭证(即Access Key IdSecret Access Key)。

AWS CLI 示例:

aws cloudformation describe-stacks --region <region> --stack-name <stack-name>

默认情况下,您会注意到参数以及有关堆栈的大量其他信息嵌入在 JSON 响应中。为了在脚本编写中更有用,您可以使用JMESPath查询将返回的数据范围缩小到仅参数值:

aws cloudformation describe-stacks --region <region> --stack-name <stack-name> --query 'Stacks[*].Parameters[?ParameterKey == `<parameter-name>`].ParameterValue' --output text