Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dapatkan nilai rahasia atau rahasia dari Secrets Manager
Secrets Manager adalah layanan yang memungkinkan Anda menyimpan dan mengelola rahasia dengan aman seperti kredensi basis data, kata sandi, dan kunci pihak ketiga. API Menggunakan Secrets Manager, Anda dapat menyimpan dan mengontrol akses ke rahasia ini secara terpusat, sehingga Anda dapat mengganti kredensi hardcode dalam kode Anda (termasuk kata sandi), dengan panggilan ke API Secrets Manager untuk mengambil rahasia secara terprogram. Untuk informasi lebih lanjut, lihat Apa itu AWS Secrets Manager? dalam AWS Secrets Manager User Guide.
Untuk menggunakan seluruh rahasia atau nilai rahasia yang disimpan di Secrets Manager dalam CloudFormation template Anda, Anda menggunakan referensi secretsmanager
dinamis.
Pertimbangan
Saat menggunakan referensi secretsmanager
dinamis, ada beberapa pertimbangan keamanan penting yang perlu diingat:
-
Referensi
secretsmanager
dinamis dapat digunakan di semua atribut sumber daya. Menggunakan referensisecretsmanager
dinamis menunjukkan bahwa Secrets Manager maupun CloudFormation log tidak boleh mempertahankan nilai rahasia yang diselesaikan. Namun, nilai rahasia dapat muncul di layanan yang sumber dayanya digunakan. Tinjau penggunaan Anda untuk menghindari kebocoran data rahasia. -
Memperbarui rahasia di Secrets Manager tidak secara otomatis memperbarui rahasia di CloudFormation. CloudFormation Agar dapat memperbarui referensi
secretsmanager
dinamis, Anda harus melakukan pembaruan tumpukan yang memperbarui sumber daya yang berisi referensi dinamis, baik dengan memperbarui properti sumber daya yang berisi referensisecretsmanager
dinamis, atau memperbarui properti sumber daya lainnya.Misalnya, misalkan dalam template Anda, Anda menentukan
MasterPassword
properti dari sebuah AWS::RDS::DBInstancesumber daya untuk menjadi referensisecretsmanager
dinamis, dan kemudian membuat tumpukan dari template. Anda kemudian memperbarui nilai rahasia itu di Secrets Manager, tetapi jangan memperbaruiAWS::RDS::DBInstance
sumber daya di template Anda. Dalam kasus ini, bahkan jika Anda melakukan pembaruan tumpukan, nilai rahasia dalamMasterPassword
properti tidak diperbarui, dan tetap nilai rahasia sebelumnya.Juga, pertimbangkan untuk menggunakan Secrets Manager untuk memutar rahasia secara otomatis untuk layanan atau basis data aman. Untuk informasi selengkapnya, lihat Merotasi rahasia AWS Secrets Manager.
-
Referensi dinamis untuk nilai aman, seperti
secretsmanager
, saat ini tidak didukung dalam sumber daya khusus.
Izin
Untuk menentukan rahasia yang disimpan di Secrets Manager, Anda harus memiliki izin untuk menelepon GetSecretValueuntuk rahasianya.
Pola referensi
Untuk mereferensikan rahasia Secrets Manager di CloudFormation template Anda, gunakan pola secretsmanager
referensi berikut.
{{resolve:secretsmanager:
secret-id
:secret-string
:json-key
:version-stage
:version-id
}}
secret-id
-
Nama atau ARN rahasianya.
Untuk mengakses rahasia di Anda Akun AWS, Anda hanya perlu menentukan nama rahasia. Untuk mengakses rahasia di tempat yang berbeda Akun AWS, tentukan lengkap ARN rahasianya.
Wajib.
secret-string
-
Satu-satunya nilai yang di-support adalah
SecretString
. Default-nya adalahSecretString
. json-key
-
Nama kunci dari pasangan kunci-nilai yang nilainya ingin Anda ambil. Jika Anda tidak menentukan
json-key
, CloudFormation mengambil seluruh teks rahasia.Segmen ini mungkin tidak memasukkan karakter titik dua (
:
). version-stage
-
Label pementasan versi rahasia yang akan digunakan. Secrets Manager menggunakan label pementasan untuk melacak versi yang berbeda selama proses rotasi. Jika Anda menggunakan
version-stage
maka jangan tentukanversion-id
. Jika Anda tidak menentukan salah satuversion-stage
atauversion-id
, maka defaultnya adalahAWSCURRENT
versinya.Segmen ini mungkin tidak memasukkan karakter titik dua (
:
). version-id
-
Pengidentifikasi unik dari versi rahasia yang akan digunakan. Jika Anda menentukan
version-id
, jangan tentukanversion-stage
. Jika Anda tidak menentukan salah satuversion-stage
atauversion-id
, maka defaultnya adalahAWSCURRENT
versinya.Segmen ini mungkin tidak memasukkan karakter titik dua (
:
).
Contoh
Topik
Mengambil nilai nama pengguna dan kata sandi dari rahasia
Berikut ini AWS::RDS::DBInstancecontoh mengambil nama pengguna dan nilai kata sandi yang disimpan dalam
rahasia. Versi rahasia yang diambil adalah versi dengan nilai tahap versi. MySecret
AWSCURRENT
JSON
{ "MyRDSInstance": { "Type": "AWS::RDS::DBInstance", "Properties": { "DBName": "MyRDSInstance", "AllocatedStorage": "20", "DBInstanceClass": "db.t2.micro", "Engine": "mysql", "MasterUsername": "{{resolve:secretsmanager:
MySecret
:SecretString:username
}}", "MasterUserPassword": "{{resolve:secretsmanager:MySecret
:SecretString:password
}}" } } }
YAML
MyRDSInstance: Type: 'AWS::RDS::DBInstance' Properties: DBName: MyRDSInstance AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: '{{resolve:secretsmanager:
MySecret
:SecretString:username
}}' MasterUserPassword: '{{resolve:secretsmanager:MySecret
:SecretString:password
}}'
Mengambil seluruh SecretString
Referensi dinamis berikut mengambil SecretString
for
.MySecret
{{resolve:secretsmanager:
MySecret
}}
Atau:
{{resolve:secretsmanager:
MySecret
::::}}
Mengambil nilai dari versi rahasia tertentu
Referensi dinamis berikut mengambil
nilai untuk password
versi. AWSPREVIOUS
MySecret
{{resolve:secretsmanager:
MySecret
:SecretString:password
:AWSPREVIOUS
}}
Mengambil rahasia dari yang lain Akun AWS
Referensi dinamis berikut mengambil SecretString
untuk
yang lain Akun AWS. Anda harus menentukan rahasia lengkap ARN untuk mengakses rahasia di tempat lain Akun AWS.MySecret
{{resolve:secretsmanager:
arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret
}}
Referensi dinamis berikut mengambil
nilai untuk password
yang lain Akun AWS. Anda harus menentukan rahasia lengkap ARN untuk mengakses rahasia di tempat lain Akun AWS.MySecret
{{resolve:secretsmanager:
arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret
:SecretString:password
}}