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 role
tunggal. 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 bawaan IAM 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 dievaluasi menjadi 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 mengetahui deskripsi IAM dan fitur-fiturnya, lihat dokumentasi IAM.
Representasi JSON |
---|
{ "version": integer, "bindings": [ { object ( |
Kolom | |
---|---|
version |
Menentukan format kebijakan. Nilai yang valid adalah Setiap operasi yang memengaruhi binding peran bersyarat harus menentukan versi
Penting: Jika menggunakan IAM Conditions, Anda harus menyertakan kolom Jika kebijakan tidak menyertakan kondisi apa pun, operasi pada kebijakan tersebut dapat menentukan versi yang valid atau membiarkan kolom tidak ditetapkan. Untuk mempelajari resource mana yang mendukung kondisi dalam kebijakan IAM-nya, lihat dokumentasi IAM. |
bindings[] |
Mengaitkan daftar
|
auditConfigs[] |
Menentukan konfigurasi logging audit cloud untuk kebijakan ini. |
etag |
Penting: Jika menggunakan IAM Conditions, Anda harus menyertakan kolom String berenkode base64. |
Binding
Mengaitkan members
, atau akun utama, dengan role
.
Representasi JSON |
---|
{
"role": string,
"members": [
string
],
"condition": {
object ( |
Kolom | |
---|---|
role |
Peran yang ditetapkan ke daftar Untuk ringkasan peran dan izin IAM, lihat dokumentasi IAM. Untuk mengetahui daftar peran bawaan yang tersedia, lihat di sini. |
members[] |
Menentukan akun utama yang meminta akses untuk resource Google Cloud.
|
condition |
Kondisi yang terkait dengan binding ini. Jika kondisi bernilai Jika kondisi bernilai Untuk mempelajari resource mana yang mendukung kondisi dalam kebijakan IAM-nya, lihat dokumentasi IAM. |
Expr
Merepresentasikan ekspresi tekstual dalam sintaksis Common Expression Language (CEL). CEL adalah bahasa ekspresi mirip C. Sintaksis dan semantik CEL didokumentasikan di https://github.com/google/cel-spec.
Contoh (Perbandingan):
title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"
Contoh (Kesetaraan):
title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"
Contoh (Logika):
title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"
Contoh (Manipulasi Data):
title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"
Variabel dan fungsi yang tepat yang dapat direferensikan dalam ekspresi ditentukan oleh layanan yang mengevaluasinya. Lihat dokumentasi layanan untuk informasi tambahan.
Representasi JSON |
---|
{ "expression": string, "title": string, "description": string, "location": string } |
Kolom | |
---|---|
expression |
Representasi tekstual ekspresi dalam sintaksis Common Expression Language. |
title |
Opsional. Judul untuk ekspresi, yaitu string singkat yang menjelaskan tujuannya. Ini dapat digunakan, misalnya, di UI yang memungkinkan untuk memasukkan ekspresi. |
description |
Opsional. Deskripsi ekspresi. Ini adalah teks yang lebih panjang yang menjelaskan ekspresi, misalnya saat diarahkan ke ekspresi tersebut di UI. |
location |
Opsional. String yang menunjukkan lokasi ekspresi untuk pelaporan error, misalnya nama file dan posisi dalam file. |
AuditConfig
Menentukan konfigurasi audit untuk layanan. Konfigurasi menentukan jenis izin yang dicatat ke dalam log, dan identitas apa, jika ada, yang dikecualikan dari logging. AuditConfig harus memiliki satu atau beberapa AuditLogConfig.
Jika ada AuditConfigs untuk allServices
dan layanan tertentu, gabungan dari kedua AuditConfigs tersebut akan digunakan untuk layanan tersebut: log_types yang ditentukan di setiap AuditConfig diaktifkan, dan exemptedMembers di setiap AuditLogConfig dikecualikan.
Contoh Kebijakan dengan beberapa AuditConfigs:
{
"auditConfigs": [
{
"service": "allServices",
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:jose@example.com"
]
},
{
"logType": "DATA_WRITE"
},
{
"logType": "ADMIN_READ"
}
]
},
{
"service": "sampleservice.googleapis.com",
"auditLogConfigs": [
{
"logType": "DATA_READ"
},
{
"logType": "DATA_WRITE",
"exemptedMembers": [
"user:aliya@example.com"
]
}
]
}
]
}
Untuk sampleservice, kebijakan ini mengaktifkan logging DATA_READ, DATA_WRITE, dan ADMIN_READ. Tindakan ini juga mengecualikan jose@example.com
dari logging DATA_READ, dan aliya@example.com
dari logging DATA_WRITE.
Representasi JSON |
---|
{
"service": string,
"auditLogConfigs": [
{
object ( |
Kolom | |
---|---|
service |
Menentukan layanan yang akan diaktifkan untuk logging audit. Misalnya, |
auditLogConfigs[] |
Konfigurasi untuk logging setiap jenis izin. |
AuditLogConfig
Memberikan konfigurasi untuk mencatat jenis izin. Contoh:
{
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:jose@example.com"
]
},
{
"logType": "DATA_WRITE"
}
]
}
Tindakan ini akan mengaktifkan logging 'DATA_READ' dan 'DATA_WRITE', sekaligus mengecualikan jose@example.com dari logging DATA_READ.
Representasi JSON |
---|
{
"logType": enum ( |
Kolom | |
---|---|
logType |
Jenis log yang diaktifkan konfigurasi ini. |
exemptedMembers[] |
Menentukan identitas yang tidak menyebabkan logging untuk jenis izin ini. Mengikuti format |
LogType
Daftar jenis izin yang valid yang logging-nya dapat dikonfigurasi. Operasi tulis admin selalu dicatat ke dalam log, dan tidak dapat dikonfigurasi.
Enum | |
---|---|
LOG_TYPE_UNSPECIFIED |
Kasus default. Seharusnya tidak seperti ini. |
ADMIN_READ |
Admin membaca. Contoh: CloudIAM getIamPolicy |
DATA_WRITE |
Operasi tulis data. Contoh: CloudSQL Users create |
DATA_READ |
Pembacaan data. Contoh: Daftar Pengguna CloudSQL |