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

时间:2016-03-02 16:13:48

标签: powershell amazon-web-services amazon-cloudformation

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

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

1 个答案:

答案 0 :(得分:2)

只要有问题的参数没有将NoEcho属性显式设置为true(默认为false),那么您可以使用{{检索参数值3}}从各种工具(例如您选择的AWS API,CLI或SDK)调用。如果NoEcho设置为true,您将无法检索这些参数值。

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

AWS CLI示例:

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

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

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