Berbagi yang dibatasi domain memungkinkan Anda membatasi berbagi resource berdasarkan resource domain atau organisasi. Jika berbagi dengan batasan domain aktif, hanya akun utama yang termasuk dalam domain atau organisasi yang diizinkan yang dapat diberi peran IAM di organisasi Google Cloud Anda.
Ada tiga jenis kebijakan organisasi yang dapat Anda gunakan untuk membatasi identitas menurut domain:
- Kebijakan organisasi kustom yang mereferensikan resource
iam.googleapis.com/AllowPolicy
- Batasan terkelola
iam.managed.allowedPolicyMembers
- Batasan bawaan
iam.allowedPolicyMemberDomains
Sebelum memulai
Pilih metode yang akan Anda gunakan untuk menerapkan aktivitas berbagi yang dibatasi domain. Untuk mempelajari lebih lanjut manfaat dan kekurangan setiap metode, lihat Metode untuk membatasi berbagi menurut domain.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menerapkan berbagi yang dibatasi domain,
minta administrator untuk memberi Anda
peran IAM Administrator kebijakan organisasi (roles/orgpolicy.policyAdmin
) di organisasi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menggunakan kebijakan organisasi kustom untuk menerapkan berbagi yang dibatasi domain
Buat batasan kustom yang membatasi akun utama mana yang dapat diberi peran di organisasi Anda:
Gunakan fungsi CEL
memberInPrincipalSet
dengan akun utama organisasi Anda yang ditetapkan untuk membatasi pemberian peran kepada anggota di organisasi Anda. Untuk mempelajari cara menemukan ID organisasi, lihat Mengambil ID resource organisasi.Misalnya, batasan berikut membatasi pemberian peran kepada anggota di organisasi Anda:
name: organizations/
ORG_ID /customConstraints/custom.allowInternaldentitiesOnly methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID ']) ) )" actionType: ALLOW displayName: Only allow organization members to be granted rolesSecara opsional, pertajam batasan dengan menambahkan fungsi CEL tambahan, yang digabungkan dengan operator logika (
&&
,||
, atau!
). Anda dapat menambahkan salah satu fungsi berikut:Misalnya, batasan berikut membatasi pemberian peran kepada anggota di organisasi Anda dan ke
admin@example.com
:name: organizations/
ORG_ID /customConstraints/custom.allowInternaldentitiesOnly methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, ( MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID ']) || MemberSubjectMatches(member, ['user:admin@example.com']) ) ) )" actionType: ALLOW displayName: Only allow organization members and service agents to be granted roles
Siapkan batasan kustom:
Setelah membuat file YAML untuk batasan khusus baru, Anda harus menyiapkannya agar tersedia untuk kebijakan organisasi di organisasi Anda. Untuk menyiapkan batasan kustom, gunakan perintahgcloud org-policies set-custom-constraint
: Gantigcloud org-policies set-custom-constraint
CONSTRAINT_PATH CONSTRAINT_PATH
dengan jalur lengkap ke file batasan kustom Anda. Contohnya,/home/user/customconstraint.yaml
Setelah selesai, batasan kustom Anda akan tersedia sebagai kebijakan organisasi dalam daftar Google Cloud kebijakan organisasi Anda. Untuk memverifikasi bahwa ada batasan kustom, gunakan perintahgcloud org-policies list-custom-constraints
: Gantigcloud org-policies list-custom-constraints --organization=
ORGANIZATION_ID ORGANIZATION_ID
dengan ID fasilitas organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat Melihat kebijakan organisasi.Terapkan kebijakan organisasi kustom:
Anda dapat menerapkan batasan boolean dengan membuat kebijakan organisasi yang mereferensikannya, lalu menerapkan kebijakan organisasi tersebut ke resource Google Cloud .- Di konsol Google Cloud, buka halaman Organization policies.
- Dari pemilih project, pilih project yang ingin Anda tetapkan kebijakan organisasinya.
- Dari daftar di halaman Organization policies, pilih batasan untuk melihat halaman Policy details untuk batasan tersebut.
- Untuk mengonfigurasi kebijakan organisasi untuk resource ini, klik Manage policy.
- Di halaman Edit policy, pilih Override parent's policy.
- Klik Add a rule.
- Di bagian Enforcement, pilih apakah penerapan kebijakan organisasi ini diaktifkan atau dinonaktifkan.
- Opsional: Untuk membuat kebijakan organisasi bersyarat pada tag, klik Add condition. Perhatikan bahwa jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk mengetahui informasi selengkapnya, lihat Menetapkan kebijakan organisasi dengan tag.
- Jika ini adalah batasan kustom, Anda dapat mengklik Uji perubahan untuk menyimulasikan efek kebijakan organisasi ini. Untuk mengetahui informasi selengkapnya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.
- Untuk menyelesaikan dan menerapkan kebijakan organisasi, klik Set policy. Kebijakan ini memerlukan waktu hingga 15 menit untuk diterapkan.
Untuk membuat kebijakan organisasi yang menerapkan batasan boolean, buat file YAML kebijakan yang merujuk batasan tersebut:
name: projects/
PROJECT_ID /policies/CONSTRAINT_NAME spec: rules: - enforce: trueGanti kode berikut:
-
PROJECT_ID
: project tempat Anda ingin menerapkan batasan. -
CONSTRAINT_NAME
: nama batasan yang ingin Anda terapkan. Contoh,compute.disableAllIpv6
.
Untuk menerapkan kebijakan organisasi yang berisi batasan, jalankan perintah berikut:
gcloud org-policies set-policy
POLICY_PATH Ganti
POLICY_PATH
dengan jalur lengkap ke file YAML kebijakan organisasi Anda. Kebijakan ini memerlukan waktu hingga 15 menit untuk diterapkan.
Menggunakan batasan iam.managed.allowedPolicyMembers
untuk menerapkan berbagi yang dibatasi domain
Di konsol Google Cloud, buka halaman Organization policies.
Dari pemilih project, pilih project, folder, atau organisasi yang ingin Anda edit kebijakan organisasinya. Halaman Kebijakan organisasi yang muncul menampilkan daftar batasan kebijakan organisasi yang dapat difilter dan tersedia untuk resource ini.
Dari daftar, pilih batasan terkelola Restrict Allowed Policy Members in IAM Allow Policies.
Di halaman Detail kebijakan, klik Kelola kebijakan.
Di halaman Edit policy, pilih Override parent's policy.
Pilih Tambahkan aturan, lalu perbarui aturan kebijakan organisasi:
Di bagian Enforcement, pilih On.
Secara opsional, untuk membuat kebijakan organisasi bersyarat pada tag, klik Tambahkan kondisi. Jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk mengetahui detail selengkapnya, lihat Menetapkan kebijakan organisasi dengan tag.
Di bagian Parameter, konfigurasikan anggota dan set akun utama yang dapat diberi peran di organisasi Anda, lalu klik Simpan.
Atau, untuk melihat pratinjau efek perubahan kebijakan organisasi Anda sebelum diterapkan, klik Uji perubahan. Untuk mengetahui informasi selengkapnya tentang pengujian perubahan kebijakan organisasi, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.
Untuk menerapkan kebijakan organisasi dalam mode uji coba, klik Set dry run policy. Untuk mengetahui informasi selengkapnya, lihat Membuat kebijakan organisasi dalam mode uji coba.
Setelah Anda memverifikasi bahwa kebijakan organisasi dalam mode uji coba berfungsi seperti yang diinginkan, tetapkan kebijakan aktif dengan mengklik Tetapkan kebijakan.
Buat file YAML untuk menentukan kebijakan organisasi:
name: organizations/
ORG_ID /policies/CONSTRAINT_NAME spec: rules: - enforce: true - parameters: allowedMemberSubjects: -ALLOWED_MEMBER_1 -ALLOWED_MEMBER_2 allowedPrincipalSets: -ALLOWED_PRINCIPAL_SET_1 -ALLOWED_PRINCIPAL_SET_2 Ganti kode berikut:
ORG_ID
: ID numerik organisasi Google CloudAnda.CONSTRAINT_NAME
: nama batasan yang ingin Anda tetapkan.ALLOWED_MEMBER_1
,ALLOWED_MEMBER_2
: Anggota yang harus dapat diberi peran di organisasi Anda. Contohnya,user:example-user@example.com
.ALLOWED_PRINCIPAL_SET_1
,ALLOWED_PRINCIPAL_SET_2
: Kumpulan akun utama yang seharusnya dapat diberi peran di organisasi Anda. Misalnya,//cloudresourcemanager.googleapis.com/organizations/0123456789012
.
Secara opsional, untuk membuat kebijakan organisasi bersyarat pada tag, tambahkan blok
condition
kerules
. Jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk mengetahui detail selengkapnya, lihat Menetapkan kebijakan organisasi dengan tag.Tetapkan kebijakan dengan perintah
org-policies set-policy
dan flagspec
:gcloud org-policies set-policy
POLICY_PATH \ --update-mask=specGanti
POLICY_PATH
dengan jalur lengkap ke file YAML kebijakan organisasi Anda.
Untuk mempelajari cara menguji kebijakan dalam mode uji coba sebelum menerapkannya, lihat Membuat kebijakan organisasi dalam mode uji coba.
Untuk mempelajari cara menyimulasikan kebijakan sebelum Anda menerapkannya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator
Untuk menetapkan kebijakan organisasi, gunakan metode
organizations.policies.create
.
POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID }/policies
Isi JSON permintaan berisi definisi kebijakan organisasi.
Jika batasan ini tidak mendukung parameter, hapus blok parameters
di bagian rules
.
{
"name": "organizations/ORG_ID /policies/CONSTRAINT_NAME ",
"spec": {
"rules": [
{
"enforce": true,
"parameters": {
"allowedMemberSubjects": [
"ALLOWED_MEMBER_1 ",
"ALLOWED_MEMBER_2 "
],
"allowedPrincipalSets": [
"ALLOWED_PRINCIPAL_SET_1 ",
"ALLOWED_PRINCIPAL_SET_2 "
]
}
}
]
}
}
Ganti kode berikut:
ORG_ID
: ID numerik organisasi Google CloudAnda.CONSTRAINT_NAME
: nama batasan yang ingin Anda tetapkan.ALLOWED_MEMBER_1
,ALLOWED_MEMBER_2
: Anggota yang harus dapat diberi peran di organisasi Anda. Contohnya,user:example-user@example.com
.ALLOWED_PRINCIPAL_SET_1
,ALLOWED_PRINCIPAL_SET_2
: Kumpulan akun utama yang seharusnya dapat diberi peran di organisasi Anda. Misalnya,//cloudresourcemanager.googleapis.com/organizations/0123456789012
.
Secara opsional, untuk membuat kebijakan organisasi bersyarat pada tag, tambahkan blok condition
ke rules
. Jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk mengetahui detail selengkapnya, lihat
Menetapkan kebijakan organisasi dengan tag.
Untuk mempelajari cara menguji kebijakan dalam mode uji coba sebelum menerapkannya, lihat Membuat kebijakan organisasi dalam mode uji coba.
Untuk mempelajari cara menyimulasikan kebijakan sebelum Anda menerapkannya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator
Menggunakan batasan iam.allowedPolicyMemberDomains
untuk menerapkan berbagi yang dibatasi domain
Batasan pembatasan domain adalah jenis
batasan daftar.
ID pelanggan Google Workspace dan Google Cloud ID resource organisasi 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.
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.
Di bagian Policy values, pilih Allow.
Di bagian Nilai kustom, masukkan ID resource organisasi atau ID pelanggan Google Workspace ke dalam kolom.
Dengan memasukkan ID resource organisasi, akun utama berikut dapat diberi peran di organisasi Anda:
- Semua kumpulan identitas tenaga kerja di organisasi Anda
- Semua akun layanan dan workload identity pool di project apa pun dalam organisasi
- Semua agen layanan yang terkait dengan resource di organisasi Anda.
Dengan memasukkan ID pelanggan Google Workspace, akun utama berikut dapat diberi peran di organisasi Anda:
- Semua identitas di semua domain yang terkait dengan ID pelanggan Google Workspace Anda
- Semua kumpulan identitas tenaga kerja di organisasi Anda
- Semua akun layanan dan workload identity pool di project apa pun dalam organisasi
- Semua agen layanan yang terkait dengan resource di organisasi Anda.
Jika Anda ingin menambahkan beberapa ID, klik Nilai kebijakan baru untuk membuat kolom tambahan.
Klik Selesai.
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 Condition type di tab Condition builder, pilih Tag.
Pilih Operator untuk kondisi Anda. Untuk mencocokkan seluruh tag, gunakan operator matches. Untuk mencocokkan kunci tag dan nilai tag, gunakan operator cocok dengan 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 kondisional agar hanya memerlukan salah satu kondisi untuk bernilai 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.
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.
Contoh pesan error
Jika batasan standar iam.allowedPolicyMemberDomains
dilanggar dengan
mencoba menambahkan akun utama yang tidak disertakan dalam daftar allowed_values
,
operasi akan gagal, lalu pesan error akan ditampilkan.
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.
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.
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.
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:
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
.
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 yang menyertakan informasi
pelanggan. ID pelanggan Google Workspace adalah id
.
Mengonfigurasi pengecualian untuk berbagi yang dibatasi domain
Beberapa layanan Google Cloud menggunakan akun layanan, agen layanan, dan akun lainnya untuk melakukan tindakan atas nama Anda. Berbagi yang dibatasi domain dapat mencegah akun ini secara otomatis diberi peran IAM yang mereka butuhkan, yang dapat menyebabkan kegagalan tindakan tertentu.
Tabel berikut mencantumkan tindakan di Google Cloud yang dapat terpengaruh oleh berbagi yang dibatasi domain. Bagian ini juga mencantumkan akun yang perlu diberi peran secara otomatis agar tindakan ini berhasil.
Jika Anda menggunakan kebijakan organisasi kustom atau batasan terkelola iam.managed.allowedPolicyMembers
untuk menerapkan berbagi yang dibatasi domain, sebaiknya tambahkan akun ini sebagai pengecualian ke batasan berbagi yang dibatasi domain Anda. Jika menggunakan
batasan yang telah ditetapkan sebelumnya iam.allowedPolicyMemberDomains
untuk menerapkan berbagi
yang dibatasi domain, Anda mungkin perlu memaksa akses
akun agar akun ini dapat melakukan tindakan yang tercantum.
Tindakan | Akun |
---|---|
Menautkan Google Analytics 360 dengan BigQuery | analytics-processing-dev@system.gserviceaccount.com |
Membagikan data secara publik | allUsers dan allAuthenticatedUsers |
Mengaktifkan sink log BigQuery untuk akun penagihan | bUNIQUE_ID@gcp-sa-loggingiam.gserviceaccount.com |
Mengaktifkan logging akses penyimpanan | cloud-storage-analytics@google.com |
Mengaktifkan Firebase API |
|
Menggunakan Pub/Sub sebagai endpoint untuk aplikasi Google Chat | chat-api-push@system.gserviceaccount.com |
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.