我将Windows用户帐户凭据作为CloudFormation模板中的参数传入。使用SSM / EC2Config我将需要在与此模板关联的实例上执行命令,但由于Windows上只有一个特定用户帐户被授予访问我需要的资源的权限,因此我需要在执行Powershell命令时指定相同的凭据SSM(以管理员身份运行将无权访问)。
命令将在稍后运行,而不是在实例启动时运行。我有什么方法可以从CloudFormation获取这些凭据吗?或者任何其他方式来实现这个或类似的东西?
答案 0 :(得分:2)
只要有问题的参数没有将NoEcho
属性显式设置为true
(默认为false
),那么您可以使用{{检索参数值3}}从各种工具(例如您选择的AWS API,CLI或SDK)调用。如果NoEcho
设置为true
,您将无法检索这些参数值。
要运行该命令,您需要从运行IAM角色/实例配置文件的实例运行该命令,该实例具有调用describe-stacks
的正确权限,或者该工具已使用AWS安全凭证进行配置(即Access Key Id
和Secret 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