Praktik terbaik untuk manajemen rahasia di Amazon ECS - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Praktik terbaik untuk manajemen rahasia di Amazon ECS

Rahasia, seperti kunci API dan kredensyal basis data, sering digunakan oleh aplikasi untuk mendapatkan akses sistem lain. Mereka sering terdiri dari nama pengguna dan kata sandi, sertifikat, atau kunci API. Akses ke rahasia ini harus dibatasi pada prinsipal IAM tertentu yang menggunakan IAM dan disuntikkan ke dalam wadah saat runtime.

Rahasia dapat disuntikkan dengan mulus ke dalam wadah dari AWS Secrets Manager dan Amazon EC2 Systems Manager Parameter Store. Rahasia-rahasia ini dapat direferensikan dalam tugas Anda sebagai salah satu dari berikut ini.

  1. Mereka direferensikan sebagai variabel lingkungan yang menggunakan parameter definisi secrets kontainer.

  2. Mereka direferensikan secretOptions seolah-olah platform logging Anda memerlukan otentikasi. Untuk informasi selengkapnya, lihat opsi konfigurasi logging.

  3. Mereka direferensikan sebagai rahasia yang ditarik oleh gambar yang menggunakan parameter definisi repositoryCredentials wadah jika registri tempat penampung ditarik memerlukan otentikasi. Gunakan metode ini saat menarik gambar dari Galeri Publik Amazon ECR. Untuk informasi selengkapnya, lihat Autentikasi registri pribadi untuk tugas.

Rekomendasi rahasia

Kami menyarankan Anda melakukan hal berikut saat mengatur manajemen rahasia.

Gunakan AWS Secrets Manager atau Amazon EC2 Systems Manager Parameter Store untuk menyimpan materi rahasia

Anda harus menyimpan kunci API, kredensyal database, dan materi rahasia lainnya dengan aman di dalam AWS Secrets Manager atau sebagai parameter terenkripsi di Amazon EC2 Systems Manager Parameter Store. Layanan ini serupa karena keduanya merupakan penyimpanan nilai kunci terkelola yang digunakan AWS KMS untuk mengenkripsi data sensitif. AWS Secrets Manager Namun, juga mencakup kemampuan untuk secara otomatis memutar rahasia, menghasilkan rahasia acak, dan berbagi rahasia di seluruh AWS akun. Jika Anda menganggap fitur-fitur penting ini, gunakan AWS Secrets Manager sebaliknya gunakan parameter terenkripsi.

catatan

Tugas yang mereferensikan rahasia dari AWS Secrets Manager atau Amazon EC2 Systems Manager Parameter Store memerlukan Peran Eksekusi Tugas dengan kebijakan yang memberikan akses Amazon ECS ke rahasia yang diinginkan dan, jika berlaku, kunci yang digunakan untuk mengenkripsi dan mendekripsi rahasia AWS KMS itu.

penting

Rahasia yang direferensikan dalam tugas tidak diputar secara otomatis. Jika rahasia Anda berubah, Anda harus memaksa penerapan baru atau meluncurkan tugas baru untuk mengambil nilai rahasia terbaru. Untuk informasi selengkapnya, lihat topik berikut.

Mengambil data dari bucket Amazon S3 terenkripsi

Karena nilai variabel lingkungan dapat bocor secara tidak sengaja di log dan terungkap saat dijalankandocker inspect, Anda harus menyimpan rahasia di bucket Amazon S3 terenkripsi dan menggunakan peran tugas untuk membatasi akses ke rahasia tersebut. Ketika Anda melakukan ini, aplikasi Anda harus ditulis untuk membaca rahasia dari ember Amazon S3. Untuk petunjuknya, lihat Menyetel perilaku enkripsi sisi server default untuk bucket Amazon S3.

Pasang rahasia ke volume menggunakan wadah sespan

Karena ada peningkatan risiko kebocoran data dengan variabel lingkungan, Anda harus menjalankan wadah sespan yang membaca rahasia Anda AWS Secrets Manager dan menuliskannya ke volume bersama. Kontainer ini dapat berjalan dan keluar sebelum penampung aplikasi dengan menggunakan pemesanan kontainer Amazon ECS. Ketika Anda melakukan ini, wadah aplikasi kemudian memasang volume tempat rahasia itu ditulis. Seperti metode bucket Amazon S3, aplikasi Anda harus ditulis untuk membaca rahasia dari volume bersama. Karena volume tercakup pada tugas, volume secara otomatis dihapus setelah tugas berhenti. Untuk contoh kontainer sespan, lihat proyek aws-secret-sidecar-injector.

catatan

Di Amazon EC2, volume tempat rahasia ditulis dapat dienkripsi dengan kunci yang AWS KMS dikelola pelanggan. AWS Fargate Aktif, penyimpanan volume secara otomatis dienkripsi menggunakan kunci yang dikelola layanan.

Sumber daya tambahan