Membatasi identitas dengan berbagi yang dibatasi domain

Berbagi yang dibatasi domain memungkinkan Anda membatasi berbagi resource berdasarkan resource domain atau organisasi. Jika berbagi yang dibatasi domain aktif, hanya akun utama yang termasuk dalam domain atau organisasi yang diizinkan yang dapat diberi peran IAM di organisasi Cloud de Confiance 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 fitur berbagi yang dibatasi domain. Untuk mempelajari lebih lanjut manfaat dan kelemahan setiap metode, lihat Metode untuk membatasi berbagi berdasarkan domain.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk menerapkan berbagi yang dibatasi 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.

Menggunakan batasan iam.managed.allowedPolicyMembers untuk menerapkan fitur berbagi yang dibatasi domain

Konsol

  1. Di konsol Cloud de Confiance , buka halaman Organization policies.

    Buka Organization policies

  2. Dari pemilih project, pilih project, folder, atau organisasi yang ingin Anda edit kebijakan organisasinya. Halaman Organization policies yang muncul menampilkan daftar batasan kebijakan organisasi yang dapat difilter dan tersedia untuk resource ini.

  3. Dari daftar, pilih batasan terkelola Restrict allowed policy members in IAM allow policies.

  4. Di halaman Policy details, klik Manage policy.

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

  6. Pilih Add a rule, 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 Parameters, konfigurasikan anggota dan set akun utama yang ingin Anda beri peran di organisasi, lalu klik Save.

  10. Atau, untuk melihat pratinjau efek perubahan kebijakan organisasi sebelum diterapkan, klik Test changes. Untuk mengetahui informasi selengkapnya tentang cara menguji 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 Cloud de Confiance Anda.

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

    • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: Set akun utama yang ingin Anda beri peran dalam organisasi. Contohnya, //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 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 Cloud de Confiance Anda.

  • CONSTRAINT_NAME: nama batasan yang ingin Anda tetapkan.

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

  • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: Set akun utama yang ingin Anda beri peran dalam organisasi. Contohnya, //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 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 fitur berbagi yang dibatasi domain

  1. Buat batasan kustom yang membatasi akun utama mana 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 akun 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, 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.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 Cloud de Confiance , 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 nama tampilan, 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 Cloud de Confiance yang berisi objek dan kolom yang ingin Anda batasi—misalnya, container.googleapis.com/Cluster. 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 CREATE REST.
    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 imbuhan (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 Cloud de Confianceyang 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 dapat dibaca manusia untuk batasan. 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 Cloud de Confiance by S3NS .

    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 Cloud de Confiance by S3NS .

    Konsol

    1. Di konsol Cloud de Confiance , 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 mengetahui 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.

Menggunakan batasan iam.allowedPolicyMemberDomains untuk menerapkan fitur 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 dari batasan pembatasan domain. Untuk mengetahui informasi selengkapnya, lihat Set akun utama organisasi versus ID pelanggan Google Workspace.

Set akun utama organisasi dan ID Google Workspace Anda tidak diizinkan secara otomatis. Agar akun utama di organisasi Anda dapat mengakses resource di organisasi Anda, set akun utama organisasi atau ID Google Workspace Anda harus disertakan sebagai set akun utama 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 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.

Konsol

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

  1. Di konsol Cloud de Confiance , 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 Applies to, pilih Override parent's policy.

  6. Klik Add a rule.

  7. Di bagian Policy values, pilih kustom.

  8. Di bagian Policy type, pilih Allow.

  9. Di bagian Custom values, 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 Add condition.

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

      1. Di menu Condition type di tab Condition builder, 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 tag yang di-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 semua kondisi dengan mengaktifkan Dan. Anda dapat menetapkan logika bersyarat agar hanya memerlukan salah satu kondisi yang 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 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 sebagai 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 izin setelah kebijakan organisasi ini diterapkan. Agar diizinkan, akun utama harus berada dalam set akun utama organisasi yang ditentukan atau bagian dari domain Google Workspace yang ditentukan.

Misalnya, jika Anda membuat kebijakan organisasi yang hanya mengizinkan ID pelanggan domain Google Workspace perusahaan Anda, hanya akun utama yang terkait dengan domain tersebut yang dapat ditambahkan ke kebijakan izin mulai saat itu dan seterusnya.

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 akun utama organisasi

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

console

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

  1. Buka konsol Cloud de Confiance :

    Buka konsol Cloud de Confiance

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

Halaman Settings 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 bergabung, 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 akun utama yang termasuk di dalamnya. Contoh:

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

Memasukkan set akun utama organisasi memungkinkan akun utama berikut diberi peran di organisasi Anda:

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

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

Mengambil ID pelanggan Google Workspace

Memasukkan ID pelanggan Google Workspace memungkinkan akun utama berikut 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 di project mana pun dalam 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 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 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 mengkueri 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 menyertakan informasi pelanggan. ID pelanggan Google Workspace adalah id.

Mengonfigurasi pengecualian untuk berbagi yang dibatasi domain

Beberapa layanan Cloud de Confiance 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, yang dapat menyebabkan tindakan tertentu gagal.

Tabel berikut mencantumkan tindakan di Cloud de Confiance yang dapat terpengaruh oleh berbagi yang dibatasi domain. Diagram 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 pembatasan domain, pertimbangkan untuk menambahkan akun ini sebagai pengecualian pada batasan pembatasan domain Anda. 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 yang dibatasi domain, Anda mungkin perlu memaksa akses akun agar akun ini dapat melakukan tindakan yang tercantum.

Tindakan ID utama
Mengaktifkan sink log BigQuery untuk akun penagihan serviceAccount:bUNIQUE_ID@gcp-sa-logging.s3ns-system.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@s3ns-system.system.gserviceaccount.com
Menggunakan Pub/Sub untuk menerima notifikasi developer real-time dari Google Play serviceAccount:google-play-developer-notifications@s3ns-system.system.gserviceaccount.com
Menggunakan Pub/Sub untuk menerima pemberitahuan anggaran Penagihan Cloud serviceAccount:billing-budget-alert@s3ns-system.system.gserviceaccount.com
Menggunakan Pub/Sub untuk menerima pemberitahuan anomali biaya Penagihan Cloud serviceAccount:cloud-billing-finops-alert@s3ns-system.system.gserviceaccount.com
Menggunakan URL bertanda tangan dengan Cloud CDN serviceAccount:service-PROJECT_NUMBER@cloud-cdn-fill.s3ns-system.iam.gserviceaccount.com
Autentikasi origin pribadi dengan Cloud CDN serviceAccount:service-PROJECT_NUMBER@https-lb.s3ns-system.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.

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

Membagikan data lain secara publik

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

Membagikan data secara publik melibatkan akun utama khusus allUsers dan allAuthenticatedUsers. Jika Anda perlu membagikan data secara publik saat menggunakan berbagi yang dibatasi domain, Anda perlu menambahkan pengecualian untuk akun utama ini. Penambahan pengecualian hanya dapat dilakukan jika Anda menggunakan kebijakan organisasi kustom untuk menerapkan berbagi yang dibatasi domain.

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

  1. Buat kunci tag di 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 ke identitas allUsers pada resource yang diberi tag allUsersIngress: true.

Memaksa akses akun

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

  1. Hapus kebijakan organisasi yang berisi batasan pembatasan domain.

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