Membatasi identitas dengan berbagi yang dibatasi domain

Berbagi yang dibatasi domain memungkinkan Anda membatasi berbagi resource berdasarkan domain atau resource organisasi. Jika berbagi yang dibatasi domain aktif, hanya akun utama yang termasuk dalam domain atau organisasi yang diizinkan yang dapat diberi peran IAM di Google Cloud organisasi Anda.

Ada tiga jenis kebijakan organisasi yang dapat Anda gunakan untuk membatasi identitas menurut domain:

  • Batasan terkelola iam.managed.allowedPolicyMembers
  • Kebijakan organisasi kustom yang mereferensikan resource iam.googleapis.com/AllowPolicy
  • Batasan terkelola lama iam.allowedPolicyMemberDomains

Sebelum memulai

Pilih metode yang akan Anda gunakan untuk menerapkan 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 untuk menerapkan berbagi terbatas domain, minta administrator untuk memberi Anda peran IAM Organization policy administrator (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.

Gunakan batasan iam.managed.allowedPolicyMembers untuk menerapkan berbagi yang dibatasi domain

Konsol

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

    Buka Organization policies

  2. 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.

  3. Dari daftar, pilih batasan terkelola Batasi anggota kebijakan yang diizinkan dalam kebijakan izin IAM.

  4. Di halaman Policy details, klik Manage policy.

  5. Di halaman Edit policy, pilih Override parent's policy.

  6. Pilih Tambahkan aturan, lalu perbarui aturan kebijakan organisasi.

  7. Di bagian Enforcement, pilih On.

  8. Secara opsional, untuk membuat kebijakan organisasi bersyarat pada tag, klik Add condition. 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 Mencakup kebijakan organisasi dengan tag.

  9. Di bagian Parameter, konfigurasi set anggota dan akun utama yang ingin Anda beri peran di organisasi Anda, lalu klik Simpan.

  10. Jika perlu melihat pratinjau efek perubahan kebijakan organisasi sebelum diterapkan, klik Uji perubahan. Untuk mengetahui informasi selengkapnya tentang pengujian perubahan kebijakan organisasi, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.

  11. Untuk menerapkan kebijakan organisasi dalam mode uji coba, klik Set dry run policy. Untuk mengetahui informasi selengkapnya, lihat Menguji kebijakan organisasi.

  12. Setelah Anda memverifikasi bahwa kebijakan organisasi dalam mode uji coba berfungsi sebagaimana mestinya, tetapkan kebijakan aktif dengan mengklik Set policy.

gcloud

  1. Buat file YAML untuk menentukan kebijakan organisasi:

    name: organizations/ORG_ID/policies/iam.managed.allowedPolicyMembers
    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 Cloud Anda.

    • ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: Anggota yang ingin Anda beri peran di organisasi Anda—misalnya, user:example-user@example.com.

    • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: Kumpulan akun utama yang ingin Anda berikan peran di organisasi Anda. Contohnya, //cloudresourcemanager.googleapis.com/organizations/0123456789012.

    Secara opsional, agar kebijakan organisasi menjadi 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 Mencakup kebijakan organisasi dengan tag.

  2. Tetapkan kebijakan dengan perintah org-policies set-policy dan flag spec:

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    Ganti POLICY_PATH dengan jalur lengkap ke file YAML kebijakan organisasi Anda.

Untuk mempelajari cara menguji kebijakan dalam mode uji coba sebelum menerapkannya, lihat Menguji kebijakan organisasi.

Untuk mempelajari cara menyimulasikan kebijakan sebelum Anda menerapkannya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.

REST

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 Cloud Anda.

  • CONSTRAINT_NAME: nama batasan yang ingin Anda tetapkan.

  • ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: Anggota yang ingin Anda beri peran di organisasi Anda—misalnya, user:example-user@example.com.

  • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: Kumpulan akun utama yang ingin Anda berikan peran di organisasi Anda. Contohnya, //cloudresourcemanager.googleapis.com/organizations/0123456789012.

Secara opsional, agar kebijakan organisasi menjadi 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 Mencakup kebijakan organisasi dengan tag.

Untuk mempelajari cara menguji kebijakan dalam mode uji coba sebelum menerapkannya, lihat Menguji kebijakan organisasi.

Untuk mempelajari cara menyimulasikan kebijakan sebelum Anda menerapkannya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.

Menggunakan kebijakan organisasi kustom untuk menerapkan berbagi yang dibatasi domain

  1. Buat batasan kustom yang membatasi prinsipal yang dapat diberi peran di organisasi Anda:

    1. 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 Anda, lihat Mengambil set utama organisasi.

      Misalnya, batasan berikut membatasi pemberian peran kepada anggota di organisasi Anda:

      name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly
      resourceTypes: iam.googleapis.com/AllowPolicy
      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 roles
      
    2. Secara opsional, sesuaikan 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 kepada admin@example.com:

      name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly
      resourceTypes: iam.googleapis.com/AllowPolicy
      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
      
  2. Siapkan batasan kustom:

    Konsol

    Untuk membuat batasan kustom, lakukan hal-hal berikut:

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

      Buka Organization policies

    2. Dari pemilih project, pilih project yang ingin Anda tetapkan kebijakan organisasinya.
    3. Klik Custom constraint.
    4. Di kotak Display name, masukkan nama yang dapat dibaca manusia untuk batasan. Nama ini digunakan dalam pesan error dan dapat digunakan untuk identifikasi dan proses debug. Jangan menggunakan informasi identitas pribadi (PII) atau data sensitif dalam nama tampilan karena nama ini dapat terekspos dalam pesan error. Kolom ini dapat berisi hingga 200 karakter.
    5. Di kotak Constraint ID, masukkan ID yang diinginkan untuk batasan kustom baru. Batasan kustom hanya boleh berisi huruf (termasuk huruf besar dan huruf kecil) atau angka, misalnya custom.allowInternalIdentitiesOnly. Kolom ini dapat berisi hingga 70 karakter, tidak termasuk imbuhan (custom.), misalnya, organizations/123456789/customConstraints/custom. Jangan sertakan PII atau data sensitif dalam ID batasan Anda, karena dapat terekspos dalam pesan error.
    6. Di kotak Description, masukkan deskripsi batasan yang dapat dibaca manusia. Deskripsi ini digunakan sebagai pesan error saat kebijakan dilanggar. Sertakan detail tentang alasan pelanggaran kebijakan dapat terjadi dan cara menyelesaikan pelanggaran kebijakan tersebut. Jangan sertakan PII atau data sensitif dalam deskripsi Anda, karena dapat terekspos dalam pesan error. Kolom ini dapat berisi hingga 2.000 karakter.
    7. Di kotak Resource type, pilih nama resource REST Google Cloud yang berisi objek dan kolom yang ingin Anda batasi—misalnya, container.googleapis.com/NodePool. Sebagian besar jenis resource mendukung hingga 20 batasan kustom. Jika Anda mencoba membuat lebih banyak batasan kustom, operasi akan gagal.
    8. Batasan ini hanya dapat diterapkan pada metode REST CREATE.
    9. Untuk melihat metode yang didukung untuk setiap layanan, temukan layanan di Layanan yang mendukung batasan kustom.

    10. Untuk menentukan kondisi, klik Edit condition.
      1. Di panel Add condition, buat kondisi CEL yang mengacu pada resource layanan yang didukung, misalnya resource.management.autoUpgrade == false. Kolom ini dapat berisi hingga 1.000 karakter. Untuk mengetahui detail tentang penggunaan CEL, lihat Common Expression Language. Untuk mengetahui informasi selengkapnya tentang resource layanan yang dapat Anda gunakan dalam batasan kustom, lihat Layanan yang didukung batasan kustom.
      2. Klik Save.
    11. Di bagian Action, pilih apakah akan mengizinkan atau menolak metode yang dievaluasi jika kondisi di atas terpenuhi.
    12. Tindakan penolakan berarti operasi untuk membuat atau memperbarui resource diblokir jika kondisi bernilai benar.

      Tindakan izinkan berarti operasi untuk membuat atau memperbarui resource hanya diizinkan jika kondisi bernilai benar. Setiap kasus lainnya, kecuali yang tercantum secara eksplisit dalam kondisi, akan diblokir.

    13. Klik Create constraint.
    14. Setelah Anda memasukkan nilai ke setiap kolom, konfigurasi YAML yang setara untuk batasan kustom ini akan muncul di sebelah kanan.

    gcloud

    1. Untuk membuat batasan kustom, buat file YAML menggunakan format berikut:
    2. name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: RESOURCE_NAME
      methodTypes:
        - CREATE
      condition: "CONDITION"
      actionType: ACTION
      displayName: DISPLAY_NAME
      description: DESCRIPTION

      Ganti kode berikut:

      • ORGANIZATION_ID: ID organisasi Anda, seperti 123456789.
      • CONSTRAINT_NAME: nama yang Anda inginkan untuk batasan kustom baru Anda. Batasan kustom hanya boleh berisi huruf (termasuk huruf besar dan huruf kecil) atau angka, misalnya, custom.allowInternalIdentitiesOnly. Kolom ini dapat berisi hingga 70 karakter, tidak termasuk awalan (custom.)— misalnya, organizations/123456789/customConstraints/custom. Jangan sertakan PII atau data sensitif dalam ID batasan Anda, karena dapat terekspos dalam pesan error.
      • RESOURCE_NAME: nama resource Google Cloudyang sepenuhnya memenuhi syarat, yang berisi objek dan kolom yang ingin Anda batasi. Contoh, iam.googleapis.com/AllowPolicy. Sebagian besar jenis resource mendukung hingga 20 batasan kustom. Jika Anda mencoba membuat lebih banyak batasan kustom, operasi akan gagal.
      • methodTypes: metode REST yang menerapkan batasan. Hanya dapat berupa CREATE.
      • Untuk melihat metode yang didukung untuk setiap layanan, temukan layanan di Layanan yang mendukung batasan kustom.

      • CONDITION: Kondisi CEL yang ditulis berdasarkan representasi resource layanan yang didukung. Kolom ini dapat berisi hingga 1.000 karakter. Contoh, "resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) ) )".
      • Untuk mengetahui informasi selengkapnya tentang resource yang tersedia untuk menulis kondisi, lihat Resource yang didukung.

      • ACTION: tindakan yang akan diambil jika condition terpenuhi. Hanya dapat berupa ALLOW.
      • Tindakan izinkan berarti jika kondisi bernilai benar, operasi untuk membuat atau memperbarui resource diizinkan. Artinya juga bahwa setiap kasus lain kecuali yang tercantum secara eksplisit dalam kondisi diblokir.

      • DISPLAY_NAME: nama yang mudah dibaca manusia untuk batasan tersebut. Nama ini digunakan dalam pesan error dan dapat digunakan untuk identifikasi dan proses debug. Jangan menggunakan PII atau data sensitif dalam nama tampilan karena nama ini dapat terekspos dalam pesan error. Kolom ini dapat berisi hingga 200 karakter.
      • DESCRIPTION: deskripsi batasan yang mudah dipahami manusia untuk ditampilkan sebagai pesan error saat kebijakan dilanggar. Kolom ini dapat berisi hingga 2.000 karakter.
    3. Setelah membuat file YAML untuk batasan kustom baru, Anda harus menyiapkannya agar tersedia untuk kebijakan organisasi di organisasi Anda. Untuk menyiapkan batasan kustom, gunakan perintah gcloud org-policies set-custom-constraint:
    4. gcloud org-policies set-custom-constraint CONSTRAINT_PATH

      Ganti CONSTRAINT_PATH dengan jalur lengkap ke file batasan kustom Anda. Contoh, /home/user/customconstraint.yaml.

      Setelah operasi ini selesai, batasan kustom Anda tersedia sebagai kebijakan organisasi dalam daftar kebijakan organisasi Google Cloud .

    5. Untuk memverifikasi ada tidaknya batasan kustom, gunakan perintah gcloud org-policies list-custom-constraints:
    6. gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID

      Ganti ORGANIZATION_ID dengan ID resource organisasi Anda.

      Untuk mengetahui informasi selengkapnya, lihat Melihat kebijakan organisasi.

  3. Terapkan kebijakan organisasi kustom:

    Anda dapat menerapkan batasan dengan membuat kebijakan organisasi yang mereferensikannya, lalu menerapkan kebijakan organisasi tersebut ke resource Google Cloud .

    Konsol

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

      Buka Organization policies

    2. Dari pemilih project, pilih project yang ingin Anda tetapkan kebijakan organisasinya.
    3. Dari daftar di halaman Organization policies, pilih batasan Anda untuk melihat halaman Policy details untuk batasan tersebut.
    4. Guna mengonfigurasi kebijakan organisasi untuk resource ini, klik Manage policy.
    5. Di halaman Edit policy, pilih Override parent's policy.
    6. Klik Add a rule.
    7. Di bagian Enforcement, pilih apakah kebijakan organisasi ini diterapkan atau tidak.
    8. Opsional: Agar kebijakan organisasi menjadi 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 Mencakup kebijakan organisasi dengan tag.
    9. Klik Test changes untuk menyimulasikan efek kebijakan organisasi. Untuk mengetahui informasi selengkapnya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.
    10. Untuk menerapkan kebijakan organisasi dalam mode uji coba, klik Set dry run policy. Untuk informasi selengkapnya, lihat Menguji kebijakan organisasi.
    11. Setelah Anda memverifikasi bahwa kebijakan organisasi dalam mode uji coba berfungsi sebagaimana mestinya, tetapkan kebijakan aktif dengan mengklik Set policy.

    gcloud

    1. Untuk membuat kebijakan organisasi dengan aturan boolean, buat file YAML kebijakan yang mereferensikan batasan:
    2. name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      
      dryRunSpec:
        rules:
        - enforce: true

      Ganti kode berikut:

      • PROJECT_ID: project tempat Anda ingin menerapkan batasan Anda.
      • CONSTRAINT_NAME: nama yang Anda tentukan untuk batasan kustom. Contoh, custom.allowInternalIdentitiesOnly.
    3. Untuk menerapkan kebijakan organisasi dalam mode uji coba, jalankan perintah berikut dengan tanda dryRunSpec:
    4. gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec

      Ganti POLICY_PATH dengan jalur lengkap ke file YAML kebijakan organisasi Anda. Kebijakan ini memerlukan waktu hingga 15 menit untuk diterapkan.

    5. Setelah Anda memverifikasi bahwa kebijakan organisasi dalam mode uji coba berfungsi sebagaimana mestinya, tetapkan kebijakan aktif dengan perintah org-policies set-policy dan tanda spec:
    6. gcloud org-policies set-policy POLICY_PATH --update-mask=spec

      Ganti POLICY_PATH dengan jalur lengkap ke file YAML kebijakan organisasi Anda. Kebijakan ini memerlukan waktu hingga 15 menit untuk diterapkan.

Gunakan batasan iam.allowedPolicyMemberDomains untuk menerapkan berbagi yang dibatasi domain

Batasan pembatasan domain adalah batasan terkelola lama dengan daftar constraint_type. Anda dapat menentukan set akun utama organisasi atau ID pelanggan Google Workspace dalam daftar allowed_values batasan domain. Untuk mengetahui informasi selengkapnya, lihat Kumpulan prinsipal organisasi versus ID pelanggan Google Workspace.

Set utama organisasi dan ID Google Workspace Anda tidak otomatis diizinkan. Untuk mengizinkan prinsipal di organisasi Anda mengakses resource di organisasi Anda, set prinsipal organisasi atau ID Google Workspace Anda harus disertakan sebagai set prinsipal yang diizinkan.

Batasan pembatasan domain tidak mendukung penolakan nilai, dan kebijakan organisasi tidak dapat disimpan dengan ID dalam daftar denied_values.

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

Konsol

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

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

    Buka Organization policies

  2. Dari pemilih project, pilih resource organisasi yang ingin Anda tetapkan kebijakan organisasinya.

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

  4. Di halaman Policy details, klik Manage policy.

  5. Di bagian Berlaku untuk, pilih Ganti kebijakan induk.

  6. Klik Add a rule.

  7. Di bagian Nilai kebijakan, pilih kustom.

  8. Di bagian Policy type, pilih Allow.

  9. Di bagian Nilai kustom, masukkan set akun utama 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 berlaku.

      1. Di menu Jenis kondisi pada 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 nilai nama yang diberi namespace dari tag. 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 mewajibkan semuanya dengan mengaktifkan Dan. Anda dapat menetapkan logika bersyarat agar hanya satu kondisi yang harus benar dengan mengaktifkan 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 mencakup batasan pembatasan domain, jalankan perintah berikut:

Untuk menetapkan kebijakan organisasi yang mencakup batasan 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:

Hanya identitas yang ditentukan dalam daftar allowed_values yang akan diizinkan dalam kebijakan izinkan setelah kebijakan organisasi ini diterapkan. Agar diizinkan, akun utama harus berada di set akun utama organisasi yang ditentukan atau menjadi bagian dari domain Google Workspace yang ditentukan.

Misalnya, jika Anda membuat kebijakan organisasi yang hanya mengizinkan ID pelanggan domain Google Workspace perusahaan Anda, maka hanya pokok yang terkait dengan domain tersebut yang dapat ditambahkan ke kebijakan yang diizinkan mulai saat itu.

Contoh pesan error

Jika batasan terkelola lama iam.allowedPolicyMemberDomains dilanggar dengan mencoba menambahkan akun utama yang tidak disertakan dalam daftar allowed_values, operasi akan gagal dan 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 set utama organisasi

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

console

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

  1. Buka konsol Google Cloud :

    Buka Google Cloud konsol

  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 resource organisasi Anda.

gcloud

Untuk menemukan ID resource organisasi Anda, jalankan perintah berikut:

gcloud organizations list

Perintah ini mencantumkan semua resource organisasi yang Anda miliki, 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 dimiliki oleh altostrat.com, yang mencakup ID resource organisasi.

Setelah memiliki ID resource organisasi, Anda harus menggunakan ID yang benar untuk kumpulan prinsipal yang menjadi anggotanya. Contoh:

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

Memasukkan set principal organisasi memungkinkan principal berikut diberi peran di organisasi Anda:

  • Semua workforce identity pool di organisasi Anda
  • Semua akun layanan dan workload identity pool dalam project apa pun di organisasi
  • Semua agen layanan yang terkait dengan resource di organisasi Anda.

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

Mendapatkan ID pelanggan Google Workspace

Dengan memasukkan ID pelanggan Google Workspace, pokok keamanan berikut dapat diberi peran di organisasi Anda:

  • Semua identitas di semua domain yang terkait dengan ID pelanggan Google Workspace Anda
  • Semua workforce identity pool di organisasi Anda
  • Semua akun layanan dan workload identity pool dalam project apa pun di organisasi
  • Semua agen layanan yang terkait dengan resource di organisasi Anda.

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 memiliki izin resourcemanager.organizations.get untuk Anda:

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 Google Workspace Directory API:

    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.

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 diberi peran IAM yang diperlukan secara otomatis, sehingga dapat menyebabkan kegagalan tindakan tertentu.

Tabel berikut mencantumkan tindakan di Google Cloud yang dapat terpengaruh oleh berbagi dengan batasan 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, pertimbangkan untuk menambahkan akun ini sebagai pengecualian pada batasan berbagi yang dibatasi domain. Untuk menambahkan akun sebagai pengecualian, tambahkan ID akun utama untuk akun tersebut ke daftar anggota yang diizinkan.

Jika Anda menggunakan batasan terkelola lama iam.allowedPolicyMemberDomains untuk menerapkan berbagi dengan batasan domain, Anda mungkin perlu memaksa akses akun untuk akun ini agar dapat melakukan tindakan yang tercantum.

Tindakan ID utama
Mengaktifkan sink log BigQuery untuk akun penagihan serviceAccount:bUNIQUE_ID@gcp-sa-logging.iam.gserviceaccount.com
Mengaktifkan logging akses penyimpanan serviceAccount:cloud-storage-analytics@google.com
Menggunakan Pub/Sub sebagai endpoint untuk aplikasi Google Chat serviceAccount:chat-api-push@system.gserviceaccount.com
Menggunakan Pub/Sub untuk menerima notifikasi developer real-time dari Google Play serviceAccount:google-play-developer-notifications@system.gserviceaccount.com
Menggunakan Pub/Sub untuk menerima pemberitahuan anggaran Penagihan Cloud serviceAccount:billing-budget-alert@system.gserviceaccount.com
Menggunakan Pub/Sub untuk menerima pemberitahuan anomali biaya Penagihan Cloud serviceAccount:cloud-billing-finops-alert@system.gserviceaccount.com
Menggunakan URL bertanda tangan dengan Cloud CDN serviceAccount:service-PROJECT_NUMBER@cloud-cdn-fill.iam.gserviceaccount.com
Autentikasi origin pribadi dengan Cloud CDN serviceAccount:service-PROJECT_NUMBER@https-lb.iam.gserviceaccount.com

Layanan publik Cloud Run

Cloud Run memungkinkan Anda membuat layanan menjadi publik. Namun, jika Anda menerapkan berbagi yang dibatasi domain, pengguna di luar organisasi Anda tidak akan dapat mengakses layanan Cloud Run publik.

Untuk mengizinkan pengguna mengakses layanan Cloud Run publik, Anda harus menonaktifkan pemeriksaan IAM Cloud Run Invoker untuk layanan Cloud Run. Untuk mengetahui informasi selengkapnya, lihat Menonaktifkan Pemanggil Cloud Run untuk layanan.

Membagikan data lain secara publik

Jika Anda menggunakan kebijakan organisasi kustom untuk menerapkan berbagi dengan batasan domain, Anda dapat menambahkan pengecualian ke kebijakan organisasi untuk mengizinkan berbagi data publik.

Membagikan data secara publik melibatkan prinsipal khusus allUsers dan allAuthenticatedUsers. Jika Anda perlu membagikan data secara publik saat menggunakan berbagi dengan batasan domain, Anda harus menambahkan pengecualian untuk prinsipal ini. Pengecualian hanya dapat ditambahkan jika Anda menggunakan kebijakan organisasi kustom untuk menerapkan berbagi yang dibatasi domain.

Untuk menambahkan pengecualian untuk allUsers dan allAuthenticatedUsers, buat kebijakan organisasi kustom bersyarat berdasarkan tag resource.

  1. Buat kunci tag pada resource organisasi Anda.

    gcloud resource-manager tags keys create allUsersIngress \
      --parent=organizations/ORGANIZATION_ID
    

    Ganti ORGANIZATION_ID dengan ID organisasi Anda.

  2. Buat nilai tag untuk kunci tag yang Anda buat.

    gcloud resource-manager tags values create True \
    --parent=ORGANIZATION_ID/allUsersIngress \
    --description="Allow allUsers to access internal Cloud Run services"
    
  3. Lampirkan tag ke resource yang ingin Anda bagikan secara publik.

  4. Buat batasan kustom menggunakan fungsi CEL memberSubjectMatches dalam ekspresi kondisi batasan Anda.

    Misalnya, ekspresi kondisi berikut membatasi pemberian peran kepada anggota di organisasi Anda, allUsers, dan allAuthenticatedUsers:

    name: organizations/ORGANIZATION_ID/customConstraints/custom.allowInternalAndSpecialIdentitiesOnly
    resourceTypes: iam.googleapis.com/AllowPolicy
    methodTypes:
      - CREATE
      - UPDATE
    condition:
      "resource.bindings.all(
        binding,
        binding.members.all(member,
          (
            MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID'])
            ||
            MemberSubjectMatches(member, ['allUsers', 'allAuthenticatedUsers'])
          )
        )
      )"
    actionType: ALLOW
    displayName: Only allow organization members, allusers, and allAuthenticatedUsers to be granted roles
    
  5. Buat kebijakan organisasi yang menerapkan batasan kustom.

    name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
    spec:
      rules:
      - allowAll: true
        condition:
          expression: resource.matchTag("ORGANIZATION_ID/allUsersIngress", "True")
          title: allowAllUsersIngress
    
  6. Terapkan kebijakan organisasi.

    gcloud org-policies set-policy POLICY_PATH
    

    Ganti POLICY_PATH dengan jalur dan nama file kebijakan organisasi Anda.

Kebijakan organisasi bersyarat memungkinkan Anda memberikan izin kepada identitas allUsers pada resource yang diberi tag allUsersIngress: true.

Memaksa akses akun

Jika Anda perlu memaksakan akses akun untuk project yang melanggar batasan domain:

  1. Hapus kebijakan organisasi yang berisi batasan domain.

  2. Beri 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 izin.