Policy

Kebijakan Identity and Access Management (IAM), yang menentukan kontrol akses untuk resource Google Cloud.

Policy adalah kumpulan bindings. binding mengikat satu atau beberapa members, atau akun utama, ke satu role. Akun utama dapat berupa akun pengguna, akun layanan, grup Google, dan domain (seperti G Suite). role adalah daftar izin yang memiliki nama; setiap role dapat berupa peran IAM yang telah ditetapkan atau peran khusus yang dibuat pengguna.

Untuk beberapa jenis resource Google Cloud, binding juga dapat menentukan condition, yang merupakan ekspresi logis yang mengizinkan akses ke resource hanya jika ekspresi bernilai true. Kondisi dapat menambahkan batasan berdasarkan atribut permintaan, resource, atau keduanya. Untuk mempelajari resource mana yang mendukung kondisi dalam kebijakan IAM-nya, lihat dokumentasi IAM.

Contoh JSON:

    {
      "bindings": [
        {
          "role": "roles/resourcemanager.organizationAdmin",
          "members": [
            "user:mike@example.com",
            "group:admins@example.com",
            "domain:google.com",
            "serviceAccount:my-project-id@appspot.gserviceaccount.com"
          ]
        },
        {
          "role": "roles/resourcemanager.organizationViewer",
          "members": [
            "user:eve@example.com"
          ],
          "condition": {
            "title": "expirable access",
            "description": "Does not grant access after Sep 2020",
            "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
          }
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }

Contoh YAML:

    bindings:
    - members:
      - user:mike@example.com
      - group:admins@example.com
      - domain:google.com
      - serviceAccount:my-project-id@appspot.gserviceaccount.com
      role: roles/resourcemanager.organizationAdmin
    - members:
      - user:eve@example.com
      role: roles/resourcemanager.organizationViewer
      condition:
        title: expirable access
        description: Does not grant access after Sep 2020
        expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
    etag: BwWWja0YfJA=
    version: 3

Untuk deskripsi tentang IAM dan fiturnya, lihat dokumentasi IAM.

Representasi JSON
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "etag": string
}
Kolom
version

integer

Menentukan format kebijakan.

Nilai yang valid adalah 0, 1, dan 3. Permintaan yang menentukan nilai yang tidak valid akan ditolak.

Setiap operasi yang memengaruhi binding peran bersyarat harus menentukan versi 3. Persyaratan ini berlaku untuk operasi berikut:

  • Mendapatkan kebijakan yang menyertakan binding peran bersyarat
  • Menambahkan binding peran bersyarat ke kebijakan
  • Mengubah binding peran bersyarat dalam kebijakan
  • Menghapus binding peran apa pun, dengan atau tanpa syarat, dari kebijakan yang menyertakan kondisi

Penting: Jika menggunakan IAM Conditions, Anda harus menyertakan kolom etag setiap kali memanggil setIamPolicy. Jika Anda menghapus kolom ini, IAM memungkinkan Anda menimpa kebijakan 3 versi dengan kebijakan versi 1, dan semua kondisi dalam kebijakan versi 3 akan hilang.

Jika kebijakan tidak menyertakan ketentuan apa pun, operasi pada kebijakan tersebut dapat menentukan versi yang valid atau membiarkan kolom tidak disetel.

Untuk mempelajari resource mana yang mendukung kondisi dalam kebijakan IAM-nya, lihat dokumentasi IAM.

bindings[]

object (Binding)

Mengaitkan daftar members, atau akun utama, dengan role. Secara opsional, dapat menentukan condition yang menentukan cara dan waktu bindings diterapkan. Setiap bindings harus berisi setidaknya satu akun utama.

bindings dalam Policy dapat merujuk hingga 1.500 akun utama; hingga 250 akun utama ini dapat berupa grup Google. Setiap kemunculan akun utama dihitung dalam batas ini. Misalnya, jika bindings memberikan 50 peran yang berbeda ke user:alice@example.com, dan bukan ke akun utama lainnya, Anda dapat menambahkan 1.450 akun utama lainnya ke bindings di Policy.

auditConfigs[]

object (AuditConfig)

Menentukan konfigurasi logging audit cloud untuk kebijakan ini.

etag

string (bytes format)

etag digunakan untuk kontrol konkurensi optimistis sebagai cara untuk membantu mencegah pembaruan kebijakan secara bersamaan agar tidak menimpa satu sama lain. Sangat disarankan agar sistem menggunakan etag dalam siklus baca-modifikasi-tulis untuk melakukan pembaruan kebijakan guna menghindari kondisi race: etag ditampilkan sebagai respons terhadap getIamPolicy, dan sistem diharapkan untuk memasukkan etag tersebut dalam permintaan ke setIamPolicy untuk memastikan bahwa perubahannya akan diterapkan ke versi kebijakan yang sama.

Penting: Jika menggunakan IAM Conditions, Anda harus menyertakan kolom etag setiap kali memanggil setIamPolicy. Jika Anda menghapus kolom ini, IAM memungkinkan Anda menimpa kebijakan 3 versi dengan kebijakan versi 1, dan semua kondisi dalam kebijakan versi 3 akan hilang.

String berenkode base64.