REST Resource: projects.locations.authzPolicies

Resource: AuthzPolicy

AuthzPolicy adalah resource yang memungkinkan penerusan traffic ke backend info yang dirancang untuk memindai traffic untuk tujuan keamanan.

Representasi JSON
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "description": string,
  "labels": {
    string: string,
    ...
  },
  "target": {
    object (Target)
  },
  "httpRules": [
    {
      object (AuthzRule)
    }
  ],
  "action": enum (AuthzAction),
  "customProvider": {
    object (CustomProvider)
  }
}
Kolom
name

string

Wajib. ID. Nama resource AuthzPolicy dalam format berikut: projects/{project}/locations/{location}/authzPolicies/{authzPolicy}.

createTime

string (Timestamp format)

Hanya output. Stempel waktu saat resource dibuat.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Hanya output. Stempel waktu saat resource diperbarui.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

description

string

Opsional. Deskripsi resource yang dapat dibaca manusia.

labels

map (key: string, value: string)

Opsional. Kumpulan label yang terkait dengan resource AuthzPolicy.

Format harus mematuhi persyaratan berikut.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

target

object (Target)

Wajib. Menentukan kumpulan resource yang akan diterapkan kebijakan ini.

httpRules[]

object (AuthzRule)

Opsional. Daftar aturan HTTP otorisasi yang akan dicocokkan dengan permintaan masuk. Kecocokan kebijakan terjadi jika minimal satu aturan HTTP cocok dengan permintaan atau jika tidak ada aturan HTTP yang ditentukan dalam kebijakan. Diperlukan minimal satu Aturan HTTP untuk Tindakan Izinkan atau Tolak. Dibatasi hingga 5 aturan.

action

enum (AuthzAction)

Wajib. Dapat berupa salah satu dari ALLOW, DENY, CUSTOM.

Jika tindakannya adalah CUSTOM, customProvider harus ditentukan.

Jika tindakannya adalah ALLOW, hanya permintaan yang cocok dengan kebijakan yang akan diizinkan.

Jika tindakannya adalah DENY, hanya permintaan yang cocok dengan kebijakan yang akan ditolak.

Saat permintaan diterima, kebijakan akan dievaluasi dalam urutan berikut:

  1. Jika ada kebijakan CUSTOM yang cocok dengan permintaan, kebijakan CUSTOM akan dievaluasi menggunakan penyedia otorisasi kustom dan permintaan akan ditolak jika penyedia menolak permintaan.

  2. Jika ada kebijakan DENY yang cocok dengan permintaan, permintaan akan ditolak.

  3. Jika tidak ada kebijakan ALLOW untuk resource atau jika ada kebijakan ALLOW yang cocok dengan permintaan, permintaan akan diizinkan.

  4. Jika tidak, permintaan akan ditolak secara default jika tidak ada AuthzPolicies yang dikonfigurasi dengan tindakan ALLOW yang cocok dengan permintaan.

customProvider

object (CustomProvider)

Opsional. Wajib jika tindakannya adalah CUSTOM. Memungkinkan mendelegasikan keputusan otorisasi ke Cloud IAP atau ke Ekstensi Layanan. Salah satu dari cloudIap atau authzExtension harus ditentukan.

Target

Menentukan kumpulan target yang akan diterapkan kebijakan ini.

Representasi JSON
{
  "loadBalancingScheme": enum (LoadBalancingScheme),
  "resources": [
    string
  ]
}
Kolom
loadBalancingScheme

enum (LoadBalancingScheme)

Wajib. Semua gateway dan aturan penerusan yang dirujuk oleh kebijakan dan ekstensi ini harus memiliki skema load balancing yang sama. Nilai yang didukung: INTERNAL_MANAGED dan EXTERNAL_MANAGED. Untuk mengetahui informasi selengkapnya, lihat Ringkasan layanan backend.

resources[]

string

Wajib. Daftar referensi ke Aturan Penerusan tempat kebijakan ini akan diterapkan.

LoadBalancingScheme

Skema load balancing yang didukung oleh resource AuthzPolicy. Nilai yang valid adalah INTERNAL_MANAGED dan EXTERNAL_MANAGED. Untuk mengetahui informasi selengkapnya, lihat Ringkasan layanan backend.

Enum
LOAD_BALANCING_SCHEME_UNSPECIFIED Nilai default. Jangan gunakan.
INTERNAL_MANAGED Menunjukkan bahwa ini digunakan untuk Load Balancer Aplikasi internal Regional atau Lintas region.
EXTERNAL_MANAGED Menunjukkan bahwa ini digunakan untuk Load Balancer Aplikasi eksternal Global atau Regional.
INTERNAL_SELF_MANAGED Menunjukkan bahwa ini digunakan untuk Cloud Service Mesh. Hanya ditujukan untuk digunakan oleh pengontrol GKE CSM.

AuthzRule

Kondisi yang akan dicocokkan dengan permintaan masuk.

Representasi JSON
{
  "from": {
    object (From)
  },
  "to": {
    object (To)
  },
  "when": string
}
Kolom
from

object (From)

Opsional. Menjelaskan properti satu atau beberapa sumber permintaan.

to

object (To)

Opsional. Menjelaskan properti satu atau beberapa target permintaan.

when

string

Opsional. Ekspresi CEL yang menjelaskan kondisi yang harus dipenuhi untuk tindakan. Hasil ekspresi CEL digabungkan dengan dari dan ke. Lihat referensi bahasa CEL untuk mengetahui daftar atribut yang tersedia.

Dari

Menjelaskan properti satu atau beberapa sumber permintaan.

Representasi JSON
{
  "sources": [
    {
      object (RequestSource)
    }
  ],
  "notSources": [
    {
      object (RequestSource)
    }
  ]
}
Kolom
sources[]

object (RequestSource)

Opsional. Menjelaskan properti sumber permintaan. Setidaknya salah satu dari sources atau notSources harus ditentukan. Dibatasi hingga 5 sumber. Kecocokan terjadi jika sumber APA PUN (di sumber atau notSources) cocok dengan permintaan. Dalam satu sumber, pencocokan mengikuti semantik DAN di seluruh kolom dan semantik ATAU dalam satu kolom, yaitu pencocokan terjadi jika ADA akun utama yang cocok DAN ADA ipBlocks yang cocok.

notSources[]

object (RequestSource)

Opsional. Menjelaskan properti sumber permintaan yang dinegasikan. Mencocokkan permintaan dari sumber yang tidak cocok dengan kriteria yang ditentukan di kolom ini. Setidaknya salah satu dari sources atau notSources harus ditentukan.

RequestSource

Menjelaskan properti satu sumber.

Representasi JSON
{
  "principals": [
    {
      object (StringMatch)
    }
  ],
  "resources": [
    {
      object (RequestResource)
    }
  ]
}
Kolom
principals[]

object (StringMatch)

Opsional. Daftar identitas yang berasal dari sertifikat klien. Kolom ini tidak akan cocok dengan permintaan kecuali jika TLS bersama diaktifkan untuk Aturan penerusan atau Gateway. Setiap identitas adalah string yang nilainya dicocokkan dengan SAN URI, atau SAN DNS, atau kolom subjek dalam sertifikat klien. Pencocokan dapat berupa pencocokan persis, awalan, akhiran, atau substring. Salah satu dari exact, prefix, suffix, atau contains harus ditentukan. Dibatasi hingga 5 akun utama.

resources[]

object (RequestResource)

Opsional. Daftar resource yang akan dicocokkan dengan resource VM sumber permintaan. Dibatasi hingga 5 resource.

StringMatch

Menentukan cara pencocokan nilai string.

Representasi JSON
{
  "ignoreCase": boolean,

  // Union field match_pattern can be only one of the following:
  "exact": string,
  "prefix": string,
  "suffix": string,
  "contains": string
  // End of list of possible types for union field match_pattern.
}
Kolom
ignoreCase

boolean

Jika benar, menunjukkan pencocokan persis/awalan/akhiran/berisi tidak boleh peka huruf besar/kecil. Misalnya, matcher data akan cocok dengan string input Data dan data jika disetel ke benar.

Kolom union match_pattern.

match_pattern hanya dapat berupa salah satu dari hal berikut:

exact

string

String input harus sama persis dengan string yang ditentukan di sini.

Contoh:

  • abc hanya cocok dengan nilai abc.
prefix

string

String input harus memiliki awalan yang ditentukan di sini. Catatan: awalan kosong tidak diizinkan, gunakan ekspresi reguler.

Contoh:

  • abc cocok dengan nilai abc.xyz
suffix

string

String input harus memiliki akhiran yang ditentukan di sini. Catatan: awalan kosong tidak diizinkan, gunakan ekspresi reguler.

Contoh:

  • abc cocok dengan nilai xyz.abc
contains

string

String input harus memiliki substring yang ditentukan di sini. Catatan: pencocokan berisi kosong tidak diizinkan, gunakan ekspresi reguler sebagai gantinya.

Contoh:

  • abc cocok dengan nilai xyz.abc.def

RequestResource

Menjelaskan properti resource VM klien yang mengakses load balancer aplikasi internal.

Representasi JSON
{
  "tagValueIdSet": {
    object (TagValueIdSet)
  },
  "iamServiceAccount": {
    object (StringMatch)
  }
}
Kolom
tagValueIdSet

object (TagValueIdSet)

Opsional. Daftar ID permanen nilai tag resource yang akan dicocokkan dengan nilai tag pengelola resource yang terkait dengan VM sumber permintaan.

iamServiceAccount

object (StringMatch)

Opsional. Akun layanan IAM yang akan dicocokkan dengan akun layanan sumber VM yang mengirim permintaan.

TagValueIdSet

Menjelaskan kumpulan ID permanen nilai tag resource yang akan dicocokkan dengan nilai tag pengelola resource yang terkait dengan VM sumber permintaan.

Representasi JSON
{
  "ids": [
    string
  ]
}
Kolom
ids[]

string (int64 format)

Wajib. Daftar ID permanen nilai tag resource yang akan dicocokkan dengan nilai tag pengelola resource yang terkait dengan VM sumber permintaan. Pencocokan mengikuti semantik AND yang berarti semua ID harus cocok. Dibatasi hingga 5 kecocokan.

Ke

Menjelaskan properti satu atau beberapa target permintaan.

Representasi JSON
{
  "operations": [
    {
      object (RequestOperation)
    }
  ],
  "notOperations": [
    {
      object (RequestOperation)
    }
  ]
}
Kolom
operations[]

object (RequestOperation)

Opsional. Menjelaskan properti satu atau beberapa target permintaan. Setidaknya salah satu dari operations atau notOperations harus ditentukan. Terbatas untuk 5 operasi. Kecocokan terjadi saat operasi APAPUN (dalam operasi atau notOperations) cocok. Dalam operasi, pencocokan mengikuti semantik AND di seluruh kolom dan semantik OR dalam kolom, yaitu pencocokan terjadi jika JALUR APA PUN cocok DAN header APA PUN cocok dan metode APA PUN cocok.

notOperations[]

object (RequestOperation)

Opsional. Menjelaskan properti yang dinegasikan dari target permintaan. Mencocokkan permintaan untuk operasi yang tidak cocok dengan kriteria yang ditentukan di kolom ini. Setidaknya salah satu dari operations atau notOperations harus ditentukan.

RequestOperation

Menjelaskan properti satu atau beberapa target permintaan.

Representasi JSON
{
  "headerSet": {
    object (HeaderSet)
  },
  "hosts": [
    {
      object (StringMatch)
    }
  ],
  "paths": [
    {
      object (StringMatch)
    }
  ],
  "methods": [
    string
  ]
}
Kolom
headerSet

object (HeaderSet)

Opsional. Daftar header yang akan dicocokkan di header http.

hosts[]

object (StringMatch)

Opsional. Daftar Host HTTP yang akan dicocokkan. Pencocokan dapat berupa salah satu dari persis, awalan, akhiran, atau berisi (pencocokan substring). Kecocokan selalu peka huruf besar/kecil, kecuali jika ignoreCase ditetapkan. Dibatasi hingga 5 kecocokan.

paths[]

object (StringMatch)

Opsional. Daftar jalur yang akan dicocokkan. Pencocokan dapat berupa salah satu dari persis, awalan, akhiran, atau berisi (pencocokan substring). Kecocokan selalu peka huruf besar/kecil, kecuali jika ignoreCase ditetapkan. Dibatasi hingga 5 kecocokan. Perhatikan bahwa kecocokan jalur ini menyertakan parameter kueri. Untuk layanan gRPC, ini harus berupa nama yang sepenuhnya memenuhi syarat dalam bentuk /package.service/method.

methods[]

string

Opsional. Daftar metode HTTP yang akan dicocokkan. Setiap entri harus berupa nama metode HTTP yang valid (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). Pencocokan ini hanya mengizinkan pencocokan persis dan selalu peka huruf besar/kecil.

HeaderSet

Menjelaskan kumpulan header HTTP yang akan dicocokkan.

Representasi JSON
{
  "headers": [
    {
      object (HeaderMatch)
    }
  ]
}
Kolom
headers[]

object (HeaderMatch)

Wajib. Daftar header yang akan dicocokkan di header http. Pencocokan dapat berupa salah satu dari persis, awalan, akhiran, atau berisi (pencocokan substring). Pencocokan mengikuti semantik AND yang berarti semua header harus cocok. Kecocokan selalu peka huruf besar/kecil, kecuali jika ignoreCase ditetapkan. Dibatasi hingga 5 kecocokan.

HeaderMatch

Menentukan cara header HTTP harus dicocokkan.

Representasi JSON
{
  "name": string,
  "value": {
    object (StringMatch)
  }
}
Kolom
name

string

Opsional. Menentukan nama header dalam permintaan.

value

object (StringMatch)

Opsional. Menentukan cara pencocokan header akan dilakukan.

AuthzAction

Tindakan yang akan diterapkan ke kebijakan ini. Nilai yang valid adalah ALLOW, DENY, CUSTOM.

Enum
AUTHZ_ACTION_UNSPECIFIED Tindakan tidak ditentukan.
ALLOW Izinkan permintaan diteruskan ke backend.
DENY Tolak permintaan dan tampilkan HTTP 404 ke klien.
CUSTOM Mendelegasikan keputusan otorisasi ke mesin otorisasi eksternal.

CustomProvider

Memungkinkan mendelegasikan keputusan otorisasi ke Cloud IAP atau ke Ekstensi Layanan.

Representasi JSON
{
  "cloudIap": {
    object (CloudIap)
  },
  "authzExtension": {
    object (AuthzExtension)
  }
}
Kolom
cloudIap

object (CloudIap)

Opsional. Mendelegasikan keputusan otorisasi ke Cloud IAP. Hanya berlaku untuk load balancer terkelola. Mengaktifkan Cloud IAP di tingkat AuthzPolicy tidak kompatibel dengan setelan Cloud IAP di BackendService. Mengaktifkan IAP di kedua tempat tersebut akan mengakibatkan kegagalan permintaan. Pastikan IAP diaktifkan di AuthzPolicy atau BackendService, tetapi tidak di kedua tempat.

authzExtension

object (AuthzExtension)

Opsional. Mendelegasikan keputusan otorisasi ke Ekstensi Layanan yang dibuat pengguna. Hanya salah satu dari cloudIap atau authzExtension yang dapat ditentukan.

CloudIap

Jenis ini tidak memiliki kolom.

Opsional. Mendelegasikan keputusan otorisasi ke Cloud IAP. Hanya berlaku untuk load balancer terkelola. Mengaktifkan Cloud IAP di tingkat AuthzPolicy tidak kompatibel dengan setelan Cloud IAP di BackendService. Mengaktifkan IAP di kedua tempat tersebut akan mengakibatkan kegagalan permintaan. Pastikan IAP diaktifkan di AuthzPolicy atau BackendService, tetapi tidak di kedua tempat.

AuthzExtension

Opsional. Mendelegasikan keputusan otorisasi ke ekstensi yang dibuat pengguna. Hanya salah satu dari cloudIap atau authzExtension yang dapat ditentukan.

Representasi JSON
{
  "resources": [
    string
  ]
}
Kolom
resources[]

string

Wajib. Daftar referensi ke ekstensi otorisasi yang akan dipanggil untuk permintaan yang cocok dengan kebijakan ini. Dibatasi hingga 1 penyedia kustom.

Metode

create

Membuat AuthzPolicy baru di project dan lokasi tertentu.

delete

Menghapus satu AuthzPolicy.

get

Mendapatkan detail satu AuthzPolicy.

list

Mencantumkan AuthzPolicies di project dan lokasi tertentu.

patch

Memperbarui parameter satu AuthzPolicy.