Membatasi identitas menurut domain

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

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

Batasan pembatasan domain tidak berlaku surut. Setelah pembatasan domain ditetapkan, batasan ini akan berlaku untuk perubahan kebijakan IAM yang dilakukan sejak saat itu, bukan pada perubahan sebelumnya. Batasan pembatasan domain akan berlaku untuk setiap perubahan kebijakan IAM, termasuk perubahan yang dilakukan oleh agen layanan sebagai respons terhadap tindakan lainnya. 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 identitas examplepetstore.com ke peran IAM di altostrat.com. Kemudian, Anda memutuskan untuk membatasi identitas menurut domain, dan menerapkan kebijakan organisasi dengan batasan domain di altostrat.com. Dalam hal ini, identitas domain IAM.comalto yang sudah ada tidak akan kehilangan akses di 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 diinduk oleh resource organisasi tersebut. Jika ditetapkan di domain Google Workspace, batasan ini akan memengaruhi semua identitas yang berada dalam 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 domain. Batasan pembatasan domain tidak mendukung penolakan nilai, 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 secara kondisional 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 termasuk batasan pembatasan domain, lakukan langkah 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 Berlaku untuk, pilih Ganti kebijakan induk.

  6. Klik Tambahkan aturan.

  7. Di bagian Nilai kebijakan, pilih kustom. 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 kolom.

  10. Jika Anda ingin menambahkan beberapa ID, klik New policy value untuk membuat kolom tambahan.

  11. Klik Done.

  12. Atau, untuk membuat batasan pembatasan domain menjadi kondisional pada tag, klik Add condition.

    1. Di kolom Title, masukkan nama untuk kondisi tersebut.

    2. Di kolom Deskripsi, berikan deskripsi 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 pada tab Pembuat 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 ID kecocokan.

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

      4. Anda dapat membuat beberapa kondisi dengan mengklik Tambahkan. Jika menambahkan kondisi lain, Anda dapat menetapkan logika bersyarat untuk mewajibkan semuanya dengan mengalihkan And. Anda dapat menetapkan logika kondisional untuk hanya meminta salah satu kondisi menjadi benar dengan mengalihkan tombol Or.

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

      6. Setelah selesai mengedit kondisi, klik Simpan.

  13. Untuk menerapkan kebijakan, klik Tetapkan kebijakan.

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 untuk menetapkan kebijakan ini.
  • PRINCIPAL_SET untuk ID 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 milik 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 yang ditentukan.

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 mulai saat ini.

Untuk mempelajari lebih lanjut cara menggunakan batasan dalam kebijakan organisasi, lihat [Menggunakan Constraints/resource-manager/docs/organization-policy/using-constraints#list-constraint).

Contoh pesan error

Jika batasan organisasi pembatasan domain dilanggar dengan mencoba menambahkan akun utama 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 langkah 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 akan menampilkan ID resource 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 organisasinya yang sesuai.

API

Untuk menemukan ID resource organisasi 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 termasuk dalam altostrat.com, yang menyertakan ID resource organisasi.

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

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

Untuk mengetahui 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 izin resourcemanager.organizations.get-nya Anda miliki:

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 Pelanggan: dapatkan, lalu 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 mengkueri 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 yang mencakup informasi pelanggan. ID pelanggan Google Workspace adalah id.

Membatasi subdomain

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

Jika Anda mengizinkan ID pelanggan Google Workspace dalam batasan domain, tindakan tersebut 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 primer, dan nol atau beberapa domain sekunder. Semua domain yang terkait dengan ID pelanggan Google Workspace akan dikenai batasan ini.

Menerapkan batasan pembatasan domain pada resource akan mengontrol domain primer dan semua domain sekunder yang dapat mengakses resource tersebut beserta turunannya 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 organisasi mereka sendiri. Hal ini memungkinkan Anda mengaitkan altostrat.com dengan satu akun Google Workspace, dan sub.altostrat.com dengan akun lainnya untuk kontrol akses yang lebih terperinci. Untuk informasi selengkapnya, lihat Mengelola Beberapa Organisasi.

Memecahkan masalah umum

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

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 tempat batasan pembatasan domain diberlakukan, tindakan ini 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 sudah ditambahkan sebagai Editor di tingkat project, baik secara langsung maupun menggunakan Google Grup.

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

  1. Nonaktifkan kebijakan organisasi yang berisi batasan domain.

  2. Lakukan proses penautan di Google Analytics 360.

  3. Terapkan lagi batasan pembatasan domain.

Berbagi data publik

Beberapa produk Google Cloud seperti BigQuery, Cloud Functions, 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 berbagi data secara publik, nonaktifkan batasan berbagi yang dibatasi domain untuk sementara untuk resource Project tempat data yang ingin Anda bagikan berada. Setelah berbagi 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 memberi akun layanan ini peran pada set data BigQuery dalam project yang menerapkan batasan pembatasan domain:

  1. Nonaktifkan kebijakan organisasi yang berisi batasan domain.

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

  3. Terapkan lagi batasan pembatasan domain.

Akun layanan ekspor Penagihan Cloud

Mengaktifkan ekspor penagihan ke bucket yang mengaktifkan batasan ini 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 domain akan memblokir domain yang tidak secara khusus diizinkan 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 domain, lakukan langkah berikut:

  1. Nonaktifkan kebijakan organisasi yang berisi batasan domain.

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

  3. Terapkan lagi batasan pembatasan domain.

Aktifkan Firebase API

Jika diaktifkan, batasan 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 domain.

  2. Aktifkan Firebase Management API.

  3. Terapkan lagi batasan pembatasan domain.

Grup Google

Grup Google yang dibuat dalam domain yang diizinkan selalu dapat diberi peran dalam kebijakan IAM saat batasan pembatasan domain diterapkan meskipun grup tersebut berisi anggota dari luar domain tersebut.

Untuk memastikan bahwa administrator project tidak dapat mengabaikan batasan 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 kebijakan organisasi dengan batasan pembatasan domain lagi.

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 tentang topik Anda ke akun layanan Google Chat API, Anda dapat diblokir jika batasan Berbagi Domain Terbatas diaktifkan. Ikuti proses untuk memaksa akses akun.