- Representasi JSON
- Binding
- Pengalaman
- AuditConfig
- AuditLogConfig
- LogType
- Aturan
- Tindakan
- Kondisi
- ATR
- ATR
- Operator
- LogConfig
- CounterOptions
- CustomField
- DataAccessOptions
- LogMode
- CloudAuditOptions
- LogName
- AuthorizationLoggingOptions
- PermissionType
- PermissionType
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 ( |
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 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[] |
Mengaitkan daftar
|
auditConfigs[] |
Menentukan konfigurasi logging audit cloud untuk kebijakan ini. |
rules[] |
Jika lebih dari satu aturan ditentukan, aturan diterapkan dengan cara berikut: - Semua aturan LOG yang cocok selalu diterapkan. - Jika ada aturan DENY/DENY_WITH_LOG yang cocok, izin ditolak. Logging akan diterapkan jika satu atau beberapa aturan yang cocok memerlukan logging. - Atau, jika aturan ALLOW/ALLOW_WITH_LOG cocok, izin akan diberikan. Logging akan diterapkan jika satu atau beberapa aturan yang cocok memerlukan logging. - Jika tidak, jika tidak ada aturan yang berlaku, izin ditolak. |
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 mengetahui ringkasan peran dan izin IAM, baca dokumentasi IAM. Untuk daftar peran standar 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. |
bindingId |
|
Expr
Mewakili ekspresi tekstual dalam sintaksis Common Expression Language (CEL). CEL adalah bahasa ekspresi seperti 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 (Persamaan):
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 persis 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 pendek yang menjelaskan tujuannya. Ini dapat digunakan, mis. di UI yang memungkinkan untuk memasukkan ekspresi. |
description |
Opsional. Deskripsi ekspresi. Ini adalah teks yang lebih panjang yang mendeskripsikan ekspresi, misalnya saat kursor diarahkan ke atasnya dalam 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 dalam log, dan identitas apa, jika ada, yang dikecualikan dari logging. AuditConfig harus memiliki satu atau beberapa AuditLogConfigs.
Jika terdapat AuditConfigs untuk allServices
dan layanan tertentu, gabungan dari dua AuditConfigs akan digunakan untuk layanan tersebut: log_types yang ditentukan di setiap AuditConfig diaktifkan, dan anggota yang dikecualikan di setiap AuditLogConfig dikecualikan.
Contoh Kebijakan dengan beberapa AuditConfig:
{
"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 memungkinkan logging DATA_READ, DATA_WRITE, dan ADMIN_READ. Kode 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
Menyediakan konfigurasi untuk mencatat jenis izin ke dalam log. Contoh:
{
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:jose@example.com"
]
},
{
"logType": "DATA_WRITE"
}
]
}
Tindakan ini memungkinkan 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 |
ignoreChildExemptions |
|
LogType
Daftar jenis izin valid yang logging dapat dikonfigurasi. Penulisan admin selalu dicatat dalam log, dan tidak dapat dikonfigurasi.
Enum | |
---|---|
LOG_TYPE_UNSPECIFIED |
Huruf besar/kecil default. Tidak boleh seperti ini. |
ADMIN_READ |
yang dibaca admin. Contoh: CloudIAM getIamPolicy |
DATA_WRITE |
Penulisan data. Contoh: Pengguna CloudSQL membuat |
DATA_READ |
Pembacaan data. Contoh: Daftar Pengguna CloudSQL |
Aturan
Aturan yang akan diterapkan dalam Kebijakan.
Representasi JSON |
---|
{ "description": string, "permissions": [ string ], "action": enum ( |
Kolom | |
---|---|
description |
Deskripsi aturan yang dapat dibaca manusia. |
permissions[] |
Izin adalah string bentuk ' |
action |
Diperlukan |
in[] |
Jika satu atau beberapa klausa 'in' ditentukan, aturan cocok jika PRINCIPAL/AUTHORITY_SELECTOR ada di setidaknya salah satu entri ini. |
notIn[] |
Jika satu atau beberapa klausa 'notIn' ditentukan, aturan akan cocok jika PRINCIPAL/AUTHORITY_SELECTOR tidak ada dalam entri. |
conditions[] |
Pembatasan tambahan yang harus dipenuhi. Semua kondisi harus lolos agar aturan cocok. |
logConfig[] |
Konfigurasi yang ditampilkan ke pemanggil CheckPolicy untuk setiap entri yang cocok dengan tindakan LOG. |
Tindakan
Jenis tindakan aturan.
Enum | |
---|---|
NO_ACTION |
Default tidak ada tindakan. |
ALLOW |
Kecocokan akses pemberian 'Entries'. |
ALLOW_WITH_LOG |
Mencocokkan 'Entries', memberikan akses dan pemanggil berjanji untuk mencatat permintaan sesuai dengan log_configs yang dikembalikan. |
DENY |
Mencocokkan akses menolak 'Entries'. |
DENY_WITH_LOG |
Mencocokkan 'Entries' menolak akses dan pemanggil berjanji untuk mencatat permintaan per log_configs yang dikembalikan. |
LOG |
Mencocokkan 'Entri' akan memberi tahu IAM.Check pemanggil untuk membuat log. |
Kondisi
Kondisi yang harus dipenuhi.
Representasi JSON |
---|
{ "op": enum ( |
Kolom | |
---|---|
op |
Operator untuk menerapkan subjek. |
values[] |
Objek kondisi. |
Kolom union Subject . Subjek ketentuan. Subject hanya ada berupa salah satu diantara berikut: |
|
iam |
Atribut tepercaya yang disediakan oleh sistem IAM. |
sys |
Atribut tepercaya yang disediakan oleh layanan apa pun yang memiliki resource dan menggunakan sistem IAM untuk kontrol akses. |
svc |
Atribut tepercaya yang dilepaskan oleh layanan. |
ATR
Jenis atribut.
Enum | |
---|---|
NO_ATTR |
Non-atribut default. |
AUTHORITY |
Pemilih otoritas utama atau (jika ada). |
ATTRIBUTION |
Akun utama (meskipun jika ada pemilih otoritas), yang hanya boleh digunakan untuk atribusi, bukan otorisasi. |
SECURITY_REALM |
Setiap realm keamanan dalam IAMContext (go/security-realms). Jika digunakan dengan IN, kondisi tersebut menunjukkan "realm permintaan mana pun cocok dengan salah satu nilai yang diberikan; dengan NOT_IN, "tidak ada realm yang cocok dengan nilai yang diberikan". Perhatikan bahwa nilai dapat berupa: - 'self:campus' (yaitu, klien yang berada di kampus yang sama) - 'self:metro' (yaitu, klien yang berada di metro yang sama) - 'self:cloud-region' (yaitu, mengizinkan koneksi dari klien yang berada di region cloud yang sama) - 'self:metro' (yaitu, klien yang berada dalam metro yang sama) - 'self:cloud-region' (yaitu, mengizinkan koneksi dari klien yang berada di region cloud yang sama) - 'self:prod-region's memungkinkan koneksi yang Lihat go/security-realms-glosarium#guardian untuk informasi selengkapnya.) - 'self' [TIDAK DIGUNAKAN LAGI] (yaitu, mengizinkan koneksi dari klien yang berada di lingkup keamanan yang sama, yang saat ini tetapi tidak dijamin berukuran kampus) - sebuah ranah (misalnya, 'campus-abc') - grup realm (mis., 'realms-for-borg-cell-xx', lihat: go/realm-groups) Pertandingan ditentukan oleh pemeriksaan keanggotaan grup realm yang dilakukan oleh objek RealmAclRep (go/realm-acl-howto). Dilarang memberikan akses berdasarkan ketiadaan realm, sehingga kondisi realm hanya dapat digunakan dalam konteks "positif" (misalnya, ALLOW/IN atau DENY/NOT_IN). |
APPROVER |
Pemberi persetujuan (berbeda dengan pemohon) yang telah memberikan otorisasi untuk permintaan ini. Jika digunakan dengan IN, kondisi tersebut menunjukkan bahwa salah satu pemberi persetujuan yang terkait dengan permintaan cocok dengan akun utama yang ditentukan, atau merupakan anggota grup yang ditentukan. Pemberi persetujuan hanya dapat memberikan akses tambahan, sehingga hanya digunakan dalam konteks yang benar-benar positif (misalnya ALLOW/IN atau DENY/NOT_IN). |
JUSTIFICATION_TYPE |
Jenis justifikasi apa yang diberikan dalam permintaan ini. Nilai string harus cocok dengan nama enum dari security.credentials.JustificationType, misalnya "MANUAL_STRING". Anda dilarang memberikan akses berdasarkan tidak adanya justifikasi, sehingga kondisi justifikasi hanya dapat digunakan dalam konteks "positif" (misalnya, ALLOW/IN atau DENY/NOT_IN). Beberapa justifikasi, misalnya ID Buganizer dan alasan yang dimasukkan secara manual, bersifat normal dan didukung. |
CREDENTIALS_TYPE |
Jenis kredensial yang diberikan bersama permintaan ini. Nilai string harus cocok dengan nama enum dari security_loas_l2.CredentialsType - saat ini, hanya CREDS_TYPE_EMERGENCY yang didukung. Anda tidak boleh memberikan akses berdasarkan tidak adanya jenis kredensial, sehingga kondisi hanya dapat digunakan dalam konteks "positif" (mis., ALLOW/IN atau DENY/NOT_IN). |
CREDS_ASSERTION |
CARA BERCERITA EKSPERIMENTAL -- JANGAN DIGUNAKAN. Kondisi tersebut hanya dapat digunakan dalam konteks "positif" (misalnya, ALLOW/IN atau DENY/NOT_IN). |
ATR
Jenis atribut.
Enum | |
---|---|
NO_ATTR |
Jenis non-atribut default |
REGION |
Region resource |
SERVICE |
Nama layanan |
NAME |
Nama fasilitas |
IP |
Alamat IP pemanggil |
Operator
Jenis operator kondisi.
Enum | |
---|---|
NO_OP |
Tanpa pengoperasian default. |
EQUALS |
TIDAK DIGUNAKAN LAGI. Sebagai gantinya, gunakan IN. |
NOT_EQUALS |
TIDAK DIGUNAKAN LAGI. Sebagai gantinya, gunakan NOT_IN. |
IN |
Kondisi ini benar jika subjek (atau elemen apa pun darinya jika berupa kumpulan) cocok dengan salah satu nilai yang diberikan. |
NOT_IN |
Kondisi ini benar jika subjek (atau setiap elemennya jika berupa set) tidak cocok dengan nilai yang diberikan. |
DISCHARGED |
Subjek habis |
LogConfig
Menentukan jenis log yang harus ditulis pemanggil
Representasi JSON |
---|
{ // Union field |
Kolom | |
---|---|
Kolom union type . Harus ditetapkan type hanya dapat berupa salah satu dari berikut ini: |
|
counter |
Opsi penghitung. |
dataAccess |
Opsi akses data. |
cloudAudit |
Opsi audit cloud. |
CounterOptions
Menambahkan penghitung streamz dengan metrik dan nama kolom yang ditentukan.
Nama metrik harus diawali dengan '/', umumnya hanya berupa huruf kecil, dan diakhiri dengan "_count". Nama kolom tidak boleh berisi garis miring awal. Nama metrik yang diekspor sebenarnya akan diawali dengan "/iam/policy".
Nama kolom sesuai dengan parameter permintaan IAM dan nilai kolom adalah nilainya masing-masing.
Nama kolom yang didukung: - "authority", yaitu "[token]" jika IAMContext.token ada, jika tidak ada nilai IAMContext.authority_selector jika ada, dan merupakan representasi IAMContext.principal; atau - "iamPrincipal", yang merupakan representasi dari IAMContext.principal meskipun ada pemilih token atau otoritas; atau - "" (string kosong), sehingga menghasilkan penghitung tanpa kolom.
Contoh: penghitung { metric: "/debug_access_count" kolom: "iamPrincipal" } ==> penghitung pertambahan /iam/policy/debug_access_count {iamPrincipal=[value of IAMContext.principal]}
Representasi JSON |
---|
{
"metric": string,
"field": string,
"customFields": [
{
object ( |
Kolom | |
---|---|
metric |
Metrik yang akan diperbarui. |
field |
Nilai kolom yang akan dikaitkan. |
customFields[] |
Kolom kustom. |
CustomField
Kolom kustom. Class ini dapat digunakan untuk membuat penghitung dengan pasangan kolom/nilai arbitrer. Lihat: go/rpcsp-custom-fields.
Representasi JSON |
---|
{ "name": string, "value": string } |
Kolom | |
---|---|
name |
Nama adalah nama kolom. |
value |
Nilai adalah nilai kolom. Perlu diingat bahwa berbeda dengan CounterOptions.field, nilai di sini adalah konstanta yang tidak berasal dari IAMContext. |
DataAccessOptions
Menulis log Akses Data (Gin)
Representasi JSON |
---|
{
"logMode": enum ( |
Kolom | |
---|---|
logMode |
|
isDirectAuth |
Menunjukkan bahwa akses diberikan oleh kebijakan pemberian reguler |
LogMode
Menentukan logging Gin wrt perilaku klien.
Enum | |
---|---|
LOG_MODE_UNSPECIFIED |
Klien tidak diwajibkan untuk langsung menulis log Gin parsial setelah pemeriksaan otorisasi. Jika klien memilih untuk menulis salah satunya dan gagal, klien dapat gagal membuka (memungkinkan operasi dilanjutkan) atau gagal ditutup (ditangani sebagai hasil DITOLAK). |
LOG_FAIL_CLOSED |
Operasi aplikasi dalam konteks dilakukannya pemeriksaan otorisasi ini hanya bisa dilakukan jika berhasil masuk ke Gin. Misalnya, library otorisasi dapat memenuhi kewajiban ini dengan memunculkan entri log parsial pada waktu pemeriksaan otorisasi dan hanya menampilkan ALLOW ke aplikasi jika berhasil. Jika Aturan yang cocok memiliki perintah ini, tetapi klien belum menunjukkan bahwa ia akan mematuhi persyaratan tersebut, pemeriksaan IAM akan mengakibatkan kegagalan otorisasi dengan menetapkan CheckPolicyResponse.Success=false. |
CloudAuditOptions
Menulis log Audit Cloud
Representasi JSON |
---|
{ "logName": enum ( |
Kolom | |
---|---|
logName |
LogName yang akan diisi dalam Data Audit Cloud. |
authorizationLoggingOptions |
Informasi yang digunakan oleh pipeline Cloud Audit Logging. Tidak akan digunakan lagi setelah migrasi ke PermissionType selesai (b/201806118). |
permissionType |
Jenis yang terkait dengan izin. |
LogName
Enum nama log.
Enum | |
---|---|
UNSPECIFIED_LOG_NAME |
Default. Tidak boleh digunakan. |
ADMIN_ACTIVITY |
Sesuai dengan "cloudaudit.googleapis.com/activity" |
DATA_ACCESS |
Sesuai dengan "cloudaudit.googleapis.com/dataAccess" |
AuthorizationLoggingOptions
Informasi terkait otorisasi yang digunakan oleh Cloud Audit Logging.
Representasi JSON |
---|
{
"permissionType": enum ( |
Kolom | |
---|---|
permissionType |
Jenis izin yang diperiksa. |
PermissionType
Daftar jenis izin valid yang dapat diperiksa.
Enum | |
---|---|
PERMISSION_TYPE_UNSPECIFIED |
Default. Tidak boleh digunakan. |
ADMIN_READ |
Pembacaan data admin (meta). |
ADMIN_WRITE |
Penulisan data admin (meta). |
DATA_READ |
Pembacaan data standar. |
DATA_WRITE |
Penulisan data standar. |
PermissionType
Daftar jenis izin valid yang dapat diperiksa.
Enum | |
---|---|
PERMISSION_TYPE_UNSPECIFIED |
Default. Tidak boleh digunakan. |
ADMIN_READ |
Izin yang membatasi pembacaan konfigurasi resource atau metadata. |
ADMIN_WRITE |
Izin yang membatasi modifikasi konfigurasi resource atau metadata. |
DATA_READ |
Izin yang membatasi pembacaan data yang disediakan pengguna. |
DATA_WRITE |
Izin yang membatasi penulisan data yang disediakan pengguna. |