

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
<a name="registry_auth"></a>

Anda dapat menggunakan Konsol Manajemen AWS, 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
<a name="registry-auth-credential-helper-reg"></a>

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](https://github.com/awslabs/amazon-ecr-credential-helper).

**catatan**  
Pembantu kredensi Amazon ECR Docker saat ini tidak mendukung otentikasi multi-faktor (MFA).

## Menggunakan token otorisasi
<a name="registry-auth-token"></a>

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 [GetAuthorizationToken](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_GetAuthorizationToken.html)API 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 mengotentikasi 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](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) dalam *Panduan Pengguna Amazon EKS AWS Command Line Interface *.
  + [get-login-password](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html)(AWS CLI)

    ```
    aws ecr get-login-password --region {{region}} | docker login --username AWS --password-stdin {{{{aws_account_id}}}}.dkr.ecr.{{region}}.amazonaws.com
    ```
  + [Get-ECRLoginCommand](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ECRLoginCommand.html) (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
<a name="registry_auth_http"></a>

Amazon ECR mendukung [HTTP API Registri Docker](https://docs.docker.com/registry/spec/api/). 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')
   ```

1. 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](https://docs.docker.com/registry/spec/api/).

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