Mengontrol akses dan mengatur instance dengan tag

Halaman ini menjelaskan cara menggunakan tag Google Cloud untuk mengelola akses ke instance Spanner Anda.

TagGoogle Cloud adalah pasangan nilai kunci yang dapat Anda lampirkan ke resource Google Cloud , seperti project atau instance Spanner. Anda dapat menggunakan tag untuk mengelompokkan dan mengatur instance, serta menetapkan secara bersyarat kebijakan akses Identity and Access Management (IAM) berdasarkan apakah instance memiliki tag tertentu atau tidak. Anda dapat membuat dan mengelola tag instance Spanner menggunakan Google Cloud CLI atau Konsol Google Cloud. Setelah membuat tag, Anda dapat membuat binding tag untuk melampirkan tag ke resource Google Cloud . Binding tag diwarisi oleh turunan resource sesuai dengan Google Cloud hierarki resource. Misalnya, jika Anda melampirkan tag ke project, semua instance dalam project tersebut akan mewarisi tag tersebut. Anda juga dapat menggunakan label untuk mengatur Google Cloud resource, tetapi Anda tidak dapat menggunakan label untuk menetapkan kondisi pada kebijakan IAM.

Untuk mempelajari tag lebih lanjut, lihat Ringkasan tag.

Kasus penggunaan umum untuk tag instance Spanner

Beberapa kasus penggunaan umum untuk tag mencakup:

  • Tag Identity and Access Management (IAM): Memberikan peran Identity and Access Management (IAM) berdasarkan apakah instance memiliki tag tertentu atau tidak. Adanya atau tidak adanya nilai tag adalah kondisi untuk kebijakan IAM tersebut dan membantu mengontrol akses ke instance Spanner Anda.
  • Tag status: Menunjukkan dan mengelola status instance dengan membuat tag. Misalnya, state:active, state:todelete, dan state:archive.
  • Tag lingkungan: Tentukan lingkungan produksi, pengujian, dan pengembangan untuk instance dengan membuat pasangan nilai kunci seperti env:prod, env:dev, dan env:test.

Cara membuat dan mengelola tag instance Spanner

Tag disusun sebagai pasangan nilai kunci. Anda membuat kunci tag di bawah resource organisasi, lalu melampirkan nilai tag ke kunci tag (misalnya, kunci tag environment dengan nilai prod dan dev). Kemudian, Anda dapat membuat binding tag yang menautkan nilai tag ke resource Google Cloud , seperti project atau instance Spanner. Perhatikan bahwa Anda tidak dapat menetapkan tag ke database.

Izin yang diperlukan

Izin yang Anda perlukan bergantung pada tindakan yang harus dilakukan. Untuk informasi selengkapnya, lihat Izin yang diperlukan dalam dokumentasi Resource Manager.

Membuat kunci dan nilai tag

Sebelum dapat melampirkan tag ke instance, Anda harus membuat tag dan menetapkan nilainya. Untuk membuat kunci tag dan nilai tag, lihat Membuat tag dan Menambahkan nilai tag.

Melampirkan tag ke instance

Setelah membuat pasangan nilai kunci tag, Anda dapat membuat binding tag dan melampirkannya ke instance Spanner.

Konsol

  1. Di konsol Google Cloud, buka halaman Spanner Instances.

    Buka Instance Spanner

  2. Pilih instance yang ingin Anda lampirkan tag.

  3. Klik Tag.

  4. Jika organisasi Anda tidak muncul di panel Tag, klik Pilih cakupan. Pilih organisasi Anda dan klik Buka.

  5. Di panel Tag, pilih Tambahkan tag.

  6. Di kolom Kunci, pilih kunci untuk tag yang ingin Anda lampirkan dari daftar. Anda dapat memfilter daftar dengan mengetik kata kunci.

  7. Di kolom Value, pilih nilai untuk tag yang ingin dilampirkan dari daftar. Anda dapat memfilter daftar dengan mengetik kata kunci.

  8. Jika Anda ingin melampirkan tag lainnya, klik Tambahkan Tag, lalu pilih kunci dan nilai untuk masing-masing tag.

  9. Klik Simpan.

  10. Dalam dialog Konfirmasi, klik Konfirmasi untuk melampirkan tag.

    Notifikasi mengonfirmasi bahwa tag Anda telah diperbarui.

gcloud

Untuk membuat binding tag dan melampirkan ke instance Anda, jalankan perintah berikut:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/VALUE_NAME
--location=LOCATION
  • PROJECT_ID: ID project.
  • INSTANCE_ID: ID instance.
  • ORG_ID: ID organisasi.
  • KEY_NAME: Nama tampilan (pendek) kunci tag Anda. Contoh, env.
  • VALUE_NAME: Nama tampilan (pendek) nilai tag Anda. Contoh, prod.
  • LOCATION: Lokasi instance Anda. Contoh, us-east1.

Misalnya, untuk membuat binding tag pada instance Spanner my-instance dengan pasangan nilai kunci tag env:prod, jalankan perintah berikut:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/my-project/instances/my-instance
--tag-value=123456789012/env/prod
--location=us-east1

Kondisi dan tag IAM

Anda dapat menggunakan tag dan kondisi IAM untuk memberikan binding peran bersyarat kepada pengguna. Jika kebijakan IAM dengan binding peran bersyarat diterapkan, mengubah atau menghapus tag yang terlampir ke resource dapat menghapus akses pengguna ke resource tersebut.

Untuk informasi selengkapnya, lihat Ringkasan IAM Conditions.

Konsol

Untuk menggunakan tag guna memberikan binding peran bersyarat kepada pengguna, lihat Mengelola akses ke tag.

gcloud

Untuk menerapkan kondisi berbasis tag ke kebijakan IAM, pastikan Anda memiliki izin yang diperlukan, lalu jalankan perintah berikut:

gcloud organizations add-iam-policy-binding ORG_ID
--role=roles/ROLE --member=PRINCIPAL
--condition=resource.matchTag('PROJECT_ID/KEY_NAME', 'VALUE_NAME')
  • ORG_ID: ID organisasi.
  • ROLE: Nama peran yang akan ditetapkan ke akun utama. Nama peran adalah jalur lengkap peran standar, seperti roles/logging.viewer, atau ID peran untuk peran kustom, seperti organizations/{ORG_ID}/roles/logging.viewer.
  • PRINCIPAL: Akun utama tempat Anda ingin menambahkan binding peran. URL ini harus dalam format user|group|serviceAccount:email atau domain:domain. Misalnya, user:test-user@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com, atau domain:example.domain.com.
  • PROJECT_ID: ID project.
  • KEY_NAME: Nama tampilan (pendek) kunci tag Anda. Contoh, env.
  • VALUE_NAME: Nama tampilan (pendek) nilai tag Anda. Contoh, prod.

Perintah ini menambahkan binding kebijakan IAM ke kebijakan IAM organisasi. Binding kebijakan terdiri dari anggota, peran, dan kondisi opsional.

Misalnya, untuk memberikan peran spanner.backupAdmin secara bersyarat kepada user1@example.com di semua resource project 123456789012 dengan tag env:prod, jalankan perintah:

gcloud organizations add-iam-policy-binding my-project
--member=user1@example.com --role=roles/spanner.backupAdmin
--condition=resource.matchTag('123456789012/env', 'prod')

Mencantumkan tag yang dilampirkan ke instance

Anda dapat melihat daftar binding tag yang dikaitkan langsung atau diwarisi oleh instance.

gcloud

Untuk mendapatkan daftar binding tag yang langsung dilampirkan ke resource, gunakan perintah gcloud resource-manager tags bindings list. Jika menambahkan flag --effective, Anda juga akan mendapatkan semua binding tag yang diwarisi oleh resource ini.

Untuk menampilkan daftar semua binding tag yang dilampirkan ke instance, jalankan perintah berikut:

gcloud resource-manager tags bindings list
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--location=LOCATION
--effective
  • PROJECT_ID: ID project.
  • INSTANCE_ID: ID instance.
  • LOCATION: Lokasi instance Anda. Contoh, us-east1.

Menghapus binding tag

Saat menghapus kunci tag atau definisi nilai, pastikan tag tersebut dilepaskan dari instance. Anda harus menghapus binding tag yang ada sebelum menghapus tag.

Konsol

  1. Di konsol Google Cloud, buka halaman Spanner Instances.

    Buka Instance Spanner

  2. Pilih instance yang ingin Anda hapus binding tagnya.

  3. Klik Tag.

  4. Di panel Tag, di samping tag yang ingin dilepas, klik Hapus item.

  5. Klik Simpan.

  6. Dalam dialog Konfirmasi, klik Konfirmasi untuk melepas tag.

    Notifikasi mengonfirmasi bahwa tag Anda telah diperbarui.

gcloud

Untuk menghapus binding tag, jalankan perintah berikut:

gcloud resource-manager tags bindings delete
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/KEY_VALUE
--location=LOCATION
  • PROJECT_ID: ID project.
  • INSTANCE_ID: ID instance.
  • ORG_ID: ID organisasi.
  • KEY_NAME: Nama tampilan (pendek) kunci tag Anda. Contoh, env.
  • VALUE_NAME: Nama tampilan (pendek) nilai tag Anda. Contoh, prod.
  • LOCATION: Lokasi instance Anda. Contoh, us-east1.

Menghapus tag

Setelah menghapus binding tag, Anda dapat menghapus tag. Untuk menghapus kunci tag dan nilai tag, lihat Menghapus tag.

Langkah berikutnya