

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

# Kebijakan repositori pribadi di Amazon ECR
<a name="repository-policies"></a>

Amazon ECR menggunakan izin berbasis sumber daya untuk mengontrol akses ke repositori. Izin berbasis sumber daya memungkinkan Anda menentukan pengguna atau peran mana yang memiliki akses ke repositori dan tindakan apa yang dapat mereka lakukan di repositori. Secara default, hanya AWS akun yang membuat repositori yang memiliki akses ke repositori. Anda dapat menerapkan kebijakan repositori yang memungkinkan akses tambahan ke repositori Anda.

**Topics**
+ [Kebijakan repositori vs kebijakan IAM](#repository-policy-vs-iam-policy)
+ [Contoh kebijakan repositori pribadi di Amazon ECR](repository-policy-examples.md)
+ [Menyetel pernyataan kebijakan repositori pribadi di Amazon ECR](set-repository-policy.md)

## Kebijakan repositori vs kebijakan IAM
<a name="repository-policy-vs-iam-policy"></a>

Kebijakan repositori Amazon ECR adalah bagian dari kebijakan IAM yang memiliki lingkup untuk, dan secara khusus digunakan untuk, mengendalikan akses ke repositori Amazon ECR individu. Kebijakan IAM umumnya digunakan untuk menerapkan izin untuk seluruh layanan Amazon ECR tetapi juga dapat digunakan untuk mengontrol akses ke sumber daya tertentu.

Kebijakan repositori Amazon ECR dan kebijakan IAM digunakan saat menentukan tindakan yang mungkin dilakukan pengguna atau peran tertentu pada repositori. Jika pengguna atau peran diperbolehkan untuk melakukan tindakan melalui kebijakan repositori tetapi tidak diberi izin melalui kebijakan IAM (atau sebaliknya) maka tindakan akan ditolak. Agar tindakan diizinkan, pengguna atau peran hanya perlu diberi izin untuk tindakan baik melalui kebijakan repositori atau kebijakan IAM, tetapi tidak keduanya.

**penting**  
Amazon ECR mengharuskan pengguna memiliki izin untuk melakukan panggilan ke API `ecr:GetAuthorizationToken` melalui kebijakan IAM sebelum mereka dapat mengautentikasi ke registri dan mendorong atau menarik citra dari repositori Amazon ECR. Amazon ECR menyediakan beberapa kebijakan IAM terkelola untuk mengontrol akses pengguna pada berbagai tingkatan. Untuk informasi selengkapnya, lihat [Contoh kebijakan berbasis identitas Amazon Elastic Container Registry](security_iam_id-based-policy-examples.md).

Anda dapat menggunakan salah satu jenis kebijakan ini untuk mengontrol akses ke repositori Anda, seperti yang ditampilkan dalam contoh berikut.

Contoh ini menunjukkan kebijakan repositori Amazon ECR, yang memungkinkan pengguna tertentu untuk mendeskripsikan repositori dan gambar dalam repositori.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ECRRepositoryPolicy",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::111122223333:user/username"},
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Contoh ini menunjukkan kebijakan IAM yang mencapai tujuan yang sama seperti di atas, dengan lingkup kebijakan pada repositori (ditentukan oleh ARN penuh repositori) menggunakan parameter sumber daya. Untuk informasi lebih lanjut tentang format Amazon Resource Name (ARN), lihat [Sumber daya](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeRepoImage",
            "Effect": "Allow",
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": ["arn:aws:ecr:us-east-1:111122223333:repository/repository-name"]
        }
    ]
}
```

------

# Contoh kebijakan repositori pribadi di Amazon ECR
<a name="repository-policy-examples"></a>

**penting**  
Contoh kebijakan repositori di halaman ini dimaksudkan untuk diterapkan ke repositori pribadi Amazon ECR. Mereka tidak akan berfungsi dengan baik jika digunakan dengan prinsipal IAM secara langsung kecuali dimodifikasi untuk menentukan repositori Amazon ECR sebagai sumber daya. Untuk informasi selengkapnya tentang pengaturan kebijakan repositori, lihat. [Menyetel pernyataan kebijakan repositori pribadi di Amazon ECR](set-repository-policy.md)

Kebijakan repositori Amazon ECR adalah bagian dari kebijakan IAM yang memiliki lingkup untuk, dan secara khusus digunakan untuk, mengendalikan akses ke repositori Amazon ECR individu. Kebijakan IAM umumnya digunakan untuk menerapkan izin untuk seluruh layanan Amazon ECR tetapi juga dapat digunakan untuk mengontrol akses ke sumber daya tertentu. Untuk informasi selengkapnya, lihat [Kebijakan repositori vs kebijakan IAM](repository-policies.md#repository-policy-vs-iam-policy).

Contoh kebijakan repositori berikut menunjukkan pernyataan izin yang dapat Anda gunakan untuk mengontrol akses ke repositori pribadi Amazon ECR Anda.

**penting**  
Amazon ECR mengharuskan pengguna memiliki izin untuk melakukan panggilan ke API `ecr:GetAuthorizationToken` melalui kebijakan IAM sebelum mereka dapat melakukan autentikasi ke registrasi dan mendorong atau menarik citra dari repositori Amazon ECR. Amazon ECR menyediakan beberapa kebijakan IAM terkelola untuk mengontrol akses pengguna pada berbagai tingkatan. Untuk informasi selengkapnya, lihat [Contoh kebijakan berbasis identitas Amazon Elastic Container Registry](security_iam_id-based-policy-examples.md).

## Contoh: Izinkan satu atau lebih pengguna
<a name="IAM_within_account"></a>

Kebijakan repositori berikut memungkinkan satu atau lebih pengguna untuk mendorong dan menarik gambar ke dan dari repositori.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPushPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/push-pull-user-1",
                    "arn:aws:iam::111122223333:user/push-pull-user-2"
                ]
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability",
                "ecr:CompleteLayerUpload",
                "ecr:GetDownloadUrlForLayer",
                "ecr:InitiateLayerUpload",
                "ecr:PutImage",
                "ecr:UploadLayerPart"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Contoh: Izinkan akun lain
<a name="IAM_allow_other_accounts"></a>

Kebijakan repositori berikut memungkinkan akun tertentu untuk mendorong citra.

**penting**  
Akun yang Anda berikan izin harus memiliki Wilayah yang Anda beri kebijakan repositori yang diaktifkan, jika tidak, kesalahan akan terjadi.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCrossAccountPush",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:CompleteLayerUpload",
                "ecr:InitiateLayerUpload",
                "ecr:PutImage",
                "ecr:UploadLayerPart"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Kebijakan repositori berikut memungkinkan beberapa pengguna untuk menarik gambar (*pull-user-1*dan*pull-user-2*) sambil memberikan akses penuh ke yang lain (*admin-user*).

**catatan**  
Untuk kebijakan repositori yang lebih rumit yang saat ini tidak didukung di Konsol Manajemen AWS, Anda dapat menerapkan kebijakan dengan perintah. [https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) AWS CLI 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/pull-user-1",
                    "arn:aws:iam::111122223333:user/pull-user-2"
                ]
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowAll",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/admin-user"
            },
            "Action": [
                "ecr:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Contoh: Tolak semua
<a name="IAM_deny_all"></a>

Kebijakan repositori berikut menolak semua pengguna di semua akun untuk menarik citra.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyPull",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Contoh: Membatasi akses ke alamat IP tertentu
<a name="IAM_restrict_ip"></a>

Contoh berikut menolak izin kepada pengguna mana pun untuk melakukan operasi ECR Amazon apa pun saat diterapkan ke repositori dari rentang alamat tertentu.

Kondisi dalam pernyataan ini mengidentifikasi `54.240.143.*` kisaran alamat IP Internet Protocol versi 4 (IPv4) yang diizinkan.

`Condition`Blok menggunakan `NotIpAddress` kondisi dan kunci `aws:SourceIp` kondisi, yang merupakan kunci kondisi AWS-wide. Untuk informasi lebih lanjut tentang kunci syarat ini, lihat [AWS Kunci Konteks Syarat Global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html). `aws:sourceIp` IPv4 Nilai-nilai menggunakan notasi CIDR standar. Untuk informasi lebih lanjut, lihat [Operator Syarat Alamat IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_IPAddress) dalam *Panduan Pengguna IAM*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "ECRPolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "ecr:*",
            "Resource": "*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "54.240.143.0/24"
                }
            }
        }
    ]
}
```

------

## Contoh: Izinkan AWS layanan
<a name="IAM_service_linked"></a>

Kebijakan repositori berikut memungkinkan AWS CodeBuild akses ke tindakan Amazon ECR API yang diperlukan untuk integrasi dengan layanan tersebut. Saat menggunakan contoh berikut, Anda harus menggunakan kunci `aws:SourceArn` dan `aws:SourceAccount` kondisi untuk cakupan sumber daya mana yang dapat mengasumsikan izin ini. Untuk informasi selengkapnya, lihat [contoh Amazon ECR CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html) di *Panduan AWS CodeBuild Pengguna*.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CodeBuildAccess",
         "Effect":"Allow",
         "Principal":{
            "Service":"codebuild.amazonaws.com"
         },
         "Action":[
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer"
         ],
         "Resource": "*",
         "Condition":{
            "ArnLike":{
               "aws:SourceArn":"arn:aws:codebuild:us-east-1:123456789012:project/project-name"
            },
            "StringEquals":{
               "aws:SourceAccount":"123456789012"
            }
         }
      }
   ]
}
```

------

# Menyetel pernyataan kebijakan repositori pribadi di Amazon ECR
<a name="set-repository-policy"></a>

Anda dapat menambahkan pernyataan kebijakan akses ke repositori Konsol Manajemen AWS dengan mengikuti langkah-langkah di bawah ini. Anda dapat menambahkan beberapa pernyataan kebijakan per repositori. Untuk contoh kebijakan, lihat [Contoh kebijakan repositori pribadi di Amazon ECR](repository-policy-examples.md).

**penting**  
Amazon ECR mengharuskan pengguna memiliki izin untuk melakukan panggilan ke API `ecr:GetAuthorizationToken` melalui kebijakan IAM sebelum mereka dapat mengautentikasi ke registri dan mendorong atau menarik citra dari repositori Amazon ECR. Amazon ECR menyediakan beberapa kebijakan IAM terkelola untuk mengontrol akses pengguna pada berbagai tingkatan. Untuk informasi selengkapnya, lihat [Contoh kebijakan berbasis identitas Amazon Elastic Container Registry](security_iam_id-based-policy-examples.md).

**Untuk menetapkan pernyataan kebijakan repositori**

1. Buka konsol Amazon ECR di [https://console.aws.amazon.com/ecr/repositori](https://console.aws.amazon.com/ecr/repositories).

1. Dari bilah navigasi, pilih Wilayah yang berisi repositori yang akan ditetapkan pernyataan kebijakan.

1. Di panel navigasi, pilih **Repositori**.

1. Pada **Repositori**, pilih repositori yang akan ditetapkan pernyataan kebijakan untuk melihat isi repositori.

1. Dari tampilan daftar citra repositori, di panel navigasi, pilih **Izin**, **Edit**.
**catatan**  
Jika Anda tidak melihat opsi **Izin** di panel navigasi, pastikan bahwa Anda berada di tampilan daftar citra repositori.

1. Pada halaman **Edit izin**, pilih **Tambah pernyataan**.

1. Untuk **Nama pernyataan**, masukkan nama untuk pernyataan tersebut.

1. Untuk **Efek**, pilih apakah pernyataan kebijakan tersebut akan menghasilkan izin atau penolakan eksplisit.

1. Untuk **Utama**, pilih ruang lingkup untuk penerapan pernyataan kebijakan. Untuk informasi lebih lanjut, lihat [Elemen Kebijakan JSON AWS : Utama](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam *Panduan Pengguna IAM*.
   + Anda dapat menerapkan pernyataan ke semua AWS pengguna yang diautentikasi dengan memilih kotak centang **Semua orang (\$1)**.
   + Untuk **Prinsipal layanan**, tentukan nama prinsipal layanan (misalnya, `ecs.amazonaws.com`) untuk menerapkan pernyataan ke layanan tertentu.
   + Untuk **AWS Akun IDs**, tentukan nomor AWS akun (misalnya,`111122223333`) untuk menerapkan pernyataan ke semua pengguna di bawah AWS akun tertentu. Beberapa akun dapat ditentukan dengan menggunakan daftar yang dipisahkan koma.
**penting**  
Akun yang Anda berikan izin harus memiliki Wilayah yang Anda beri kebijakan repositori yang diaktifkan, jika tidak, kesalahan akan terjadi.
   + Untuk **Entitas IAM**, pilih peran atau pengguna di bawah AWS akun Anda untuk menerapkan pernyataan tersebut.
**catatan**  
Untuk kebijakan repositori yang lebih rumit yang saat ini tidak didukung di Konsol Manajemen AWS, Anda dapat menerapkan kebijakan dengan perintah. [https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) AWS CLI 

1. Untuk **Tindakan**, pilih ruang lingkup operasi API Amazon ECR yang akan diterapkan pernyataan kebijakan dari daftar operasi API individu.

1. Setelah selesai, pilih **Simpan** untuk menetapkan kebijakan.

1. Ulangi langkah sebelumnya untuk setiap kebijakan repositori yang ditambahkan.