Dapatkan nilai rahasia atau rahasia dari Secrets Manager - AWS CloudFormation

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 referensi secretsmanager 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 referensi secretsmanager dinamis, atau memperbarui properti sumber daya lainnya.

    Misalnya, misalkan dalam template Anda, Anda menentukan MasterPassword properti dari sebuah AWS::RDS::DBInstancesumber daya untuk menjadi referensi secretsmanager dinamis, dan kemudian membuat tumpukan dari template. Anda kemudian memperbarui nilai rahasia itu di Secrets Manager, tetapi jangan memperbarui AWS::RDS::DBInstance sumber daya di template Anda. Dalam kasus ini, bahkan jika Anda melakukan pembaruan tumpukan, nilai rahasia dalam MasterPassword 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, sepertisecretsmanager, 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 adalah SecretString.

json-key

Nama kunci dari pasangan kunci-nilai yang nilainya ingin Anda ambil. Jika Anda tidak menentukanjson-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 tentukan version-id. Jika Anda tidak menentukan salah satu version-stage atauversion-id, maka defaultnya adalah AWSCURRENT 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 tentukan version-stage. Jika Anda tidak menentukan salah satu version-stage atauversion-id, maka defaultnya adalah AWSCURRENT versinya.

Segmen ini mungkin tidak memasukkan karakter titik dua ( :).

Contoh

Mengambil nilai nama pengguna dan kata sandi dari rahasia

Berikut ini AWS::RDS::DBInstancecontoh mengambil nama pengguna dan nilai kata sandi yang disimpan dalam MySecret rahasia. Versi rahasia yang diambil adalah versi dengan nilai tahap versi. 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 forMySecret.

{{resolve:secretsmanager:MySecret}}

Atau:

{{resolve:secretsmanager:MySecret::::}}

Mengambil nilai dari versi rahasia tertentu

Referensi dinamis berikut mengambil password nilai untuk AWSPREVIOUS versi. MySecret

{{resolve:secretsmanager:MySecret:SecretString:password:AWSPREVIOUS}}

Mengambil rahasia dari yang lain Akun AWS

Referensi dinamis berikut mengambil SecretString untuk MySecret yang lain Akun AWS. Anda harus menentukan rahasia lengkap ARN untuk mengakses rahasia di tempat lain Akun AWS.

{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret}}

Referensi dinamis berikut mengambil password nilai untuk MySecret yang lain Akun AWS. Anda harus menentukan rahasia lengkap ARN untuk mengakses rahasia di tempat lain Akun AWS.

{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret:SecretString:password}}