Repositori tag

Gunakan tag untuk mengelompokkan repositori dan resource lainnya di Google Cloud untuk pelaporan, audit, dan kontrol akses dalam organisasi Google Cloud Anda.

Untuk mengelompokkan repositori dalam Artifact Registry bagi tujuan otomatisasi dan penagihan, gunakan label. Tag dan label berfungsi secara independen satu sama lain, dan Anda dapat menerapkan keduanya ke repositori yang sama. Untuk mengetahui informasi selengkapnya tentang perbedaan antara tag dan label, lihat Tag dan label.

Apa yang dimaksud dengan tag?

Tag adalah pasangan nilai kunci yang dapat Anda terapkan ke resource untuk kontrol akses yang terperinci.

Administrator project membuat tag untuk resource di seluruh Google Cloud pada tingkat organisasi dan mengelolanya di Resource Manager. Saat melampirkan tag ke repositori Artifact Registry, Anda dapat menggunakan tag dengan kondisi IAM untuk memberikan akses bersyarat ke repositori. Anda tidak dapat melampirkan tag ke artefak individual.

Perhatikan pembatasan ini:

  • Kebijakan organisasi dapat secara kondisional mereferensikan tag yang diwarisi dari project induk dan yang lebih tinggi, tetapi tidak mendukung tag yang Anda lampirkan langsung ke repositori.

  • Log Audit Cloud tidak dibuat untuk melampirkan tag dan melihat binding tag pada repositori.

Untuk mengetahui informasi selengkapnya tentang tag dan kontrol akses bersyarat dengan tag, lihat Tag dan kontrol akses.

Izin yang diperlukan

Izin yang Anda perlukan bergantung pada tindakan yang harus dilakukan.

Untuk mendapatkan izin ini, minta administrator untuk memberikan peran yang disarankan pada level hierarki resource yang sesuai.

Melihat tag

Untuk melihat definisi tag dan tag yang dikaitkan ke resource, Anda memerlukan peran Tag Viewer (roles/resourcemanager.tagViewer), atau peran lain yang menyertakan izin berikut:

Izin yang diperlukan

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • listTagBindings untuk jenis resource yang sesuai. Misalnya, compute.instances.listTagBindings untuk melihat tag yang dikaitkan ke instance Compute Engine.
  • listEffectiveTags
  • untuk jenis resource yang sesuai. Misalnya, compute.instances.listEffectiveTags untuk melihat semua tag yang dikaitkan ke atau diwarisi oleh instance Compute Engine.

Untuk melihat tag di tingkat organisasi, Anda memerlukan peran Organization Viewer (roles/resourcemanager.organizationViewer) di resource organisasi.

Mengelola tag

Untuk membuat, memperbarui, dan menghapus definisi tag, Anda memerlukan peran Tag Administrator (roles/resourcemanager.tagAdmin), atau peran lain yang mencakup izin berikut:

Izin yang diperlukan

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

Untuk mengelola tag di level organisasi, Anda memerlukan peran Organization Viewer (roles/resourcemanager.organizationViewer) di resource organisasi.

Mengelola tag pada resource

Untuk menambahkan dan menghapus tag yang dikaitkan ke resource, Anda memerlukan peran Tag User (roles/resourcemanager.tagUser), atau peran lain dengan izin yang setara, di nilai tag dan resource tempat Anda mengaitkan nilai tag. Peran Tag User mencakup izin berikut:

Izin yang diperlukan

  • Izin diperlukan untuk resource tempat Anda mengaitkan nilai tag
    • Izin createTagBinding khusus resource, seperti compute.instances.createTagBinding untuk instance Compute Engine.
    • Izin deleteTagBinding khusus resource, seperti compute.instances.deleteTagBinding untuk instance Compute Engine.
  • Izin yang diperlukan untuk nilai tag:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • Izin yang memungkinkan Anda melihat project dan definisi tag:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

Melampirkan tag ke repositori

Setelah administrator project membuat tag, Anda dapat melampirkan tag ke repositori. Setiap tag memiliki kunci dan nilai. Anda memberi tag pada repositori dengan mengikat nilai ke repositori.

Untuk melampirkan tag ke repositori:

Konsol

  1. Dapatkan nilai tag untuk dilampirkan dari administrator Anda.

    Anda dapat melampirkan nilai tag dengan salah satu jenis ID berikut:

    • Nama dengan namespace, misalnya 123456789012/env/dev
    • ID permanen, seperti tagValues/567890123456
  2. Buka halaman Repositories di Konsol Google Cloud.

    Buka halaman Repositori

  3. Pilih repositori yang ingin Anda beri tag.

  4. Di bagian Repository Details, klik Show more.

    Tag yang ada untuk repositori, termasuk tag yang diwarisi, akan ditampilkan.

  5. Klik ikon Edit Edit tag.

  6. Di bagian Direct tags, klik Select scope.

  7. Pilih project repositori Anda.

  8. Di kolom key, ketik untuk memfilter daftar tag, lalu pilih kunci tag.

  9. Di kolom Value, ketik untuk memfilter daftar tag, lalu pilih nilai tag.

  10. Klik Simpan.

  11. Klik Confirm.

    Tag akan dikaitkan ke repositori Anda.

gcloud CLI

  1. Dapatkan nilai tag untuk dilampirkan dari administrator Anda.

    Anda dapat melampirkan nilai tag dengan salah satu jenis ID berikut:

    • Nama dengan namespace, misalnya 123456789012/env/dev
    • ID permanen, seperti tagValues/567890123456
  2. Lampirkan nilai tag dengan perintah berikut:

    gcloud alpha resource-manager tags bindings create \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    Ganti nilai berikut:

    • TAG_VALUE adalah ID permanen atau nama dengan namespace dari nilai tag yang akan dilampirkan.

    • REPOSITORY_ID adalah ID lengkap repositori, termasuk nama domain API untuk mengidentifikasi jenis resource (//artifactregistry.googleapis.com/). Misalnya, //artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo

    • LOCATION adalah lokasi repositori.

    Perhatikan contoh berikut:

    • Nilai tag: 815471563813/env/dev
    • Project: my-project
    • Repositori: my-repo
    • Lokasi repositori: us-east1

    Perintah gcloud CLI berikut melampirkan tag ke repositori:

    gcloud alpha resource-manager tags bindings create \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

Mencantumkan tag yang terpasang ke repositori

Anda dapat mencantumkan tag yang terpasang ke resource yang izin aksesnya Anda miliki.

Konsol

  1. Buka halaman Repositories di Konsol Google Cloud.

    Buka halaman Repositori

  2. Pilih repositori yang ingin Anda lihat.

  3. Di bagian Repository Details, klik Show more.

    Daftar Tag menampilkan semua tag repositori, termasuk tag langsung, dan tag yang diwarisi dari posisi yang lebih tinggi dalam hierarki resource.

gcloud CLI

Untuk menampilkan daftar tag yang terpasang ke repositori, jalankan perintah berikut:

gcloud alpha resource-manager tags bindings list \
        --parent=REPOSITORY_ID \
        --location=LOCATION

Perintah tersebut hanya mencantumkan tag yang terkait langsung ke resource yang ditentukan, sehingga tidak menampilkan tag yang diwarisi dari project induk atau yang lebih tinggi. Anda dapat mencantumkan tag yang diwarisi dari project induk dengan menentukan project, bukan repositori dengan flag --parent.

Misalnya, perintah ini mencantumkan tag yang terpasang ke repositori my-repo dalam project my-project dan lokasi us-east1:

gcloud alpha resource-manager tags bindings list \
    --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
    --location=us-east1

Perintah ini mencantumkan tag yang terlampir ke nomor project 7890123456:

gcloud alpha resource-manager tags bindings list \
    --parent=//cloudresourcemanager.googleapis.com/projects/7890123456 \

Melepaskan tag dari repositori

Anda dapat melepaskan tag yang langsung dilampirkan ke repositori. Jika Anda perlu menghapus tag yang diwarisi dari project induk atau bagian lain dari hierarki resource, administrator project harus melepaskannya dari resource tempat tag dilampirkan.

Untuk menghapus tag yang dilampirkan ke repositori:

Konsol

  1. Dapatkan nilai tag yang ingin dihapus. Jika Anda tidak mengetahui nilai tag, list tag yang dilampirkan ke repositori.

  2. Buka halaman Repositories di Konsol Google Cloud.

    Buka halaman Repositori

  3. Pilih repositori.

  4. Di bagian Repository Details, klik Show more.

    Tag yang ada untuk repositori, termasuk tag yang diwarisi, akan ditampilkan.

  5. Klik ikon Edit Edit tag.

  6. Di bagian Tag langsung, cari tag yang ingin Anda hapus.

  7. Klik ikon hapus di samping tag yang ingin Anda hapus.

  8. Klik Simpan.

  9. Klik Confirm.

    Tag akan dihapus dari repositori Anda.

gcloud CLI

  1. Dapatkan nilai tag yang ingin dihapus. Jika Anda tidak mengetahui nilai tag, list tag yang dilampirkan ke repositori.

  2. Lepaskan nilai tag dengan perintah berikut:

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    Ganti nilai berikut:

    • Nilai tag TAG_VALUE untuk dilepas.

    • REPOSITORY_ID adalah ID lengkap repositori, termasuk nama domain API untuk mengidentifikasi jenis resource (//artifactregistry.googleapis.com/). Misalnya, //artifactregistry.googleapis.com/projects/my-project/my-repo

    • LOCATION adalah lokasi repositori.

    Perhatikan contoh berikut:

    • Nilai tag: 815471563813/env/dev
    • Project: my-project
    • Repositori: my-repo
    • Lokasi repositori: us-east1

    Perintah gcloud CLI berikut melepaskan tag dari repositori:

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

Langkah selanjutnya