Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Di CloudFormation, Anda dapat menggunakan data sensitif seperti kata sandi atau kunci lisensi tanpa mengeksposnya langsung di templat Anda dengan menyimpan data sensitif sebagai “string aman” di AWS Systems Manager Parameter Store. Untuk pengantar Parameter Store, lihat AWS Systems Manager Parameter Menyimpan di Panduan AWS Systems Manager Pengguna.
Untuk menggunakan string aman Parameter Store dalam template Anda, Anda menggunakan referensi ssm-secure
dinamis. CloudFormation tidak pernah menyimpan nilai string aman yang sebenarnya. Sebaliknya, ia hanya menyimpan referensi dinamis literal, yang berisi nama parameter plaintext dari string aman.
Selama pembuatan tumpukan atau pembaruan, CloudFormation mengakses nilai string aman sesuai kebutuhan, tanpa mengekspos nilai sebenarnya. String aman hanya dapat digunakan untuk properti sumber daya yang mendukung pola referensi ssm-secure
dinamis. Untuk informasi selengkapnya, lihat Sumber daya yang men-support pola parameter dinamis untuk string aman.
CloudFormation tidak mengembalikan nilai parameter aktual untuk string aman dalam API panggilan apa pun. Ini hanya mengembalikan referensi dinamis literal. Saat membandingkan perubahan menggunakan set perubahan, CloudFormation hanya membandingkan string referensi dinamis literal. Itu tidak menyelesaikan dan membandingkan nilai string aman yang sebenarnya.
Saat menggunakan referensi ssm-secure
dinamis, ada beberapa hal penting yang perlu diingat:
-
CloudFormation tidak dapat mengakses nilai Parameter Store dari yang lain Akun AWS.
-
CloudFormation tidak mendukung penggunaan label parameter Systems Manager atau parameter publik dalam referensi dinamis.
-
Di wilayah
cn-north-1
dancn-northwest-1
wilayah, string aman tidak didukung oleh Systems Manager. -
Referensi dinamis untuk nilai aman, seperti
ssm-secure
, saat ini tidak didukung dalam sumber daya khusus. -
Jika CloudFormation perlu memutar kembali pembaruan tumpukan, dan versi parameter string aman yang ditentukan sebelumnya tidak lagi tersedia, operasi rollback akan gagal. Dalam kasus seperti itu, Anda memiliki dua opsi:
-
Gunakan
CONTINUE_UPDATE_ROLLBACK
untuk melewati sumber daya. -
Buat ulang parameter string aman di Systems Manager Parameter Store, dan perbarui hingga versi parameter mencapai versi yang digunakan dalam template. Kemudian, gunakan
CONTINUE_UPDATE_ROLLBACK
tanpa melewatkan sumber daya.
-
Sumber daya yang men-support pola parameter dinamis untuk string aman
Sumber daya yang mendukung pola referensi ssm-secure
dinamis meliputi:
Sumber Daya | Jenis properti | Properti |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Pola referensi
Untuk mereferensikan nilai string aman dari Systems Manager Parameter Store di CloudFormation template Anda, gunakan pola ssm-secure
referensi berikut.
{{resolve:ssm-secure:
parameter-name
:version
}}
Referensi Anda harus mematuhi pola ekspresi reguler berikut untuk nama parameter dan versi:
{{resolve:ssm-secure:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name
-
Nama parameter dalam Penyimpanan Parameter. Perhatikan bahwa nama parameter bersifat peka huruf besar-kecil.
Diperlukan.
version
-
Integer yang menentukan versi parameter untuk digunakan. Jika Anda tidak menentukan versi yang tepat, CloudFormation gunakan versi terbaru dari parameter setiap kali Anda membuat atau memperbarui tumpukan. Untuk informasi selengkapnya, lihat Bekerja dengan versi parameter di Panduan AWS Systems Manager Pengguna.
Tidak wajib.
Contoh
Contoh berikut menggunakan referensi ssm-secure
dinamis untuk mengatur kata sandi bagi IAM pengguna ke string aman yang disimpan di Parameter Store. Seperti yang ditentukan, CloudFormation akan menggunakan versi 10
parameter untuk tumpukan dan ubah operasi set.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
}}'