

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Penandatanganan terkelola
<a name="managed-signing"></a>

Penandatanganan terkelola Amazon ECR secara otomatis menandatangani gambar penampung Anda dengan membuat tanda tangan kriptografi menggunakan [AWS Penandatangan](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) saat gambar didorong ke Amazon ECR. Ini menghilangkan kebutuhan untuk menginstal dan mengkonfigurasi alat sisi klien dan memungkinkan Anda untuk mengatur penandatanganan secara terpusat sebagai konfigurasi registri.

## Prasyarat
<a name="managed-signing-prerequisites"></a>

Untuk mengonfigurasi penandatanganan terkelola, Anda membuat konfigurasi penandatanganan dengan Amazon ECR yang mereferensikan satu atau beberapa profil penandatanganan Penandatangan dan, secara opsional, filter repositori yang membatasi repositori mana yang harus ditandatangani gambarnya. Setelah dikonfigurasi, Amazon ECR mengelola penandatanganan secara otomatis menandatangani gambar saat didorong menggunakan identitas entitas yang mendorong gambar.

Sebelum Anda dapat mengonfigurasi penandatanganan terkelola, Anda harus memiliki yang berikut:
+ Profil **penandatanganan Penandatangan — Buat setidaknya satu profil** [penandatanganan Penandatangan](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profiles.html). Profil penandatanganan adalah sumber daya AWS Penandatangan unik yang dapat Anda gunakan untuk melakukan operasi penandatanganan di Amazon ECR. Profil penandatanganan memungkinkan Anda untuk menandatangani dan memverifikasi artefak kode, seperti gambar kontainer dan AWS Lambda bundel penerapan. Setiap profil penandatanganan menunjuk platform penandatanganan untuk ditandatangani, ID platform, dan informasi khusus platform lainnya. Misalnya, profil penandatanganan ARN terlihat seperti ini:. `arn:partition:signer:region:account-id:/signing-profiles/profile-name`
+ **Izin IAM — Prinsip IAM yang mendorong gambar harus memiliki izin** IAM yang diperlukan untuk mengakses profil penandatanganan Penandatangan yang relevan dan repositori ECR yang relevan. Anda perlu mengubah kebijakan berbasis identitas untuk prinsipal IAM untuk menyertakan izin untuk operasi repositori ECR dan operasi penandatanganan Penandatangan. Contoh kebijakan berikut menunjukkan izin yang diperlukan:

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
   {
       "Sid":"UploadSignaturePermissions",
       "Effect":"Allow",
       "Action":[
           "ecr:CompleteLayerUpload",
           "ecr:UploadLayerPart",
           "ecr:InitiateLayerUpload",
           "ecr:BatchCheckLayerAvailability",
           "ecr:PutImage"
       ],
       "Resource":"arn:aws:ecr:region:account-id:repository/repository-name"
   },
   {
       "Sid": "SignPermissions",
       "Effect": "Allow",
       "Action": [
           "signer:SignPayload"
       ],
       "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name"
   }
   ]
}
```

Dengan penandatanganan terkelola Amazon ECR, Anda dapat membuat beberapa aturan penandatanganan (hingga 10 per registri) untuk membuat batas keamanan yang lebih kuat. Misalnya, Anda dapat menjalankan beberapa pipeline build dan ingin membatasi repositori mana yang dapat ditandatangani oleh setiap pipeline. Dalam setiap aturan, Anda mengonfigurasi profil penandatanganan dan menentukan filter nama repositori. Saat gambar baru didorong, Amazon ECR cocok dengan aturan penandatanganan dan profil penandatanganan mana yang dapat menandatangani gambar. Jika ada beberapa kecocokan, Amazon ECR menghasilkan beberapa tanda tangan.

**catatan**  
Jika Anda memverifikasi tanda tangan secara manual, Anda masih perlu menginstal CLI Notasi.

**catatan**  
Penandatanganan terkelola Amazon ECR tersedia di semua AWS Wilayah tempat penandatanganan gambar kontainer dengan AWS Penandatangan tersedia.

## Memulai
<a name="managed-signing-getting-started"></a>

Ikuti langkah-langkah ini untuk mengonfigurasi penandatanganan terkelola. Anda memberikan Amazon ECR referensi ke profil penandatanganan Penandatangan dan, secara opsional, filter yang membatasi repositori mana yang harus ditandatangani gambarnya.

------
#### [ Konsol Manajemen AWS ]

Gunakan langkah-langkah berikut untuk mengonfigurasi penandatanganan terkelola menggunakan Konsol Manajemen AWS.

1. Buka [konsol Amazon ECR](https://console.aws.amazon.com/ecr/private-registry/repositories). Di panel navigasi kiri, pilih **Registri pribadi**, **Fitur & pengaturan**, **Penandatanganan terkelola**.

1. Pada halaman **Aturan penandatanganan**, pilih **Buat aturan**.

1. Pada halaman **Profil penandatanganan**, di bawah **Pilih profil AWS penandatangan**, pilih **Buat profil AWS penandatangan baru**, masukkan **nama Profil**, dan, secara opsional, ubah periode validitas **tanda tangan**. Kemudian pilih **Berikutnya**.

1. Pada halaman **Filter**, di bawah **Pilih repositori**, masukkan filter nama **Repositori**. Kemudian pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, verifikasi **profil AWS Penandatangan** dan **filter nama Repositori yang telah Anda masukkan**. Jika semuanya terlihat benar, pilih **Simpan**.

------
#### [ AWS CLI ]

Gunakan AWS CLI perintah berikut untuk mengonfigurasi penandatanganan terkelola.
+ **Buat aturan penandatanganan**

  Buat konfigurasi penandatanganan dengan ARN profil penandatanganan Anda. Buat file JSON dengan konten berikut:

  ```
  {
      "rules": [ 
          { 
              "signingProfileArn": "arn:aws:signer:region:account-id:/signing-profiles/profile-name",
              "repositoryFilters": [ 
                  { 
                      "filter": "test*",
                      "filterType": "WILDCARD_MATCH"
                  }
              ]
          }
      ]
  }
  ```

  Kemudian jalankan perintah berikut:

  ```
  aws ecr --region region \
      put-signing-configuration \
      --signing-configuration file://signing-config.json
  ```

  Anda akan melihat respons API yang berisi konfigurasi penandatanganan.
+ **Lihat konfigurasi penandatanganan Anda**

  Ambil konfigurasi penandatanganan Anda:

  ```
  aws ecr --region region \
      get-signing-configuration
  ```

  Anda akan melihat respons API yang berisi konfigurasi penandatanganan.
+ **Periksa status penandatanganan gambar**

  Dorong gambar ke repositori Anda. Contoh:

  ```
  docker pull ubuntu
  
  IMAGE_NAME="account-id.dkr.ecr.region.amazonaws.com/repository-name"
  IMAGE_TAG="${IMAGE_NAME}:test-1"
  
  docker tag ubuntu $IMAGE_TAG
  docker push $IMAGE_TAG
  ```

  Setelah mendorong, gunakan tag gambar Anda untuk memeriksa status penandatanganan:

  ```
  aws ecr --region region \
      describe-image-signing-status \
      --repository-name repository-name \
      --image-id imageTag=test-1
  ```

  Jika nama repositori cocok dengan filter repositori yang ditentukan dalam konfigurasi penandatanganan, Anda akan melihat status penandatanganan dalam respons API. Jika status berhasil, Anda akan melihat tanda tangan didorong ke repositori Anda.
+ **Hapus konfigurasi penandatanganan**

  Hapus konfigurasi penandatanganan Anda:

  ```
  aws ecr --region region \
      delete-signing-configuration
  ```

  Anda akan melihat respons API yang berisi konfigurasi penandatanganan yang dihapus.

------

## Pertimbangan-pertimbangan
<a name="managed-signing-considerations"></a>

Keterbatasan dan kemampuan berikut berlaku untuk penandatanganan terkelola:
+ **Penandatanganan lintas wilayah tidak didukung** — Profil penandatanganan harus berada di wilayah yang sama dengan registri Amazon ECR Anda. Anda tidak dapat menggunakan profil penandatanganan dari satu wilayah untuk menandatangani gambar di registri yang terletak di wilayah lain.
+ **Penandatanganan lintas akun didukung** — Profil penandatanganan dapat berada di akun yang berbeda dari registri ECR Amazon Anda. Ini memungkinkan organisasi untuk mengelola profil penandatanganan secara terpusat sambil memungkinkan pengembang di akun lain untuk menggunakannya. Untuk informasi selengkapnya, lihat [Menyiapkan penandatanganan lintas akun untuk Penandatangan](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profile-cross-account.html) di Panduan *AWS Signer Pengembang*.
+ **Tanda tangan tidak dapat ditandatangani** — Anda tidak dapat menandatangani tanda tangan sendiri. Hanya gambar kontainer yang dapat ditandatangani.