Halaman ini menjelaskan kontrol akses dengan Identity and Access Management (IAM) di Artifact Registry.
Izin default untuk Artifact Registry meminimalkan upaya penyiapan saat menerapkan pipeline CI/CD. Anda juga dapat mengintegrasikan Artifact Registry dengan alat CI/CD pihak ketiga dan mengonfigurasi izin serta autentikasi yang diperlukan untuk mengakses repositori.
Sebelum memulai
- Aktifkan Artifact Registry, termasuk mengaktifkan API dan menginstal Google Cloud CLI.
- Jika Anda ingin menerapkan izin khusus repositori, maka buat repositori Artifact Registry untuk paket Anda.
Ringkasan
Izin dan peran IAM menentukan kemampuan Anda untuk membuat, melihat, mengedit, atau menghapus data di repositori Artifact Registry.
Peran adalah kumpulan izin. Anda tidak dapat memberikan izin kepada akun utama secara langsung, tetapi Anda dapat memberikan peran kepadanya. Saat Anda memberikan peran kepada akun utama, Anda memberikan semua izin yang dimiliki oleh peran tersebut. Anda dapat memberikan beberapa peran ke akun utama yang sama.
Izin defaultTrusted Cloud
Secara default, izin berikut berlaku untuk Trusted Cloud layanan CI/CD dalam project yang sama dengan Artifact Registry:
- Compute Engine dan versi Google Kubernetes Engine yang didukung menggunakan akun layanan default Compute Engine, yang memiliki akses hanya baca ke penyimpanan.
Jika semua layanan Anda berada di project Trusted Cloud by S3NS yang sama dan izin default memenuhi kebutuhan Anda, Anda tidak perlu mengonfigurasi izin.
Anda harus mengonfigurasi izin Artifact Registry untuk layanan ini jika:
- Anda ingin menggunakan layanan ini untuk mengakses Artifact Registry di project lain. Di project dengan Artifact Registry, berikan kumpulan identitas beban kerja atau akun layanan untuk setiap layanan dengan peran yang diperlukan.
- Anda menggunakan versi GKE yang tidak memiliki dukungan bawaan untuk menarik image dari Artifact Registry. Lihat bagian GKE untuk mengetahui petunjuk konfigurasi.
- Anda ingin akun layanan default memiliki akses baca dan tulis ke repositori. Lihat informasi berikut untuk mengetahui detailnya:
- Anda menggunakan akun layanan yang disediakan pengguna untuk lingkungan runtime bukan akun layanan default. Di project dengan Artifact Registry, berikan peran yang diperlukan ke akun layanan Anda.
Integrasi pihak ketiga
Untuk klien pihak ketiga, Anda harus mengonfigurasi izin dan autentikasi.
Secara tradisional, aplikasi yang berjalan di luar Trusted Cloud menggunakan kunci akun layanan untuk mengakses Trusted Cloud resource. Namun, kunci akun layanan adalah kredensial yang andal, dan dapat menimbulkan risiko keamanan jika tidak dikelola dengan benar.
Workload Identity Federation memungkinkan Anda menggunakan Identity and Access Management untuk memberikan peran IAM kepada identitas eksternal, termasuk kemampuan untuk meniru identitas akun layanan. Pendekatan ini menghilangkan beban pemeliharaan dan keamanan yang terkait dengan kunci akun layanan.
Menggunakan Workload Identity Federation:
- Buat kumpulan Workload Identity Federation.
- Buat penyedia Workload Identity Federation.
- Berikan peran Artifact Registry yang sesuai ke workload identity pool untuk mengizinkan akses repositori. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan beban kerja eksternal Anda mengakses resource Trusted Cloud by S3NS .
- Jika Anda perlu mengakses Artifact Registry dalam jangka waktu yang lebih lama, konfigurasi waktu habis masa berlaku token OIDC ke jangka waktu yang lebih lama dalam konfigurasi kredensial Anda.
Konfigurasi klien pihak ketiga Anda untuk melakukan autentikasi dengan Artifact Registry.
Menggunakan akun layanan:
- Buat akun layanan untuk bertindak atas nama aplikasi Anda, atau pilih akun layanan yang ada untuk digunakan dalam otomatisasi CI/CD Anda.
- Berikan peran Artifact Registry yang sesuai ke akun layanan untuk memberikan akses repositori.
Konfigurasi klien pihak ketiga Anda untuk melakukan autentikasi dengan Artifact Registry.
Peran dan izin
Setiap metode Artifact Registry API mengharuskan principal yang membuat permintaan memiliki izin yang diperlukan untuk menggunakan resource. Izin diberikan kepada akun utama dengan menetapkan kebijakan yang memberikan peran yang telah ditentukan sebelumnya kepada akun utama pada resource.
Anda dapat memberikan peran di project Trusted Cloud by S3NS atau repositori Artifact Registry.
Peran Artifact Registry yang telah ditetapkan
IAM menyediakan peran bawaan yang memberikan akses ke resource Trusted Cloud tertentu.
Gunakan peran standar berikut untuk repositori:Peran | Deskripsi |
---|---|
Pembaca Artifact Registry ( roles/artifactregistry.reader ) |
Melihat dan mendapatkan artefak, melihat metadata repositori. |
Penulis Artifact Registry ( roles/artifactregistry.writer ) |
Membaca dan menulis artefak. |
Administrator Repositori Artifact Registry ( roles/artifactregistry.repoAdmin ) |
Membaca, menulis, dan menghapus artefak. |
Administrator Artifact Registry ( roles/artifactregistry.admin ) |
Membuat dan mengelola repositori dan artefak. |
gcloud iam roles describe
untuk melihat daftar izin di setiap peran.
Peran IAM dasar
Peran dasar adalah peran yang sangat permisif yang sudah ada sebelum pengantar IAM. Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi Anda dapat memberikannya dalam lingkungan pengembangan atau pengujian.
Gunakan peran bawaan untuk akses repositori jika memungkinkan agar pengguna dan akun layanan hanya memiliki izin yang diperlukan.
Untuk mengetahui informasi selengkapnya tentang peran dasar, lihat Referensi peran dasar dan bawaan IAM.
Memberikan peran
Berikan peran di level project jika peran yang sama berlaku untuk semua repositori dalam project. Jika beberapa akun memerlukan tingkat akses yang berbeda, berikan peran di tingkat repositori.
Jika memberikan peran menggunakan perintah gcloud
, Anda dapat menentukan satu
binding peran untuk akun utama atau membuat perubahan kebijakan berskala besar dengan
mendapatkan kebijakan izin resource, mengubahnya, lalu menetapkan kebijakan izin yang telah diubah. Untuk mengetahui informasi selengkapnya, lihat
Memberi atau mencabut beberapa peran secara terprogram.
Memberikan peran di seluruh project
Berikan peran di level project jika izin yang sama berlaku untuk semua repositori dalam project.
Untuk menambahkan pengguna atau akun layanan ke project dan memberikan peran Artifact Registry kepada mereka:
Konsol
Buka halaman IAM di konsol Trusted Cloud .
Klik Select a project, pilih project tempat Artifact Registry berjalan, lalu klik Open.
Klik Tambahkan.
Masukkan alamat email. Anda dapat menambahkan individu, akun layanan, atau Google Grup sebagai akun utama.
Pilih peran untuk akun utama. Sesuai dengan prinsip keamanan hak istimewa terendah, pertimbangkan untuk memberikan jumlah hak istimewa paling sedikit yang diperlukan untuk mengakses resource Artifact Registry yang diperlukan. Untuk mengetahui informasi tentang peran dan izin bawaan Artifact Registry, lihat Peran Artifact Registry bawaan.
Klik Simpan.
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk memberikan peran kepada satu akun utama, jalankan perintah berikut:
gcloud projects add-iam-policy-binding PROJECT \ --member=PRINCIPAL \ --role=ROLE
di mana
- PROJECT adalah ID project tempat Artifact Registry berjalan.
PRINCIPAL adalah akun utama yang akan ditambahkan binding-nya. Gunakan formulir
user|group|serviceAccount:email
ataudomain:domain
.Contoh:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
, ataudomain:example.domain.com
.ROLE adalah peran yang ingin Anda berikan.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi add-iam-policy-binding.
Untuk memberikan peran menggunakan file kebijakan, lihat Memberikan atau mencabut beberapa peran secara terprogram
Memberikan peran khusus repositori
Berikan peran tingkat repositori jika Anda ingin pengguna atau akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori dalam project Anda.
Konsol
Untuk memberikan akses ke repositori tertentu:
Buka halaman Repositories di konsol Trusted Cloud .
Pilih repositori yang sesuai.
Jika panel info tidak ditampilkan, klik Tampilkan Panel Info di menu bar.
Di tab Izin, klik Tambahkan Akun Utama.
Masukkan alamat email. Anda dapat menambahkan individu, akun layanan, atau Google Grup sebagai akun utama.
Pilih peran untuk akun utama. Sesuai dengan prinsip keamanan hak istimewa terendah, pertimbangkan untuk memberikan jumlah hak istimewa paling sedikit yang diperlukan untuk mengakses resource Artifact Registry yang diperlukan. Untuk mengetahui informasi tentang peran dan izin bawaan Artifact Registry, lihat Peran Artifact Registry bawaan.
Klik Simpan.
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Anda dapat menetapkan set IAM dari binding kebijakan individual atau menggunakan file kebijakan.
Untuk memberikan peran kepada satu akun utama, jalankan perintah berikut:
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --member=PRINCIPAL \ --role=ROLE
di mana
- REPOSITORY adalah ID repositori.
PRINCIPAL adalah akun utama yang akan ditambahkan binding-nya. Gunakan formulir
user|group|serviceAccount:email
ataudomain:domain
.Contoh:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
, ataudomain:example.domain.com
.ROLE adalah peran yang ingin Anda berikan.
LOCATION adalah lokasi repositori regional.
Misalnya, untuk menambahkan binding kebijakan IAM untuk peran
roles/artifactregistry.writer
bagi penggunawrite@gmail.com
dengan repositorimy-repo
di lokasi--u-france-east1
, jalankan:gcloud artifacts repositories add-iam-policy-binding my-repo \ --location=u-france-east1 --member=user:write@gmail.com --role=roles/artifactregistry.writer
Untuk memberikan peran menggunakan file kebijakan, gunakan prosedur yang dijelaskan dalam Memberikan atau mencabut beberapa peran secara terprogram dengan perintah gcloud artifacts repositories get-iam-policy dan gcloud artifacts repositories set-iam-policy.
Terraform
Gunakan resource google_artifact_registry_repository_iam untuk mengonfigurasi kebijakan IAM. Contoh berikut menentukan akun layanan dengan nama resource repo-account
dan memberikan akses baca ke repositori dengan nama resource my-repo
.
Jika Anda baru menggunakan Terraform untuk Trusted Cloud by S3NS, lihat halaman Mulai - Trusted Cloud by S3NS di situs HashiCorp.
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = "DESCRIPTION"
format = "FORMAT"
}
resource "google_service_account" "repo-account" {
provider = google-beta
account_id = "ACCOUNT-ID"
display_name = "Repository Service Account"
}
resource "google_artifact_registry_repository_iam_member" "repo-iam" {
provider = google-beta
location = google_artifact_registry_repository.my-repo.location
repository = google_artifact_registry_repository.my-repo.name
role = "roles/artifactregistry.reader"
member = "serviceAccount:${google_service_account.repo-account.email}"
}
ACCOUNT-ID adalah ID akun layanan. Ini adalah
bagian kolom email akun layanan sebelum simbol @
.
Untuk contoh tambahan, lihat dokumentasi untuk resource google_artifact_registry_repository_iam.
Mengonfigurasi akses publik ke repositori
Jika Anda memiliki artefak yang ingin Anda sediakan untuk siapa saja di internet tanpa autentikasi, simpan artefak tersebut di repositori yang Anda buat publik.
Untuk mengonfigurasi repositori agar dapat diakses baca saja oleh publik, berikan peran Artifact Registry Reader kepada pokok allUsers
. Sebaiknya Anda juga membatasi kuota permintaan pengguna agar satu
pengguna tidak dapat menggunakan kuota keseluruhan project Anda.
Konsol
Buka halaman Repositories di konsol Trusted Cloud .
Pilih repositori yang sesuai.
Jika panel info tidak ditampilkan, klik Tampilkan Panel Info di menu bar.
Di tab Izin, klik Tambahkan Akun Utama.
Di kolom New principals, masukkan
allUsers
.Pilih peran Artifact Registry Reader.
Tetapkan batas per pengguna pada permintaan Artifact Registry API untuk mencegah penyalahgunaan oleh pengguna yang tidak diautentikasi. Untuk mengetahui petunjuknya, lihat Membatasi penggunaan.
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Jalankan perintah berikut:
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION --member=allUsers --role=ROLE
di mana
REPOSITORY adalah ID repositori.
ROLE adalah peran yang ingin Anda berikan. + LOCATION adalah lokasi regional repositori.
Misalnya, untuk mengonfigurasi repositori
my-repo
di lokasi--u-france-east1
sebagai publik, jalankan:gcloud artifacts repositories add-iam-policy-binding my-repo \ --location=u-france-east1 --member=allUsers --role=roles/artifactregistry.reader
Tetapkan batas per pengguna pada permintaan Artifact Registry API untuk mencegah penyalahgunaan oleh pengguna yang tidak diautentikasi. Untuk mengetahui petunjuknya, lihat Membatasi penggunaan.
Mencabut peran
Untuk mencabut akses ke repositori, hapus akun utama dari daftar akun utama yang diberi otorisasi.
Untuk menghapus akses publik dari repositori, hapus akun utama allUsers
.
Konsol
Untuk mencabut izin:
Buka halaman Repositories di konsol Trusted Cloud .
Pilih repositori yang sesuai.
Jika panel info tidak ditampilkan, klik Tampilkan Panel Info di menu bar.
Di tab Izin, luaskan akun utama yang sesuai. Jika Anda mengubah repositori publik menjadi pribadi, perluas prinsipal
allUsers
.Klik Hapus akun utama untuk mencabut akses.
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk mencabut peran di tingkat project, jalankan perintah berikut:
gcloud projects remove-iam-policy-binding PROJECT \ --member=PRINCIPAL \ --role=ROLE
- PROJECT adalah project ID.
PRINCIPAL adalah akun utama yang akan dihapus bindingnya. Gunakan formulir
user|group|serviceAccount:email
ataudomain:domain
.Contoh:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
, ataudomain:example.domain.com
.ROLE adalah peran yang ingin Anda cabut.
Untuk mencabut peran untuk repositori, jalankan perintah berikut:
gcloud artifacts repositories remove-iam-policy-binding REPOSITORY --location=LOCATION \ --member=PRINCIPAL \ --role=ROLE
di mana
- REPOSITORY adalah ID repositori.
PRINCIPAL adalah akun utama yang akan dihapus bindingnya. Gunakan formulir
user|group|serviceAccount:email
ataudomain:domain
.Contoh:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
, ataudomain:example.domain.com
.Untuk mencabut akses publik ke repositori, tentukan pokok
allUsers
.ROLE adalah peran yang ingin Anda cabut.
Misalnya, untuk menghapus binding kebijakan untuk peran
roles/artifactregistry.writer
bagi penggunawrite@gmail.com
dengan repositorimy-repo
di lokasi--u-france-east1
, jalankan:gcloud artifacts repositories remove-iam-policy-binding my-repo \ --location=u-france-east1 \ --member=user:write@gmail.com \ --role=roles/artifactregistry.writer
Untuk mencabut akses publik ke
my-repo
di lokasi--u-france-east1
, jalankan:gcloud artifacts repositories remove-iam-policy-binding my-repo \ --location=u-france-east1 \ --member=allUsers \ --role=roles/artifactregistry.reader
Memberikan akses bersyarat dengan tag
Administrator project dapat membuat tag untuk resource di seluruh Trusted Cloud dan mengelolanya di Resource Manager. Saat Anda melampirkan tag ke repositori Artifact Registry, administrator dapat menggunakan tag tersebut dengan kondisi IAM untuk memberikan akses bersyarat ke repositori.
Anda tidak dapat melampirkan tag ke artefak individual.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi berikut:
- Administrator yang menyiapkan tag dan kontrol akses
- Developer melampirkan tag ke repositori
Mengintegrasikan dengan layanan Trusted Cloud
Untuk sebagian besar akun layanan, mengonfigurasi akses ke registry hanya memerlukan pemberian peran IAM yang sesuai. Trusted Cloud
Akun layanan default untuk layanan Trusted Cloud by S3NS
LayananTrusted Cloud seperti Google Kubernetes Engine menggunakan akun layanan default atau agen layanan untuk berinteraksi dengan resource dalam project yang sama.
Anda harus mengonfigurasi atau mengubah izin sendiri jika:
- Trusted Cloud by S3NS Layanan berada di project yang berbeda dengan Artifact Registry.
- Izin default tidak memenuhi kebutuhan Anda.
- Anda menggunakan akun layanan yang disediakan pengguna untuk berinteraksi dengan Artifact Registry, bukan akun layanan default.
- Konfigurasi kebijakan organisasi Anda mencegah pemberian peran otomatis ke akun layanan default.
Akun layanan berikut biasanya mengakses Artifact Registry. Alamat email untuk akun layanan mencakup Trusted Cloud project ID atau nomor project project tempat layanan berjalan.
Layanan | Akun layanan | Alamat email |
---|---|---|
Compute Engine | Akun layanan default Compute Engine | PROJECT-NUMBER-compute@developer.s3ns-system.iam.gserviceaccount.com |
GKE |
Akun layanan default Compute Engine Akun layanan default untuk node. |
PROJECT-NUMBER-compute@developer.s3ns-system.iam.gserviceaccount.com |
Bergantung pada konfigurasi kebijakan organisasi Anda, akun layanan default mungkin
secara otomatis diberi peran Editor di project
Anda. Sebaiknya Anda menonaktifkan pemberian peran otomatis dengan
menerapkan batasan kebijakan organisasi iam.automaticIamGrantsForDefaultServiceAccounts
. Jika Anda membuat organisasi setelah 3 Mei 2024, batasan ini diterapkan secara default.
Jika Anda menonaktifkan pemberian peran otomatis, Anda harus menentukan peran mana yang akan diberikan ke akun layanan default, lalu memberikan peran tersebut secara manual.
Jika akun layanan default sudah memiliki peran Editor, sebaiknya ganti peran Editor dengan peran yang kurang permisif.
Memberikan akses ke instance Compute Engine
Instance VM yang mengakses repositori harus memiliki izin Artifact Registry dan cakupan akses penyimpanan yang dikonfigurasi.
Meskipun tingkat akses akun layanan ditentukan oleh peran IAM yang diberikan ke akun layanan, cakupan akses pada instance VM menentukan cakupan OAuth default untuk permintaan yang dibuat melalui gcloud CLI dan library klien pada instance. Akibatnya, cakupan akses berpotensi membatasi akses lebih lanjut ke metode API saat mengautentikasi dengan Kredensial Default Aplikasi.
Compute Engine menggunakan default berikut:
- Akun layanan default Compute Engine adalah identitas untuk instance VM. Alamat email akun layanan memiliki akhiran @developer.s3ns-system.iam.gserviceaccount.com.
- Akun layanan default memiliki peran Editor dasar IAM, jika Anda belum menonaktifkan perilaku ini.
- Instance yang Anda buat dengan akun layanan default memiliki
cakupan akses default Compute Engine, termasuk
akses hanya baca ke penyimpanan. Meskipun peran Editor umumnya memberikan akses tulis, cakupan akses penyimpanan
read-only
membatasi akun layanan instance untuk mendownload artefak hanya dari repositori mana pun dalam project yang sama.
Anda harus mengonfigurasi cakupan akses akun layanan jika:
- Akun layanan VM perlu mengakses repositori di project lain.
- Akun layanan VM perlu melakukan tindakan selain membaca artefak dari repositori. Hal ini biasanya menerapkan alat pihak ketiga pada VM yang perlu
mengirim image atau menjalankan perintah
gcloud
Artifact Registry.
Untuk mengonfigurasi peran dan menetapkan cakupan akses:
Di project dengan instance VM Anda, dapatkan nama akun layanan default Compute Engine. Alamat email akun layanan memiliki akhiran @developer.s3ns-system.iam.gserviceaccount.com.
Di project dengan repositori, berikan izin agar akun layanan dapat mengakses repositori.
Tetapkan cakupan akses dengan opsi --scopes.
Hentikan instance VM. Lihat Menghentikan instance.
Tetapkan cakupan akses dengan perintah berikut:
gcloud compute instances set-service-account INSTANCE --scopes=SCOPE
Ganti SCOPE dengan nilai yang sesuai.
Untuk Docker, opsi berikut didukung:
storage-ro
- Memberikan izin baca hanya untuk menarik image.storage-rw
- Memberikan izin baca dan tulis untuk mengirim atau menarik image.cloud-platform
- Melihat dan mengelola data, termasuk metadata, di seluruh layanan Trusted Cloud .
Untuk format lainnya, Anda harus menggunakan cakupan
cloud-platform
.
Mulai ulang instance VM. Lihat Memulai instance yang dihentikan.
Memberikan akses ke cluster Google Kubernetes Engine
Cluster dan node pool GKE dapat menarik container tanpa konfigurasi tambahan jika semua persyaratan berikut terpenuhi:
- GKE berada dalam project yang sama dengan Artifact Registry
- Node menggunakan akun layanan default, yaitu akun layanan default Compute Engine
- Node dibuat dengan akses baca ke penyimpanan oleh:
- Menggunakan cakupan akses default Compute Engine.
- Memberikan cakupan akses
cloud-platform
atau cakupan lain yang mencakup akses baca ke penyimpanan.
- Anda menjalankan GKE versi yang didukung
Jika lingkungan GKE Anda tidak memenuhi persyaratan ini, petunjuk untuk memberikan akses bergantung pada apakah Anda menggunakan akun layanan default Compute Engine atau akun layanan yang disediakan pengguna sebagai identitas untuk node Anda.
- Akun layanan default
Persyaratan konfigurasi berikut berlaku untuk akun layanan default Compute Engine:
Jika GKE berada di project yang berbeda dengan Artifact Registry, berikan izin yang diperlukan ke akun layanan.
Untuk mengirim image, berinteraksi dengan repositori untuk format selain container, atau menjalankan perintah
gcloud
dari cluster, Anda harus menetapkan cakupan akses untuk akun layanan saat membuat cluster atau node pool.Jika Anda tidak menggunakan GKE versi yang didukung, konfigurasi imagePullSecrets.
- Akun layanan yang disediakan pengguna
Jika ingin menggunakan akun layanan yang disediakan pengguna sebagai identitas untuk cluster, Anda harus:
Berikan izin yang diperlukan ke akun layanan dari projectTrusted Cloud tempat Artifact Registry berjalan.
Secara default, membuat cluster atau node pool dengan akun layanan yang disediakan pengguna akan memberikan cakupan akses
cloud-platform
.Jika Anda menggunakan flag
--scopes
dengan perintah gcloud container clusters create atau gcloud container node-pools create, Anda harus menyertakan cakupan akses yang sesuai untuk digunakan dengan Artifact Registry.
Menetapkan cakupan akses
Cakupan akses adalah metode lama untuk menentukan otorisasi bagi VM Compute Engine. Untuk menarik image dari repositori Artifact Registry, node GKE harus memiliki cakupan akses hanya baca penyimpanan atau cakupan akses penyimpanan lain yang mencakup akses baca penyimpanan.
Anda hanya dapat menetapkan cakupan akses saat membuat cluster atau node pool. Anda tidak dapat mengubah cakupan akses pada node yang ada.
- Jika Anda menggunakan akun layanan default Compute Engine, GKE akan membuat node dengan cakupan akses default Compute Engine, yang mencakup akses hanya baca ke penyimpanan.
- Jika Anda menggunakan akun layanan yang disediakan pengguna, GKE akan membuat
node dengan cakupan
cloud-platform
, cakupan yang diperlukan untuk sebagian besar layananTrusted Cloud .
Untuk menentukan cakupan akses saat membuat cluster, jalankan perintah berikut:
gcloud container clusters create NAME --scopes=SCOPES
Untuk menentukan cakupan akses saat membuat node pool, jalankan perintah berikut:
gcloud container node-pools create NAME --scopes=SCOPES
Ganti nilai berikut:
- NAME adalah nama cluster atau node pool.
SCOPES adalah daftar cakupan akses yang dipisahkan koma untuk diberikan.
Untuk mengakses repositori Docker, gunakan salah satu cakupan berikut:
storage-ro
- Memberikan izin hanya baca untuk menarik image.storage-rw
- Memberikan izin baca dan tulis untuk mengirim atau menarik image.cloud-platform
- Melihat dan mengelola data, termasuk metadata, di seluruh layanan Trusted Cloud .Untuk mengakses repositori lain, Anda harus menggunakan cakupan
cloud-platform
.
Untuk mengetahui daftar lengkap cakupan, lihat dokumentasi untuk gcloud container clusters create atau gcloud container node-pools create.
Untuk mengetahui informasi selengkapnya tentang cakupan yang dapat Anda tetapkan saat membuat cluster baru, lihat dokumentasi untuk perintah gcloud container clusters create.
Mengonfigurasi imagePullSecret
Untuk mengonfigurasi imagePullSecret
:
Di project dengan GKE, temukan akun layanan default Compute Engine. Alamat email akun memiliki sufiks @developer.s3ns-system.iam.gserviceaccount.com.
Download kunci akun layanan untuk akun layanan.
Di project dengan repositori, pastikan Anda telah memberikan izin ke repositori.
Di project dengan cluster Anda, buat secret
imagePullSecret
bernamaartifact-registry
dengan kunci akun layanan.kubectl create secret docker-registry artifact-registry \ --docker-server=https://LOCATION-docker.s3nsregistry.fr \ --docker-email=SERVICE-ACCOUNT-EMAIL \ --docker-username=_json_key \ --docker-password="$(cat KEY-FILE)"
Ganti kode berikut:
- LOCATION adalah lokasi repositori regional.
- SERVICE-ACCOUNT-EMAIL adalah alamat email akun layanan Compute Engine.
- KEY-FILE adalah nama file kunci akun layanan Anda. Misalnya, `key.json`.
Buka akun layanan default Anda:
kubectl edit serviceaccount default --namespace default
Setiap namespace di cluster Kubernetes Anda memiliki akun layanan default yang disebut
default
. Akun layanan default ini digunakan untuk menarik image container Anda.Tambahkan rahasia
imagePullSecret
yang baru dibuat ke akun layanan default Anda:imagePullSecrets: - name: artifact-registry
Akun layanan Anda sekarang akan terlihat seperti ini:
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret you created: imagePullSecrets: - name: artifact-registry
Sekarang, setiap pod baru yang dibuat di namespace default
saat ini akan memiliki
secret imagePullSecret
yang ditentukan.
Akun layanan Artifact Registry
Agen Layanan Artifact Registry adalah akun layanan yang dikelola Google yang bertindak atas nama Artifact Registry saat berinteraksi dengan layanan. Trusted Cloud by S3NSUntuk mengetahui informasi selengkapnya tentang akun dan izinnya, lihat Akun layanan Artifact Registry.
Langkah berikutnya
Setelah Anda menyiapkan izin, pelajari lebih lanjut cara bekerja dengan artefak Anda.