Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otentikasi registri pribadi di Amazon ECR
Anda dapat menggunakan AWS Management Console, SDK AWS CLI, atau AWS SDK untuk membuat dan mengelola repositori pribadi. Anda juga dapat menggunakan metode tersebut untuk melakukan beberapa tindakan pada citra, seperti mendaftar atau menghapusnya. Klien ini menggunakan metode AWS otentikasi standar. Meskipun Anda dapat menggunakan API Amazon ECR untuk mendorong dan menarik citra, Anda lebih cenderung menggunakan Docker CLI atau perpustakaan Docker khusus bahasa.
Docker CLI tidak mendukung metode otentikasi IAM asli. Langkah-langkah tambahan harus diambil sehingga Amazon ECR dapat mengautentikasi dan mengotorisasi permintaan dorongan dan tarikan Docker.
Metode autentikasi registri yang dirinci dalam bagian berikut tersedia.
Menggunakan Amazon ECR credential helper
Amazon ECR menyediakan Docker credential helper yang membuatnya lebih mudah untuk menyimpan dan menggunakan kredensial Docker saat mendorong dan menarik citra ke Amazon ECR. Untuk langkah-langkah instalasi dan konfigurasi, lihat Amazon ECR Docker Credential Helper
catatan
Pembantu kredensi Amazon ECR Docker saat ini tidak mendukung otentikasi multi-faktor (MFA).
Menggunakan token otorisasi
Lingkup perizinan token otorisasi sesuai dengan IAM utama yang digunakan untuk mengambil token autentikasi. Token otentikasi digunakan untuk mengakses registri Amazon ECR di mana IAM utama Anda memiliki akses dan berlaku selama 12 jam. Untuk mendapatkan token otorisasi, Anda harus menggunakan operasi GetAuthorizationTokenAPI untuk mengambil token otorisasi berenkode base64 yang berisi nama pengguna dan kata sandi yang dikodekan. AWS
AWS CLI
get-login-password
Perintah menyederhanakan ini dengan mengambil dan mendekode token otorisasi yang kemudian dapat Anda salurkan ke perintah untuk mengautentikasi. docker
login
Untuk mengautentikasi Docker ke registri pribadi Amazon ECR dengan get-login
Untuk mengautentikasi Docker ke registri Amazon ECR dengan get-login-password, jalankan perintah. aws ecr get-login-password Ketika meneruskan token otorisasi ke perintah docker login, gunakan nilai
AWS
untuk nama pengguna dan tentukan URI registri Amazon ECR yang ingin Anda autentikasi. Jika melakukan autentikasi untuk beberapa registri, Anda harus mengulangi perintah tersebut untuk setiap registri.penting
Jika Anda menerima pesan kesalahan, instal atau upgrade ke versi terbaru AWS CLI. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna Amazon EKS AWS Command Line Interface .
-
get-login-password (AWS CLI)
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com -
LoginCommandDapatkan-ECR ()AWS Tools for Windows PowerShell
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com
-
Menggunakan autentikasi HTTP API
Amazon ECR mendukung HTTP API Registri Docker-H
opsi untuk curl dan meneruskan token otorisasi yang disediakan oleh perintah. get-authorization-token AWS CLI
Untuk mengautentikasi dengan HTTP API Amazon ECR
-
Ambil token otorisasi dengan AWS CLI dan atur ke variabel lingkungan.
TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
-
Untuk mengautentikasi ke API, berikan variabel
$TOKEN
ke opsi-H
dari curl. Misalnya, perintah berikut mencantumkan tanda citra dalam repositori Amazon ECR. Untuk informasi lebih lanjut, lihat dokumentasi referensi HTTP API Registri Docker. curl -i -H "Authorization: Basic $TOKEN" https://
aws_account_id
.dkr.ecr.region
.amazonaws.com/v2/amazonlinux
/tags/listOutput adalah sebagai berikut:
HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Thu, 04 Jan 2018 16:06:59 GMT Docker-Distribution-Api-Version: registry/2.0 Content-Length: 50 Connection: keep-alive {"name":"amazonlinux","tags":["2017.09","latest"]}