Membatasi identitas menurut domain

Resource Manager menyediakan batasan pembatasan domain yang dapat digunakan dalam kebijakan organisasi untuk membatasi berbagi resource berdasarkan resource domain atau organisasi. Batasan ini memungkinkan Anda membatasi kumpulan identitas yang diizinkan untuk digunakan dalam kebijakan Identity and Access Management.

Kebijakan organisasi dapat menggunakan batasan ini untuk membatasi berbagi resource ke identitas yang termasuk dalam resource organisasi tertentu. Atau, Anda dapat menentukan kumpulan satu atau beberapa domain, dan pengecualian dapat diberikan berdasarkan per folder atau per project. Untuk informasi selengkapnya tentang cara menambahkan pengecualian, lihat Mengganti kebijakan organisasi untuk project.

Pembatasan domain tidak berlaku surut. Setelah pembatasan domain ditetapkan, batasan ini akan berlaku untuk perubahan kebijakan IAM yang dilakukan mulai saat itu, dan bukan untuk perubahan sebelumnya. Batasan pembatasan domain akan berlaku untuk setiap perubahan kebijakan IAM, termasuk perubahan yang dilakukan agen layanan sebagai respons terhadap tindakan lain. Misalnya, jika Anda memiliki layanan otomatis yang mengimpor set data BigQuery, agen layanan BigQuery akan membuat perubahan kebijakan IAM pada set data yang baru dibuat. Tindakan ini akan dibatasi oleh batasan pembatasan domain dan diblokir.

Misalnya, pertimbangkan dua organisasi terkait: examplepetstore.com dan altostrat.com. Anda telah memberikan peran IAM ke identitas examplepetstore.com di altostrat.com. Kemudian, Anda memutuskan untuk membatasi identitas berdasarkan domain, dan menerapkan kebijakan organisasi dengan batasan pembatasan domain di altostrat.com. Dalam hal ini, identitas examplepetstore.com yang ada tidak akan kehilangan akses di altostrat.com. Dari titik tersebut, Anda hanya dapat memberikan peran IAM ke identitas dari domain altostrat.com.

Batasan pembatasan domain didasarkan pada batasan daftar iam.allowedPolicyMemberDomains.

Jika ditetapkan pada resource organisasi Google Cloud, batasan ini akan memengaruhi semua identitas yang di-parent oleh resource organisasi tersebut. Jika batasan ini ditetapkan di domain Google Workspace, batasan tersebut akan memengaruhi semua identitas yang berada di bawah domain tersebut. Hal ini mencakup akun pengguna yang dikelola di konsol Google Workspace, bukan dari dalam konsol Google Cloud.

Menetapkan kebijakan organisasi

Batasan pembatasan domain adalah jenis batasan daftar. ID pelanggan Google Workspace dan ID resource organisasi Google Cloud dapat ditambahkan dan dihapus dari daftar allowed_values batasan pembatasan domain. Batasan pembatasan domain tidak mendukung nilai penolakan, dan kebijakan organisasi tidak dapat disimpan dengan ID dalam daftar denied_values.

Semua domain yang terkait dengan akun Google Workspace atau resource organisasi yang tercantum dalam allowed_values akan diizinkan oleh kebijakan organisasi. Semua domain lainnya akan ditolak oleh kebijakan organisasi.

Anda dapat membuat kebijakan organisasi yang menerapkan batasan pembatasan domain bersyarat pada resource apa pun yang disertakan dalam daftar resource yang didukung. Misalnya, bucket Cloud Storage, set data BigQuery, atau VM Compute Engine.

Anda harus memiliki izin untuk mengubah kebijakan organisasi guna menetapkan batasan ini. Misalnya, peran orgpolicy.policyAdmin memiliki izin untuk menetapkan batasan kebijakan organisasi. Peran resourcemanager.organizationAdmin memiliki izin untuk menambahkan pengguna sebagai Administrator Kebijakan Organisasi. Baca halaman Menggunakan Batasan untuk mempelajari lebih lanjut cara mengelola kebijakan di tingkat organisasi.

Konsol

Untuk menetapkan kebijakan organisasi yang menyertakan batasan pembatasan domain, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Dari pemilih project, pilih resource organisasi tempat Anda ingin menetapkan kebijakan organisasi.

  3. Di halaman Organization policies, pilih Domain Restricted Sharing dari daftar batasan.

  4. Di halaman Detail kebijakan, klik Kelola kebijakan.

  5. Di bagian Applies to, pilih Override parent's policy.

  6. Klik Add a rule.

  7. Di bagian Policy values, pilih custom. Catatan: Batasan pembatasan domain tidak mendukung Deny All.

  8. Di bagian Policy values, pilih Allow. Catatan: Batasan pembatasan domain tidak mendukung nilai Deny.

  9. Di bagian Nilai kustom, masukkan ID resource organisasi atau ID pelanggan Google Workspace ke dalam kolom.

  10. Jika Anda ingin menambahkan beberapa ID, klik Nilai kebijakan baru untuk membuat kolom tambahan.

  11. Klik Done.

  12. Secara opsional, untuk membuat batasan pembatasan domain bersyarat pada tag, klik Tambahkan kondisi.

    1. Di kolom Title, masukkan nama untuk kondisi.

    2. Di kolom Deskripsi, berikan deskripsi untuk kondisi Anda. Deskripsi memberikan konteks tentang tag yang diperlukan dan pengaruhnya terhadap resource.

    3. Anda dapat menggunakan Pembuat kondisi untuk membuat kondisi yang memerlukan tag tertentu agar batasan dapat diterapkan.

      1. Di menu dropdown Jenis kondisi di tab Builder kondisi, pilih Tag.

      2. Pilih Operator untuk kondisi Anda. Untuk mencocokkan seluruh tag, gunakan operator matches. Untuk mencocokkan kunci tag dan nilai tag, gunakan operator matches ID.

      3. Jika Anda memilih operator matches, masukkan nama tag dengan namespace nilai. Jika Anda memilih operator cocok dengan ID, masukkan ID kunci dan nilai.

      4. Anda dapat membuat beberapa kondisi dengan mengklik Tambahkan. Jika menambahkan kondisi lain, Anda dapat menetapkan logika bersyarat untuk memerlukan semuanya dengan mengalihkan Dan. Anda dapat menetapkan logika bersyarat agar hanya salah satu kondisi yang benar dengan mengalihkan Atau.

      5. Anda dapat menghapus ekspresi dengan mengklik X besar di sebelah kanan kolom kondisi.

      6. Setelah selesai mengedit kondisi, klik Simpan.

  13. Untuk menerapkan kebijakan, klik Set policy.

gcloud

Kebijakan dapat ditetapkan melalui Google Cloud CLI. Untuk membuat kebijakan yang menyertakan batasan pembatasan domain, jalankan perintah berikut:

Untuk menetapkan kebijakan organisasi yang menyertakan batasan pembatasan domain, jalankan perintah berikut:

gcloud org-policies set-policy POLICY_PATH

Dengan POLICY_PATH adalah jalur lengkap ke file YAML kebijakan organisasi Anda, yang akan terlihat seperti berikut:

name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
spec:
  rules:
  - condition: # This condition applies to the values block.
      expression: "resource.matchTag('ORGANIZATION_ID/environment', 'dev')"
    values:
      allowedValues:
      - PRINCIPAL_SET
  - values:
      allowedValues:
      - PRINCIPAL_SET

Ganti kode berikut:

  • ORGANIZATION_ID dengan ID resource organisasi tempat kebijakan ini akan ditetapkan.
  • PRINCIPAL_SET untuk ID akun utama Cloud Identity yang ingin Anda izinkan, termasuk ID resource organisasi. Contohnya, is:principalSet://iam.googleapis.com/organizations/01234567890123.

    ID pelanggan Google Workspace harus digunakan untuk semua identitas lain yang ingin Anda izinkan. Contoh, is:C03g5e3bc.

Hanya identitas yang termasuk dalam ID resource organisasi atau domain Google Workspace dari daftar allowed_values yang akan diizinkan di kebijakan IAM setelah kebijakan organisasi ini diterapkan. Pengguna dan grup manusia Google Workspace harus merupakan turunan dari resource organisasi tersebut atau bagian dari domain Google Workspace tersebut, dan akun layanan IAM harus merupakan turunan dari resource organisasi yang terkait dengan domain Google Workspace tertentu.

Misalnya, jika Anda membuat kebijakan organisasi hanya dengan ID pelanggan Google Workspace perusahaan Anda, hanya akun utama dari domain tersebut yang dapat ditambahkan ke kebijakan IAM sejak saat itu.

Untuk mempelajari lebih lanjut cara menggunakan batasan dalam kebijakan organisasi, lihat Menggunakan Batasan.

Contoh pesan error

Jika batasan organisasi pembatasan domain dilanggar dengan mencoba menambahkan prinsipal yang tidak disertakan dalam daftar allowed_values, operasi akan gagal, lalu pesan error akan ditampilkan.

Konsol

Screenshot Konsol

gcloud

ERROR: (gcloud.projects.set-iam-policy) FAILED_PRECONDITION:
One or more users named in the policy do not belong to a permitted customer.

Mengambil ID resource organisasi

Anda bisa mendapatkan ID resource organisasi menggunakan Konsol Google Cloud, gcloud CLI, atau Cloud Resource Manager API.

console

Untuk mendapatkan ID resource organisasi menggunakan konsol Google Cloud, lakukan hal berikut:

  1. Buka Konsol Google Cloud:

    Buka konsol Google Cloud.

  2. Dari pemilih project di bagian atas halaman, pilih resource organisasi Anda.
  3. Di sisi kanan, klik Lainnya, lalu klik Setelan.

Halaman Setelan menampilkan ID fasilitas organisasi Anda.

gcloud

Untuk menemukan ID resource organisasi Anda, jalankan perintah berikut:

gcloud organizations list

Perintah ini mencantumkan semua resource organisasi tempat Anda berada, dan ID resource organisasi yang sesuai.

API

Untuk menemukan ID resource organisasi Anda menggunakan Cloud Resource Manager API, gunakan metode organizations.search(), termasuk kueri untuk domain Anda. Contoh:

GET https://cloudresourcemanager.googleapis.com/v3/organizations:search{query=domain:altostrat.com}

Respons berisi metadata resource organisasi yang milik altostrat.com, yang mencakup ID resource organisasi.

Setelah memiliki ID resource organisasi, Anda harus menggunakan ID yang benar untuk kumpulan akun utama yang dimilikinya. Contoh:

principalSet://iam.googleapis.com/organizations/01234567890123

Untuk informasi selengkapnya tentang ID utama IAM, lihat ID utama.

Mengambil ID pelanggan Google Workspace

ID pelanggan Google Workspace yang digunakan oleh batasan pembatasan domain dapat diperoleh dengan dua cara:

gcloud

Perintah gcloud organizations list dapat digunakan untuk melihat semua organisasi yang izinnya Anda miliki:resourcemanager.organizations.get

gcloud organizations list

Perintah ini akan menampilkan DISPLAY_NAME, ID (ID Organisasi), dan DIRECTORY_CUSTOMER_ID. ID pelanggan Google Workspace adalah DIRECTORY_CUSTOMER_ID.

API

Google Workspace Directory API dapat digunakan untuk mengambil ID pelanggan Google Workspace.

Saat login sebagai admin Google Workspace, Anda dapat membuka dokumentasi metode API Customers: get dan mengklik Execute. Setelah otorisasi, respons akan menampilkan ID pelanggan Anda.

Atau, Anda dapat menggunakan klien API:

  1. Dapatkan token akses OAuth untuk cakupan https://www.googleapis.com/auth/admin.directory.customer.readonly.
  2. Jalankan perintah berikut untuk membuat kueri API direktori Google Workspace:

    curl -# -X GET "https://www.googleapis.com/admin/directory/v1/customers/customerKey" \
    -H "Authorization: Bearer $access_token" -H "Content-Type: application/json"
    

Perintah ini akan menampilkan respons JSON termasuk informasi pelanggan. ID pelanggan Google Workspace adalah id.

Membatasi subdomain

Jika Anda mengizinkan resource organisasi Google Cloud dalam batasan pembatasan domain, resource tersebut akan mengizinkan akses ke semua resource yang terkait dengan resource organisasi tersebut, dan memblokir akses ke semua resource lainnya.

Jika Anda mengizinkan ID pelanggan Google Workspace dalam batasan pembatasan domain, tindakan ini akan membatasi akses ke semua domain yang terkait dengan ID pelanggan Google Workspace tersebut, dan memblokir akses ke semua domain lainnya. Setiap akun Google Workspace memiliki tepat satu domain utama, dan nol atau beberapa domain sekunder. Semua domain yang dikaitkan dengan ID pelanggan Google Workspace akan tunduk pada batasan tersebut.

Menerapkan batasan pembatasan domain pada resource akan mengontrol domain utama dan semua domain sekunder yang dapat mengakses resource tersebut dan turunan dalam hierarki resource.

Untuk contoh kombinasi domain dan subdomain Google Workspace umum, lihat tabel di bawah:

Domain primer Subdomain Pembatasan domain Apakah user@sub.altostrat.com diizinkan?
altostrat.com tidak ada Izinkan: altostrat.com Tidak
altostrat.com sub.altostrat.com Izinkan: altostrat.com Ya
altostrat.com sub.altostrat.com Izinkan: sub.altostrat.com Ya
sub.altostrat.com altostrat.com Izinkan: sub.altostrat.com Ya
sub.altostrat.com tidak ada Izinkan: sub.altostrat.com Ya

Untuk membedakan akses batasan pembatasan domain antara dua domain, setiap domain harus dikaitkan dengan akun Google Workspace yang berbeda. Setiap akun Google Workspace dikaitkan dengan node organisasi, dan dapat menerapkan kebijakan organisasinya sendiri. Hal ini memungkinkan Anda mengaitkan altostrat.com dengan satu akun Google Workspace, dan sub.altostrat.com dengan akun lain untuk kontrol akses yang lebih terperinci. Untuk informasi selengkapnya, lihat Mengelola Beberapa Organisasi.

Memecahkan masalah umum

Kebijakan organisasi tidak berlaku surut. Jika Anda perlu memaksa perubahan pada hierarki resource yang akan melanggar batasan yang diterapkan, Anda dapat menonaktifkan kebijakan organisasi, melakukan perubahan, lalu mengaktifkan kembali kebijakan organisasi.

Bagian berikut menjelaskan masalah umum pada layanan yang dapat terjadi saat batasan ini diterapkan.

Menautkan Google Analytics 360 dengan BigQuery

Jika Anda mencoba menautkan Google Analytics 360 dengan BigQuery saat batasan pembatasan domain diterapkan, tindakan tersebut akan gagal dengan pesan error One or more users named in the policy do not belong to a permitted customer, meskipun akun layanan analytics-processing-dev@system.gserviceaccount.com telah ditambahkan sebagai Editor di tingkat project, baik secara langsung maupun menggunakan Google Grup.

Untuk menautkan Google Analytics 360 dengan BigQuery, lakukan tindakan berikut:

  1. Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.

  2. Lakukan proses penautan di Google Analytics 360.

  3. Terapkan batasan pembatasan domain lagi.

Berbagi data publik

Beberapa produk Google Cloud seperti BigQuery, fungsi Cloud Run, Cloud Run, Cloud Storage, dan Pub/Sub mendukung berbagi data publik. Menerapkan batasan berbagi yang dibatasi domain dalam kebijakan organisasi akan mencegah berbagi data publik.

Untuk membagikan data secara publik, nonaktifkan batasan berbagi yang dibatasi domain untuk sementara untuk resource Project tempat data yang ingin Anda bagikan berada. Setelah membagikan resource secara publik, Anda dapat mengaktifkan kembali batasan berbagi yang dibatasi domain.

Sink log BigQuery untuk akun penagihan

Akun layanan yang digunakan oleh sink log BigQuery untuk akun penagihan (format: b*@*.iam.gserviceaccount.com) diperlakukan sebagai eksternal dan diblokir oleh batasan berbagi yang dibatasi domain dalam kebijakan organisasi. Untuk memberikan peran pada akun layanan ini di set data BigQuery dalam project yang menerapkan batasan pembatasan domain:

  1. Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.

  2. Berikan peran BigQuery yang ditunjukkan selama proses pembuatan sink kepada akun layanan yang sesuai (format: b*@*.iam.gserviceaccount.com).

  3. Terapkan batasan pembatasan domain lagi.

Akun layanan ekspor Penagihan Cloud

Mengaktifkan ekspor penagihan ke bucket dengan batasan ini diaktifkan mungkin akan gagal. Jangan gunakan batasan ini pada bucket yang digunakan untuk ekspor penagihan.

Alamat email akun layanan ekspor Penagihan Cloud adalah: 509219875288-kscf0cheafmf4f6tp1auij5me8qakbin@developer.gserviceaccount.com

Mengaktifkan logging akses penyimpanan

Jika diaktifkan, batasan pembatasan domain akan memblokir domain apa pun yang tidak diizinkan secara khusus dalam kebijakan organisasi. Tindakan ini juga akan mencegah pemberian akses ke akun layanan Google. Untuk menyiapkan logging akses penyimpanan di bucket Cloud Storage yang menerapkan batasan pembatasan domain, lakukan tindakan berikut:

  1. Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.

  2. Berikan akses cloud-storage-analytics@google.com WRITE ke bucket tersebut.

  3. Terapkan batasan pembatasan domain lagi.

Memberikan peran agen layanan

Peran agen layanan hanya diberikan kepada akun layanan. Jika Anda perlu memberikan jenis peran ini, lakukan hal berikut:

  1. Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.

  2. Berikan peran agen layanan.

  3. Terapkan batasan pembatasan domain lagi.

Mengaktifkan Firebase API

Jika diaktifkan, batasan pembatasan domain akan memblokir akun layanan yang tidak diizinkan dalam kebijakan organisasi. Hal ini membuat Firebase API tidak dapat diaktifkan, yang memerlukan akun layanan eksternal selama proses pengaktifan API. Setelah API diaktifkan, Anda dapat menerapkan batasan pembatasan domain dengan aman tanpa mengganggu fungsi Firebase API. Untuk mengaktifkan Firebase API:

  1. Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.

  2. Aktifkan Firebase Management API.

  3. Terapkan batasan pembatasan domain lagi.

Grup Google

Jika batasan pembatasan domain diterapkan di organisasi Anda, Anda mungkin tidak dapat memberikan peran ke grup Google yang baru dibuat, meskipun grup tersebut termasuk dalam domain yang diizinkan. Hal ini karena perlu waktu hingga 24 jam agar grup diterapkan sepenuhnya melalui Google Cloud. Jika Anda tidak dapat memberikan peran ke grup Google yang baru dibuat, tunggu 24 jam, lalu coba lagi.

Selain itu, saat mengevaluasi apakah grup termasuk dalam domain yang diizinkan, IAM hanya mengevaluasi domain grup. Fitur ini tidak mengevaluasi domain anggota grup mana pun. Akibatnya, administrator project dapat mengabaikan batasan pembatasan domain dengan menambahkan anggota dari luar ke grup Google, lalu memberikan peran ke grup Google tersebut.

Untuk memastikan administrator project tidak dapat mengabaikan batasan pembatasan domain, administrator Google Workspace harus memastikan bahwa pemilik grup tidak dapat mengizinkan anggota dari luar domain di panel administrator Google Workspace.

Memaksa akses akun

Jika Anda perlu memaksa akses akun untuk project yang melanggar pembatasan domain:

  1. Hapus kebijakan organisasi yang berisi batasan pembatasan domain.

  2. Berikan akses akun ke project.

  3. Terapkan kembali kebijakan organisasi dengan batasan pembatasan domain.

Atau, Anda dapat memberikan akses ke grup Google yang berisi akun layanan yang relevan:

  1. Buat grup Google dalam domain yang diizinkan.

  2. Gunakan panel administrator Google Workspace untuk menonaktifkan pembatasan domain untuk grup tersebut.

  3. Tambahkan akun layanan ke grup.

  4. Berikan akses ke grup Google dalam kebijakan IAM.

Menggunakan Pub/Sub sebagai endpoint untuk aplikasi Google Chat.

Saat mencoba memberikan hak publikasi pada topik Anda ke akun layanan Google Chat API, Anda mungkin diblokir jika batasan Pembagian Domain yang Dibatasi diaktifkan. Ikuti proses untuk memaksa akses akun.