2016-03-02 52 views
1

我有Windows用戶帳戶憑據作爲CloudFormation模板中的參數傳入。使用SSM/EC2Config我需要在與此模板關聯的實例上執行命令,但由於Windows上只有一個特定用戶帳戶已被授予訪問我需要的資源的權限,所以當我通過通過執行Powershell命令時需要指定這些相同的憑據SSM(正如以管理員身份運行將無法正常訪問)。作爲參數傳入的值是否可以從CloudFormation中檢索以用於其他用途?

這些命令將在稍後運行,而不是在實例啓動時運行。有沒有辦法讓我從CloudFormation獲取這些證書?或者其他方式來實現這個或類似的東西?

回答

1

只要有問題的參數沒有NoEcho屬性明確設置爲true(默認爲false),那麼你可以使用參數值describe-stacks從任何的各種工具(例如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響應內嵌,有一堆關於堆棧的其他信息。要在腳本更加有用,您可以使用JMESPath查詢來縮小返回的數據只是參數的值:

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

相關問題