View a markdown version of this page

Menggunakan non-AWS gambar 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 non-AWS gambar kontainer di Amazon ECS

Gunakan registri pribadi untuk menyimpan kredensi Anda AWS Secrets Manager, dan kemudian mereferensikannya dalam definisi tugas Anda. Ini menyediakan cara untuk mereferensikan gambar kontainer yang ada di registri 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 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 agen kontainer 1.19.0 atau versi yang lebih baru. 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 untuk Amazon ECS.

Dalam definisi wadah Anda, tent repositoryCredentials ukan 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 rahasianya 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 lengkap rahasia harus ditentukan. Saat menggunakan Konsol Manajemen AWS, ARN lengkap rahasia harus ditentukan selalu.

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

Ganti parameter berikut:

  • private-repodengan nama host repositori pribadi

  • private-imagedengan nama gambar

  • arn:aws:secretsmanager:region:aws_account_id:secret:secret_namedengan Nama Sumber Daya Amazon rahasia (ARN)

"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 kontainer Amazon ECS untuk mengotentikasi ke registri pribadi. Metode ini hanya didukung untuk tugas yang dihosting di instans Amazon EC2. Untuk informasi selengkapnya, lihat Mengonfigurasi instans kontainer 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 pelaksanaan tugas Amazon ECS.

    Otentikasi registri pribadi memungkinkan tugas Amazon ECS Anda untuk menarik gambar kontainer dari pendaftar pribadi di luar AWS (seperti Docker Hub, Quay.io, atau registri pribadi Anda sendiri) yang memerlukan kredentif otentikasi. Fitur ini menggunakan Secrets Manager untuk menyimpan kredenSIAL registri Anda dengan aman, yang kemudian direferensikan dalam definisi tugas Anda menggunakan repositoryCredentials parameter.

    Untuk informasi selengkapnya tentang mengonfigurasi otentikasi registri pribadi, lihat Menggunakan gambar AWS non-kontainer di Amazon ECS.

    Untuk memberikan akses ke rahasia yang berisi kredentif registri pribadi Anda, tambahkan izin berikut sebagai kebijakan sebaris ke peran eksekusi tugas. Untuk informasi selengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.

    • secretsmanager:GetSecretValue—Diperlukan untuk mengambil kredenSIAL registri pribadi dari Manajer Rahasia.

    • kms:Decrypt—Wajib hanya jika rahasia 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 sebaris yang menambahkan izin.

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

    Masukkan kredentif 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.