Contoh kebijakan repositori 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.

Contoh kebijakan repositori pribadi di Amazon ECR

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

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.

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 tingkat; untuk informasi lebih lanjut, lihat Contoh kebijakan berbasis identitas Amazon Elastic Container Registry.

Contoh: Izinkan satu atau lebih pengguna

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

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

Contoh: Izinkan akun lain

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.

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

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 AWS Management Console, Anda dapat menerapkan kebijakan dengan perintah. set-repository-policy AWS CLI

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

Contoh: Tolak semua

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

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

Contoh: Membatasi akses ke alamat IP tertentu

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.

ConditionBlok 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. Nilai IPv4 aws:sourceIp menggunakan notasi CIDR standar. Untuk informasi lebih lanjut, lihat Operator Syarat Alamat IP dalam Panduan Pengguna IAM.

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

Contoh: Izinkan AWS layanan

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 di Panduan AWS CodeBuild Pengguna.

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