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:
Di konsol Google Cloud, buka halaman Organization policies.
Dari pemilih project, pilih resource organisasi tempat Anda ingin menetapkan kebijakan organisasi.
Di halaman Organization policies, pilih Domain Restricted Sharing dari daftar batasan.
Di halaman Detail kebijakan, klik Kelola kebijakan.
Di bagian Applies to, pilih Override parent's policy.
Klik Add a rule.
Di bagian Policy values, pilih custom. Catatan: Batasan pembatasan domain tidak mendukung Deny All.
Di bagian Policy values, pilih Allow. Catatan: Batasan pembatasan domain tidak mendukung nilai Deny.
Di bagian Nilai kustom, masukkan ID resource organisasi atau ID pelanggan Google Workspace ke dalam kolom.
Jika Anda ingin menambahkan beberapa ID, klik Nilai kebijakan baru untuk membuat kolom tambahan.
Klik Done.
Secara opsional, untuk membuat batasan pembatasan domain bersyarat pada tag, klik Tambahkan kondisi.
Di kolom Title, masukkan nama untuk kondisi.
Di kolom Deskripsi, berikan deskripsi untuk kondisi Anda. Deskripsi memberikan konteks tentang tag yang diperlukan dan pengaruhnya terhadap resource.
Anda dapat menggunakan Pembuat kondisi untuk membuat kondisi yang memerlukan tag tertentu agar batasan dapat diterapkan.
Di menu dropdown Jenis kondisi di tab Builder kondisi, pilih Tag.
Pilih Operator untuk kondisi Anda. Untuk mencocokkan seluruh tag, gunakan operator matches. Untuk mencocokkan kunci tag dan nilai tag, gunakan operator matches ID.
Jika Anda memilih operator matches, masukkan nama tag dengan namespace nilai. Jika Anda memilih operator cocok dengan ID, masukkan ID kunci dan nilai.
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.
Anda dapat menghapus ekspresi dengan mengklik X besar di sebelah kanan kolom kondisi.
Setelah selesai mengedit kondisi, klik Simpan.
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
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:
- Buka Konsol Google Cloud:
- Dari pemilih project di bagian atas halaman, pilih resource organisasi Anda.
- 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:
- Dapatkan token akses OAuth untuk cakupan
https://www.googleapis.com/auth/admin.directory.customer.readonly
. 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:
Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.
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:
Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.
Berikan peran BigQuery yang ditunjukkan selama proses pembuatan sink kepada akun layanan yang sesuai (format:
b*@*.iam.gserviceaccount.com
).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:
Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.
Berikan akses
cloud-storage-analytics@google.com
WRITE
ke bucket tersebut.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:
Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.
Berikan peran agen layanan.
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:
Nonaktifkan kebijakan organisasi yang berisi batasan pembatasan domain.
Aktifkan Firebase Management API.
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:
Hapus kebijakan organisasi yang berisi batasan pembatasan domain.
Berikan akses akun ke project.
Terapkan kembali kebijakan organisasi dengan batasan pembatasan domain.
Atau, Anda dapat memberikan akses ke grup Google yang berisi akun layanan yang relevan:
Buat grup Google dalam domain yang diizinkan.
Gunakan panel administrator Google Workspace untuk menonaktifkan pembatasan domain untuk grup tersebut.
Tambahkan akun layanan ke grup.
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.