Kontrol sesi memungkinkan Anda mengonfigurasi frekuensi pengguna harus melakukan autentikasi ulang setelah diberi akses dan apakah login lengkap, hanya sandi, atau kunci keamanan hardware diperlukan.
Anda dapat menerapkan kontrol sesi untuk melakukan hal berikut:
- Mewajibkan autentikasi ulang yang sering untuk pengguna dengan hak istimewa: Mewajibkan pengguna dengan hak istimewa yang lebih tinggi, seperti pemilik project dan administrator penagihan, untuk lebih sering melakukan autentikasi ulang.
- Mengonfigurasi sesi yang lebih lama untuk aplikasi tertentu: Mengizinkan aplikasi tertentu, seperti aplikasi AI berbasis konteks seperti Gemini, memiliki durasi sesi yang lebih lama untuk mempertahankan jendela konteks besar yang diperlukan untuk performa optimal.
Menentukan durasi sesi dan metode autentikasi ulang
Anda dapat menentukan kontrol sesi saat membuat binding Access Context Manager. Untuk mengetahui informasi selengkapnya tentang kontrol sesi, lihat Menerapkan kebijakan ke grup pengguna menggunakan binding akses.
gcloud
Menetapkan kontrol sesi default untuk semua aplikasi
Gunakan tanda
--session-lengthuntuk menetapkan durasi sesi. Nilainya harus0s, atau antara 1 jam dan 24 jam. Tentukan durasi dalam jam. Misalnya, gunakan "12h" untuk menetapkan sesi yang berdurasi 12 jam. Gunakan tanda--session-reauth-methoduntuk menentukan metode autentikasi ulang. Misalnya, Anda dapat menetapkan waktu durasi sesi 3 jam (3h) dan metode autentikasi ulangLOGIN,PASSWORD, atauSECURITY_KEY.Setelan ini akan diterapkan ke semua aplikasi kecuali jika diganti oleh setelan khusus aplikasi.
Menetapkan kontrol sesi khusus aplikasi
Tentukan
scopedAccessSettingsdalam file YAML untuk menentukan kontrol sesi bagi aplikasi tertentu menggunakanclientId. Hal ini memungkinkan Anda mengganti kontrol sesi default untuk aplikasi tersebut. Kemudian, Anda dapat meneruskan file YAML menggunakan--binding-file flag.
REST API
Tentukan kolom sessionLength dan sessionReauthMethod dalam objek sessionSettings di isi JSON permintaan POST Anda untuk membuat atau memperbarui binding GcpUserAccessBinding.
sessionLengthadalah durasi sesi dalam detik. Nilainya harus0s, atau antara 1 jam dan 24 jam, yang diformat sebagai jumlah detik diikuti dengans(misalnya,3600s, yang sesuai dengan durasi sesi 1 jam).sessionReauthMethoddapat berupaLOGIN,PASSWORD, atauSECURITY_KEY.- Gunakan
scopedAccessSettingsuntuk menentukan kontrol sesi khusus aplikasi. Lihat Menentukan konfigurasi untuk aplikasi tertentu untuk mengetahui detailnya.
Terraform
Dalam resource Binding Akses Pengguna Google Cloud Terraform, isi argumen session_settings untuk mengonfigurasi kontrol durasi sesi umum yang berlaku untuk semua traffic pengguna:
session_length: Durasi sesi dalam detik. Misalnya,3600smenetapkan durasi sesi menjadi 1 jam.sdi akhir diperlukan.session_length_enabled: Tetapkan ke false untuk menonaktifkan setelan sesi yang ditentukan.session_reauth_method: Jenis tantangan autentikasi yang digunakan untuk memperbarui kredensial. Opsi yang tersedia adalahLOGIN,PASSWORD, atauSECURITY_KEY.use_oidc_max_age: Kolom lanjutan yang digunakan untuk mengonfigurasi apakah sesi menghormati parameter usia maksimum OIDC opsional, yang ditentukan jika kredensial autentikasi adalah token OAuth.
Saat menentukan kontrol sesi, hanya binding akses yang paling baru dibuat dan cocok dengan permintaan yang digunakan saat menyelesaikan setelan kontrol sesi.
Contoh konfigurasi kebijakan
Contoh berikut menunjukkan cara membuat kontrol sesi yang mewajibkan autentikasi ulang setiap 18 jam dengan LOGIN dan setiap dua jam untuk aplikasi tertentu (SENSITIVE_APP_ID) dengan SECURITY_KEY.
Setelan default
Tanda --level, --session-length, dan --session-reauth-method dalam perintah Google Cloud CLI (atau kolom yang sesuai dalam isi JSON untuk panggilan API) menetapkan perilaku default untuk semua aplikasi yang tidak ditentukan secara eksplisit di scopedAccessSettings.
Setelan khusus aplikasi
Bagian scopedAccessSettings dalam file YAML (atau isi JSON) memungkinkan Anda
mengganti setelan default untuk aplikasi tertentu. Dalam contoh ini, kami
menetapkan persyaratan autentikasi ulang dua jam dengan SECURITY_KEY untuk
aplikasi dengan client ID SENSITIVE_APP_ID.
Untuk mengecualikan aplikasi tertentu dari kontrol sesi, tetapkan kolom
sessionLength ke 0s atau sessionLengthEnabled
ke false. Metode sessionReauthMethod kemudian akan diabaikan.
gcloud
Contoh berikut menunjukkan konfigurasi setelan sesi:
scopedAccessSettings:
scope:
clientScope:
restrictedClientApplication:
clientId: SENSITIVE_APP_ID
activeSettings:
sessionSettings:
sessionLength: 7200s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
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=SESSION_LENGTH \
--session-reauth-method LOGIN
Ganti kode berikut:
ORG_ID: ID organisasiGROUP_ID: kunci grupBINDING_FILE_PATH: jalur file bindingDEFAULT_ACCESS_LEVEL: tingkat akses defaultSESSION_LENGTH: durasi sesi, misalnya,18h
REST API
Contoh isi JSON permintaan API:
{
"groupKey": "GROUP_ID",
"accessLevels": [
"accessPolicies/POLICY_ID/accessLevels/DEFAULT_ACCESS_LEVEL"
],
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"clientId": "SENSITIVE_APP_ID"
}
}
},
"activeSettings": {
"accessLevels": [
"accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME"
],
"sessionSettings": [
{
"sessionLength": "2h",
"sessionReauthMethod": "SECURITY_KEY",
"sessionLengthEnabled": true
}
]
}
}
]
Buat permintaan POST dalam format berikut:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Ganti ORG_ID dengan ID organisasi.
Terraform
Untuk menentukan durasi sesi bagi permintaan akses dari pengguna yang berasal dari "Kunci Grup" di semua aplikasi:
resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
organization_id = "{Organization ID}"
group_key = "{Group Key}"
session_settings {
session_length = "3600s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
Untuk menentukan durasi sesi bagi permintaan dari pengguna yang berasal dari Grup Google tertentu menggunakan aplikasi tertentu, seperti konsol, isi argumen scoped_access_settings yang sesuai dengan argumen session_settings di active_settings. Google Cloud Sub-argumen dalam session_settings sama dengan argumen tingkat atas.
resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
organization_id = "{Organization ID}"
group_key = "{Group Key}"
scoped_access_settings {
scope {
client_scope {
restricted_client_application {
name = "Cloud Console"
}
}
}
active_settings {
session_settings {
session_length = "3600s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
}
Contoh konfigurasi kebijakan untuk Google Cloud aplikasi
Anda dapat mengonfigurasi kontrol autentikasi ulang khusus aplikasi untuk Google Cloud aplikasi, misalnya mewajibkan SECURITY_KEY untuk Google Cloud SDK dan LOGIN untuk Google Cloud konsol. Contoh berikut menunjukkan cara membuat kontrol sesi yang
mewajibkan autentikasi ulang setiap jam
untuk Google Cloud SDK dengan SECURITY_KEY, dan setiap 4 jam untuk Google Cloud konsol dengan LOGIN.
Bagian scopedAccessSettings dalam file YAML (atau isi JSON) memungkinkan Anda
mengganti setelan default untuk aplikasi tertentu. Dalam contoh ini, kami
menetapkan persyaratan autentikasi ulang satu jam dengan SECURITY_KEY untuk
Google Cloud SDK, dan persyaratan autentikasi ulang empat jam dengan LOGIN untuk Google Cloud konsol menggunakan kolom name untuk mengidentifikasi aplikasi ini.
Untuk mengecualikan aplikasi tertentu dari kontrol sesi, tetapkan kolom
sessionLength ke 0s atau sessionLengthEnabled
ke false. Metode sessionReauthMethod kemudian akan diabaikan.
gcloud
Contoh berikut menunjukkan konfigurasi setelan sesi:
scopedAccessSettings:
- scope:
clientScope:
restrictedClientApplication:
name: Google Cloud SDK
activeSettings:
sessionSettings:
sessionLength: 3600s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
- scope:
clientScope:
restrictedClientApplication:
name: Cloud Console
activeSettings:
sessionSettings:
sessionLength: 14400s
sessionReauthMethod: LOGIN
sessionLengthEnabled: true
Buat binding akses:
gcloud access-context-manager cloud-bindings create \
--organization=ORG_ID \
--group-key=GROUP_ID \
--binding-file=BINDING_FILE_PATH
Ganti kode berikut:
ORG_ID: ID organisasiGROUP_ID: kunci grupBINDING_FILE_PATH: jalur file binding
REST API
Contoh isi JSON permintaan API:
{
"groupKey": "GROUP_ID",
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"name": "Google Cloud SDK"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "3600s",
"sessionReauthMethod": "SECURITY_KEY",
"sessionLengthEnabled": true
}
}
},
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"name": "Cloud Console"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "14400s",
"sessionReauthMethod": "LOGIN",
"sessionLengthEnabled": true
}
}
}
]
}
Buat permintaan POST dalam format berikut:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Ganti ORG_ID dengan ID organisasi.
Terraform
Untuk menentukan setelan durasi sesi untuk Google Cloud SDK dan konsol Google Cloud , isi argumen scoped_access_settings yang sesuai:
resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
organization_id = "{Organization ID}"
group_key = "{Group Key}"
scoped_access_settings {
scope {
client_scope {
restricted_client_application {
name = "Google Cloud SDK"
}
}
}
active_settings {
session_settings {
session_length = "3600s"
session_length_enabled = true
session_reauth_method = "SECURITY_KEY"
use_oidc_max_age = false
}
}
}
scoped_access_settings {
scope {
client_scope {
restricted_client_application {
name = "Cloud Console"
}
}
}
active_settings {
session_settings {
session_length = "14400s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
}