Otentikasi registri pribadi di Amazon ECR - Amazon ECR

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-passwordPerintah 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 aws_account_id.dkr.ecr.region.amazonaws.com
    • LoginCommandDapatkan-ECR ()AWS Tools for Windows PowerShell

      (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

Menggunakan autentikasi HTTP API

Amazon ECR mendukung HTTP API Registri Docker. Namun, karena Amazon ECR adalah registri pribadi, Anda harus memberikan token otorisasi pada setiap permintaan HTTP. Anda dapat menambahkan header otorisasi HTTP menggunakan -H opsi untuk curl dan meneruskan token otorisasi yang disediakan oleh perintah. get-authorization-token AWS CLI

Untuk mengautentikasi dengan HTTP API Amazon ECR
  1. Ambil token otorisasi dengan AWS CLI dan atur ke variabel lingkungan.

    TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
  2. 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/list

    Output 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"]}