Menggunakan gambar AWS non-kontainer 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.

Menggunakan gambar AWS non-kontainer di Amazon ECS

Gunakan registri pribadi untuk menyimpan kredensyal Anda AWS Secrets Manager, dan kemudian mereferensikannya dalam definisi tugas Anda. Ini menyediakan cara untuk mereferensikan gambar kontainer yang ada di pendaftar pribadi di luar AWS yang memerlukan otentikasi dalam definisi tugas Anda. Fitur ini didukung oleh tugas yang dihosting di Fargate, instans Amazon EC2, dan instans eksternal yang menggunakan Amazon ECS Anywhere.

penting

Jika definisi tugas Anda mereferensikan gambar yang disimpan di Amazon ECR, topik ini tidak berlaku. Untuk informasi selengkapnya, lihat Menggunakan Gambar Amazon ECR dengan Amazon ECS di Panduan Pengguna Amazon Elastic Container Registry.

Untuk tugas yang dihosting di instans Amazon EC2, fitur ini memerlukan versi 1.19.0 atau yang lebih baru dari agen penampung. Akan tetapi, kami merekomendasikan untuk menggunakan versi agen kontainer terbaru. Untuk informasi tentang cara memeriksa versi agen Anda dan memperbarui ke versi terbaru, lihatMemperbarui agen kontainer Amazon ECS.

Untuk tugas yang dihosting di Fargate, fitur ini memerlukan versi platform 1.2.0 atau yang lebih baru. Untuk informasi, lihat Versi platform Fargate Linux untuk Amazon ECS.

Dalam definisi kontainer Anda, tentukan repositoryCredentials objek dengan detail rahasia yang Anda buat. Rahasia yang direferensikan dapat berasal dari akun yang berbeda Wilayah AWS atau berbeda dari tugas yang menggunakannya.

catatan

Saat menggunakan Amazon ECS API, AWS CLI, atau AWS SDK, jika rahasia ada Wilayah AWS sama dengan tugas yang Anda luncurkan maka Anda dapat menggunakan ARN lengkap atau nama rahasia. Jika rahasia ada di akun yang berbeda, ARN penuh rahasia harus ditentukan. Saat menggunakan AWS Management Console, ARN penuh rahasia harus ditentukan selalu.

Berikut ini adalah cuplikan definisi tugas yang menunjukkan parameter yang diperlukan:

Gantikan repo pribadi dengan nama host repositori pribadi dan gambar pribadi dengan nama gambar.

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]
catatan

Metode lain untuk mengaktifkan otentikasi registri pribadi menggunakan variabel lingkungan agen penampung Amazon ECS untuk mengautentikasi ke pendaftar pribadi. Metode ini hanya didukung untuk tugas yang dihosting di instans Amazon EC2. Untuk informasi selengkapnya, lihat Mengonfigurasi instans penampung Amazon ECS untuk gambar Docker pribadi .

Untuk menggunakan registri pribadi
  1. Definisi tugas harus memiliki peran eksekusi tugas. Hal ini mengizinkan agen kontainer untuk menarik citra kontainer. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugas Amazon ECS.

    Untuk memberikan akses ke rahasia yang Anda buat, tambahkan izin berikut sebagai kebijakan inline ke peran eksekusi tugas. Untuk informasi selengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.

    • secretsmanager:GetSecretValue

    • kms:Decrypt—Diperlukan hanya jika kunci Anda menggunakan kunci KMS khusus dan bukan kunci default. Nama Sumber Daya Amazon (ARN) untuk kunci kustom Anda harus ditambahkan sebagai sumber daya.

    Berikut ini adalah contoh kebijakan inline yang menambahkan izin.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }
  2. Gunakan AWS Secrets Manager untuk membuat rahasia untuk kredensyal registri pribadi Anda. Untuk informasi tentang cara membuat rahasia, lihat Membuat AWS Secrets Manager rahasia di Panduan AWS Secrets Manager Pengguna.

    Masukkan kredensyal registri pribadi Anda menggunakan format berikut:

    { "username" : "privateRegistryUsername", "password" : "privateRegistryPassword" }
  3. Mendaftarkan ketentuan tugas. Untuk informasi selengkapnya, lihat Membuat definisi tugas Amazon ECS menggunakan konsol.