本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Systems Manager 參數存放區取得安全字串值
在 中 CloudFormation,您可以將敏感資料作為「安全字串」儲存在 AWS Systems Manager 參數存放區中,以使用密碼或授權金鑰等敏感資料,而不會直接暴露在範本中。如需參數存放區的簡介,請參閱 AWS Systems Manager 使用者指南 中的AWS Systems Manager 參數存放區。
若要在範本中使用參數存放區安全字串,請使用ssm-secure
動態參考。 CloudFormation 絕不要存放實際的安全字串值。相反地,它只會儲存常值動態參考,其中包含安全字串的純文字參數名稱。
在堆疊建立或更新期間, 會視需要 CloudFormation 存取安全字串值,而不會公開實際值。安全字串只能用於支援ssm-secure
動態參考模式的資源屬性。如需詳細資訊,請參閱對安全字串支援動態參數模式的資源。
CloudFormation 不會傳回任何API呼叫中安全字串的實際參數值。它只會傳回常值動態參考。使用變更集比較變更時, CloudFormation 只會比較常值動態參考字串。它不會解析和比較實際的安全字串值。
使用ssm-secure
動態參考時,請注意以下幾點重要事項:
-
CloudFormation 無法從其他 存取參數存放區值 AWS 帳戶。
-
CloudFormation 不支援在動態參考中使用 Systems Manager 參數標籤或公有參數。
-
在
cn-north-1
和cn-northwest-1
區域中,Systems Manager 不支援安全字串。 -
自訂資源
ssm-secure
目前不支援安全值的動態參考,例如 。 -
如果 CloudFormation 需要復原堆疊更新,且先前指定的安全字串參數版本不再可用,復原操作將會失敗。在這種情況下,您有兩個選項:
-
使用
CONTINUE_UPDATE_ROLLBACK
略過資源。 -
在 Systems Manager 參數存放區中重新建立安全字串參數,並更新它,直到參數版本達到範本中使用的版本。然後,在不略過資源
CONTINUE_UPDATE_ROLLBACK
的情況下使用 。
-
對安全字串支援動態參數模式的資源
支援ssm-secure
動態參考模式的資源包括:
資源 | 屬性類型 | 屬性 |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
參考模式
若要參考範本中 CloudFormation Systems Manager 參數存放區的安全字串值,請使用下列ssm-secure
參考模式。
{{resolve:ssm-secure:
parameter-name
:version
}}
針對 parameter-name 和 version,您的參考必須遵守下列規則表達式模式:
{{resolve:ssm-secure:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name
-
參數存放區中的參數名稱。函數名稱區分大小寫。
必要。
version
-
整數,指定要使用的參數版本。如果您未指定確切版本, 會在您建立或更新堆疊時使用 CloudFormation 最新版本的 參數。如需詳細資訊,請參閱 AWS Systems Manager 使用者指南 中的使用參數版本。
選用。
範例
下列範例使用ssm-secure
動態參考,將IAM使用者的密碼設定為儲存在 參數存放區中的安全字串。如指定, CloudFormation 將使用 版本
堆疊和變更集操作的 10
參數。IAMUserPassword
JSON
"MyIAMUser": { "Type": "AWS::IAM::User", "Properties": { "UserName": "MyUserName", "LoginProfile": { "Password": "{{resolve:ssm-secure:
IAMUserPassword:10
}}" } } }
YAML
MyIAMUser: Type: AWS::IAM::User Properties: UserName: 'MyUserName' LoginProfile: Password: '{{resolve:ssm-secure:
IAMUserPassword:10
}}'