Mengontrol akses dan mengatur instance dengan tag

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

Tag Google 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 untuk menetapkan kebijakan akses Identity and Access Management (IAM) secara bersyarat 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 tersebut ke resource Google Cloud Anda. Binding tag diwarisi oleh turunan resource sesuai dengan hierarki resource Google Cloud. Misalnya, jika Anda melampirkan tag ke project, semua instance dalam project tersebut akan mewarisi tag tersebut. Anda juga dapat menggunakan label untuk mengatur resource Google Cloud, 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 antara lain:

  • 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 key-value pair 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). Selanjutnya, 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 mengetahui informasi selengkapnya, lihat Izin yang diperlukan dalam dokumentasi Resource Manager.

Membuat kunci dan nilai tag

Agar dapat menambahkan 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 key-value pair 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 Key, 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 Anda lampirkan dari daftar. Anda dapat memfilter daftar dengan mengetik kata kunci.

  8. Jika Anda ingin menambahkan lebih banyak tag, klik Add Tag, lalu pilih kunci dan nilai untuk setiap 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 melampirkannya ke instance, 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 (singkat) kunci tag Anda. Contoh, env.
  • VALUE_NAME: Nama tampilan (singkat) nilai tag Anda. Contoh, prod.
  • LOCATION: Lokasi instance Anda. Misalnya, us-east1.

Misalnya, untuk membuat binding tag di 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 secara bersyarat kepada pengguna. Jika kebijakan IAM dengan binding peran bersyarat diterapkan, mengubah atau menghapus tag yang dilampirkan ke resource dapat menghapus akses pengguna ke resource tersebut.

Untuk mengetahui informasi selengkapnya, lihat Ringkasan Kondisi IAM.

Konsol

Untuk menggunakan tag guna memberikan binding peran secara 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 dari peran bawaan, misalnya roles/logging.viewer, atau ID peran untuk peran khusus, misalnya organizations/{ORG_ID}/roles/logging.viewer.
  • PRINCIPAL: Akun utama tempat Anda ingin menambahkan binding peran. Nama 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 (singkat) kunci tag Anda. Contoh, env.
  • VALUE_NAME: Nama tampilan (singkat) nilai tag Anda. Contoh, prod.

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

Misalnya, untuk memberikan peran spanner.backupAdmin secara bersyarat ke 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 secara langsung dilampirkan 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 tanda --effective, Anda juga akan mendapatkan semua binding tag yang diwarisi oleh resource ini.

Untuk menampilkan semua binding tag yang dilampirkan ke sebuah 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. Misalnya, us-east1.

Menghapus binding tag

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

Konsol

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

    Buka instance Spanner

  2. Pilih instance yang binding tagnya ingin dihapus.

  3. Klik Tag.

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

  5. Klik Simpan.

  6. Pada dialog Konfirmasi, klik Konfirmasi untuk melepaskan 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 (singkat) kunci tag Anda. Contoh, env.
  • VALUE_NAME: Nama tampilan (singkat) nilai tag Anda. Contoh, prod.
  • LOCATION: Lokasi instance Anda. Misalnya, us-east1.

Menghapus tag

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

Langkah selanjutnya