Anda dapat menggunakan binding akses untuk mengontrol aplikasi dan resource yang dapat diakses oleh grup pengguna Anda. Binding akses menentukan cara menerapkan tingkat akses dan kontrol sesi ke grup pengguna. Anda dapat menerapkan tingkat akses dan kontrol sesi yang sama ke semua aplikasi, atau menentukan perilaku tertentu untuk setiap aplikasi.
Untuk memastikan bahwa Anda telah mengonfigurasi semuanya dengan benar, Anda dapat menguji kebijakan sebelum menerapkannya.
Saat menggunakan binding akses, perhatikan perilaku berikut:
- Grup pengguna hanya dapat memiliki satu binding akses.
- Jika pengguna berada di beberapa grup, pengguna akan diberi akses jika kebijakan apa pun
mengizinkannya (
OR
, bukanAND
). - Untuk kontrol sesi, hanya binding akses yang baru dibuat yang berlaku.
Menggunakan satu konfigurasi untuk semua aplikasi
Metode ini menerapkan tingkat akses dan kontrol sesi yang sama ke semua aplikasi yang diakses oleh grup pengguna.
Sebaiknya uji kebijakan Anda dengan uji coba atau terapkan ke grup pengujian kecil sebelum menerapkannya dalam produksi.
gcloud
Buat binding akses.
gcloud access-context-manager cloud-bindings create \ --group-key GROUP_ID --organization ORG_ID --level DEFAULT_ACCESS_LEVEL [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]
Ganti kode berikut:
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
get
di resource grup. - ORG_ID: ID organisasi Anda.
-
DEFAULT_ACCESS_LEVEL: Nama tingkat akses opsional, yang berbentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. GantiPOLICY_ID
dengan ID kebijakan akses, danACCESS_LEVEL_NAME
dengan nama tingkat akses. -
DEFAULT_SESSION_LENGTH: Durasi sesi opsional menggunakan format durasi ISO 8601,
seperti
30m
selama 30 menit, atau2h
selama dua jam. -
DEFAULT_SESSION_REAUTH_METHOD: Metode opsional untuk meminta pengguna memverifikasi ulang
identitas mereka, yang harus berupa salah satu dari hal berikut:
LOGIN
: Terapkan login standar, yang dapat mencakup MFA atau faktor lain yang ditentukan Workspace.PASSWORD
: Hanya mewajibkan sandi, meskipun faktor lain ditentukan. Jika sandi dikelola menggunakan IdP eksternal, pengguna akan dialihkan ke IdP. Jika sesi IdP aktif, pengguna akan diautentikasi ulang secara implisit. Jika IdP tidak aktif, pengguna harus login melalui IdP.SECURITY_KEY
: Mewajibkan kunci keamanan hardware.
API
Buat isi JSON:
{ "groupKey": "GROUP_ID", "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], // optional: "sessionSettings": { "sessionLength": "DEFAULT_SESSION_LENGTH", "sessionReauthMethod": "DEFAULT_SESSION_REAUTH_METHOD" } }
Ganti kode berikut:
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
get
di resource grup. -
DEFAULT_ACCESS_LEVEL: Nama tingkat akses opsional, yang berbentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. GantiPOLICY_ID
dengan ID kebijakan akses, danACCESS_LEVEL_NAME
dengan nama tingkat akses. -
DEFAULT_SESSION_LENGTH: Durasi sesi opsional menggunakan format durasi ISO 8601,
seperti
30m
selama 30 menit, atau2h
selama dua jam. -
DEFAULT_SESSION_REAUTH_METHOD: Metode opsional untuk meminta pengguna memverifikasi ulang
identitas mereka, yang harus berupa salah satu dari hal berikut:
LOGIN
: Terapkan login standar, yang dapat mencakup MFA atau faktor lain yang ditentukan Workspace.PASSWORD
: Hanya mewajibkan sandi, meskipun faktor lain ditentukan. Jika sandi dikelola menggunakan IdP eksternal, pengguna akan dialihkan ke IdP. Jika sesi IdP aktif, pengguna akan diautentikasi ulang secara implisit. Jika IdP tidak aktif, pengguna harus login melalui IdP.SECURITY_KEY
: Mewajibkan kunci keamanan hardware.
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
Kirim permintaan POST:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
ORG_ID Adalah ID untuk organisasi yang Anda gunakan untuk membuat peran Cloud Access Binding Admin. Jika properti
access-context-manager/organization
belum ditetapkan, gantiORG_ID
dalam flag--organization
opsional dengan ID untuk organisasi yang Anda gunakan saat membuat peran Admin Cloud Access Binding.
Jika berhasil, Anda akan menerima representasi objek JSON. Jika terjadi masalah, Anda akan menerima pesan error.
Menentukan konfigurasi untuk aplikasi tertentu
Metode ini memungkinkan Anda menerapkan berbagai tingkat akses dan kontrol sesi ke berbagai aplikasi. Anda juga dapat menetapkan aturan default untuk aplikasi yang tidak memiliki konfigurasi tertentu. Metode ini berguna saat Anda ingin melakukan hal berikut:
- Terapkan kebijakan hanya ke aplikasi tertentu.
Buat kebijakan umum, tetapi kecualikan beberapa aplikasi dari kebijakan tersebut.
gcloud
Buat file binding dalam format YAML dengan daftar entri cakupan dalam daftar
scopedAccessSettings
. Untuk setiap aplikasi yang ingin Anda petakan ke tingkat akses tertentu, sertakan entriclientScope
.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID activeSettings: accessLevels: - ACCESS_LEVEL_A sessionSettings: - sessionLength: SESSION_LENGTH sessionReauthMethod: SESSION_REAUTH_METHOD sessionLengthEnabled: true - scope: clientScope: restrictedClientApplication: # # because this app is specified by `name`, # it won't work with sessionSettings. # # if you add sessionSettings, make sure to # replace the `name` key with `clientId`, # and use the OAuth client ID as the value. # name: CLIENT_NAME activeSettings: accessLevels: - ACCESS_LEVEL_B
Ganti kode berikut:
- CLIENT_ID: Client ID OAuth. Anda harus menggunakan
clientId
saat aplikasi berisisessionSettings
. - ACCESS_LEVEL_A: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - SESSION_LENGTH: Durasi sesi menggunakan format durasi
ISO 8601, seperti
30m
selama 30 menit, atau2h
selama dua jam. SESSION_REAUTH_METHOD: Metode opsional untuk meminta pengguna memverifikasi ulang identitas mereka, yang harus berupa salah satu dari hal berikut:
LOGIN
: Terapkan login standar, yang dapat mencakup MFA atau faktor lain yang ditentukan Workspace.PASSWORD
: Hanya mewajibkan sandi, meskipun faktor lain ditentukan. Jika sandi dikelola menggunakan IdP eksternal, pengguna akan dialihkan ke IdP. Jika sesi IdP aktif, pengguna akan diautentikasi ulang secara implisit. Jika IdP tidak aktif, pengguna harus login melalui IdP.SECURITY_KEY
: Mewajibkan kunci keamanan hardware.
CLIENT_NAME: Nama klien. Jika aplikasi berisi
sessionSettings
, Anda tidak dapat menggunakan nama klien. Sebagai gantinya, gunakan client ID OAuth.ACCESS_LEVEL_B: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Untuk menetapkan tingkat akses default bagi aplikasi yang tidak ditentukan dalam file YAML, gunakan argumen
--level
. File YAML hanya mendukung setelan khusus aplikasi (scopedAccessSettings
).- CLIENT_ID: Client ID OAuth. Anda harus menggunakan
Buat binding akses.
gcloud access-context-manager cloud-bindings create --organization ORG_ID --group-key GROUP_ID --binding-file BINDING_FILE_PATH [ --level DEFAULT_ACCESS_LEVEL ] [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]
Ganti kode berikut:
- ORG_ID: ID organisasi Anda.
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
get
di resource grup. -
BINDING_FILE_PATH: Jalur ke file YAML yang berisi skema binding akses.
File binding hanya mendukung
scopedAccessSettings
. -
DEFAULT_ACCESS_LEVEL: Nama tingkat akses opsional, yang berbentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. GantiPOLICY_ID
dengan ID kebijakan akses, danACCESS_LEVEL_NAME
dengan nama tingkat akses. -
DEFAULT_SESSION_LENGTH: Durasi sesi opsional menggunakan format durasi ISO 8601,
seperti
30m
selama 30 menit, atau2h
selama dua jam. -
DEFAULT_SESSION_REAUTH_METHOD: Metode opsional untuk meminta pengguna memverifikasi ulang
identitas mereka, yang harus berupa salah satu dari hal berikut:
LOGIN
: Terapkan login standar, yang dapat mencakup MFA atau faktor lain yang ditentukan Workspace.PASSWORD
: Hanya mewajibkan sandi, meskipun faktor lain ditentukan. Jika sandi dikelola menggunakan IdP eksternal, pengguna akan dialihkan ke IdP. Jika sesi IdP aktif, pengguna akan diautentikasi ulang secara implisit. Jika IdP tidak aktif, pengguna harus login melalui IdP.SECURITY_KEY
: Mewajibkan kunci keamanan hardware.
Cara kerja argumen --level
dan --binding-file
- Jika Anda hanya menggunakan
--binding-file
, hanya aplikasi dalam file yang menerapkan kebijakan. - Jika Anda hanya menggunakan
--level
, tingkat akses akan berlaku untuk semua aplikasi. - Jika Anda menggunakan keduanya, aturan dalam file YAML akan diprioritaskan. Nilai
--level
berlaku untuk aplikasi apa pun yang tidak tercantum dalam file.
Menggunakan kontrol sesi
- Untuk menetapkan kontrol sesi default untuk semua aplikasi, gunakan
--session-length
dan--session-reauth-method
. - Jika Anda juga menentukan kontrol sesi dalam file YAML, kontrol sesi tersebut akan mengganti setelan default untuk aplikasi tertentu tersebut.
- Anda harus menggunakan
--session-length
dan--session-reauth-method
bersama-sama.
API
Buat isi JSON:
{
"groupKey": "GROUP_ID",
//
// Optional; if specified, all applications that aren't defined in
// scopedAccessSettings have these access levels applied.
//
// If more than one access level is specified, the user is
// granted access if any one resolves to TRUE (OR logic, not AND).
//
// If you omit this key entirely, then no policy enforcement is
// applied by default.
//
"accessLevels": [
"DEFAULT_ACCESS_LEVEL"
],
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"clientId": "CLIENT_ID"
}
}
},
"activeSettings": {
"accessLevels": [
"ACCESS_LEVEL_A"
],
"sessionSettings": [
{
"sessionLength": "SESSION_LENGTH",
"sessionReauthMethod": "SESSION_REAUTH_METHOD",
"sessionLengthEnabled": true
}
]
}
},
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"name": "CLIENT_NAME"
}
},
"activeSettings": {
"accessLevels": [
"ACCESS_LEVEL_B"
]
}
}
}
]
}
Ganti kode berikut:
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
get
di resource grup. -
DEFAULT_ACCESS_LEVEL: Nama tingkat akses opsional, yang berbentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. GantiPOLICY_ID
dengan ID kebijakan akses, danACCESS_LEVEL_NAME
dengan nama tingkat akses. - CLIENT_ID: Client ID OAuth. Anda harus menggunakan
clientId
saat aplikasi berisisessionSettings
. - ACCESS_LEVEL_A: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - SESSION_LENGTH: Durasi sesi menggunakan format durasi
ISO 8601, seperti
30m
selama 30 menit, atau2h
selama dua jam. SESSION_REAUTH_METHOD: Metode opsional untuk meminta pengguna memverifikasi ulang identitas mereka, yang harus berupa salah satu dari hal berikut:
LOGIN
: Terapkan login standar, yang dapat mencakup MFA atau faktor lain yang ditentukan Workspace.PASSWORD
: Hanya mewajibkan sandi, meskipun faktor lain ditentukan. Jika sandi dikelola menggunakan IdP eksternal, pengguna akan dialihkan ke IdP. Jika sesi IdP aktif, pengguna akan diautentikasi ulang secara implisit. Jika IdP tidak aktif, pengguna harus login melalui IdP.SECURITY_KEY
: Mewajibkan kunci keamanan hardware.
CLIENT_NAME: Nama klien. Jika aplikasi berisi
sessionSettings
, Anda tidak dapat menggunakan nama klien. Sebagai gantinya, gunakan client ID OAuth.ACCESS_LEVEL_B: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Kirim permintaan POST:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
ORG_ID adalah ID untuk organisasi yang Anda gunakan untuk membuat peran Cloud Access Binding Admin. Jika properti access-context-manager/organization
belum ditetapkan, ganti ORG_ID
dalam flag --organization
opsional dengan ID untuk organisasi yang Anda gunakan saat membuat peran Admin Cloud Access Binding.
Jika berhasil, Anda akan menerima representasi objek JSON, atau pesan error jika ada masalah.
Menggunakan tingkat akses uji coba untuk menyimulasikan penerapan
Tingkat akses uji coba memungkinkan Anda menguji kebijakan akses tanpa benar-benar menerapkannya. Hal ini membantu Anda memahami dampak kebijakan sebelum diaktifkan. Anda dapat melihat log uji coba untuk melihat hal yang akan terjadi jika kebijakan aktif.
Hanya tingkat akses yang dapat digunakan dalam mode uji coba. Kontrol sesi tidak tersedia dalam mode uji coba.
Membuat binding uji coba
Anda dapat menentukan tingkat akses uji coba bersama dengan tingkat akses reguler dalam binding yang sama, atau Anda dapat menggunakan binding terpisah untuk uji coba.
gcloud
Konfigurasi setelan akses.
scopedAccessSettings: - scope: clientScope: restrictedClientApplication: name: CLIENT_NAME activeSettings: accessLevels: - ACCESS_LEVEL_A dryRunSettings: accessLevels: - DRY_RUN_ACCESS_LEVEL_1 - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID dryRunSettings: accessLevels: - DRY_RUN_ACCESS_LEVEL_2
Ganti kode berikut:
- CLIENT_NAME: Nama klien. Jika aplikasi berisi
sessionSettings
, Anda tidak dapat menggunakan nama klien. Sebagai gantinya, gunakan client ID OAuth. - ACCESS_LEVEL_A: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - DRY_RUN_ACCESS_LEVEL_1: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - CLIENT_ID: Client ID OAuth. Anda harus menggunakan
clientId
saat aplikasi berisisessionSettings
. - DRY_RUN_ACCESS_LEVEL_2: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
- CLIENT_NAME: Nama klien. Jika aplikasi berisi
Buat binding akses.
gcloud access-context-manager cloud-bindings create --organization ORG_ID --group-key GROUP_ID --binding-file BINDING_FILE_PATH --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL
Ganti kode berikut:
- ORG_ID: ID organisasi Anda.
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
get
di resource grup. -
BINDING_FILE_PATH: Jalur ke file YAML yang berisi skema binding akses.
File binding hanya mendukung
scopedAccessSettings
. - DEFAULT_DRY_RUN_ACCESS_LEVEL_2: Nama tingkat akses opsional
dalam bentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Sertakan tanda ini untuk menerapkan tingkat akses uji coba yang ditentukan ke semua aplikasi secara default jika tidak ditentukan dalam YAML.
API
Buat isi JSON:
{ "group_key": "GROUP_ID", // // Optional; if specified, all applications that aren't defined in // scopedAccessSettings have these access levels applied. // // If more than one access level is specified, the user is // granted access if any one resolves to TRUE (OR logic, not AND). // // If you omit this key entirely, then no policy enforcement is // be applied by default. // "access_levels": [ "DEFAULT_ACCESS_LEVEL" ], // // Optional; if specified, all applications that aren't defined in // scopedAccessSettings will have these dry run access levels applied. // "dry_run_access_levels": [ "DEFAULT_DRY_RUN_ACCESS_LEVEL" ], "scoped_access_settings": [ { "scope": { "client_scope": { "restricted_client_application": { "name": "CLIENT_NAME" } } }, "active_settings": { "access_levels": [ "ACCESS_LEVEL_A" ] }, "dry_run_settings": { "access_levels": [ "DRY_RUN_ACCESS_LEVEL_1" ] } }, { "scope": { "client_scope": { "restricted_client_application": { "client_id": "CLIENT_ID" } } }, "active_settings": { "access_levels": [ "DRY_RUN_ACCESS_LEVEL_2" ] } } ] }
Ganti kode berikut:
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
get
di resource grup. -
DEFAULT_ACCESS_LEVEL: Nama tingkat akses opsional, yang berbentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. GantiPOLICY_ID
dengan ID kebijakan akses, danACCESS_LEVEL_NAME
dengan nama tingkat akses. - DEFAULT_DRY_RUN_ACCESS_LEVEL: Nama tingkat akses opsional
dalam bentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - CLIENT_NAME: Nama klien. Jika aplikasi berisi
sessionSettings
, Anda tidak dapat menggunakan nama klien. Sebagai gantinya, gunakan client ID OAuth. - ACCESS_LEVEL_A: Nama tingkat akses dalam format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - DRY_RUN_ACCESS_LEVEL_1: Nama tingkat akses dalam bentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - CLIENT_ID: Client ID OAuth. Anda harus menggunakan
client_id
saat aplikasi berisisessionSettings
. - DRY_RUN_ACCESS_LEVEL_2: Nama tingkat akses dalam bentuk
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
-
GROUP_ID: ID grup. Jika tidak memiliki ID grup, Anda dapat mengambilnya
dengan memanggil
metode
Kirim permintaan POST:
https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
ORG_ID Adalah ID untuk organisasi yang Anda gunakan untuk membuat peran Cloud Access Binding Admin. Jika properti
access-context-manager/organization
belum ditetapkan, gantiORG_ID
dalam flag--organization
opsional dengan ID untuk organisasi yang Anda gunakan saat membuat peran Admin Cloud Access Binding.Jika berhasil, Anda akan menerima representasi objek JSON. Jika terjadi masalah, Anda akan menerima pesan error.
Melihat log uji coba
Setelah menyiapkan uji coba, Anda dapat memeriksa log untuk melihat upaya akses mana yang akan ditolak.
Tabel berikut mencantumkan kolom log yang dapat Anda gunakan untuk membuat dan menjalankan kueri guna mendapatkan log:
Nama kolom | Deskripsi |
---|---|
protoPayload.authenticationInfo.principalEmail |
ID email akun utama yang aksesnya ditolak. |
protoPayload.metadata.deniedApplications |
Nama aplikasi yang aksesnya ditolak. |
protoPayload.metadata.evaluationResult |
Hasil evaluasi kebijakan akses aktif. Kemungkinan nilainya adalah:
GRANTED atau DENIED . |
protoPayload.metadata.appliedAccessLevels |
Tingkat akses yang diterapkan yang diperlukan oleh kebijakan akses aktif. |
protoPayload.metadata.appliedDryRunAccessLevels |
Tingkat akses yang diterapkan yang diperlukan oleh kebijakan akses uji coba. |
protoPayload.metadata.dryRunEvaluationResult |
Hasil evaluasi kebijakan akses uji coba, yang menunjukkan tindakan yang diinginkan saat kebijakan akses diterapkan.
Kemungkinan nilainya adalah:
GRANTED atau DENIED . |
Untuk mengetahui detail tentang cara membuat kueri untuk log, lihat Bahasa kueri logging.