Mengonfigurasi kontrol sesi untuk autentikasi ulang

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:

  • Menerapkan 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 yang optimal.

Menentukan durasi sesi dan metode autentikasi ulang

Anda dapat menentukan kontrol sesi saat membuat binding Access Context Manager. Untuk mengetahui detail tentang kontrol sesi, lihat Menerapkan kebijakan ke grup pengguna menggunakan binding akses.

gcloud

  • Menetapkan kontrol sesi default untuk semua aplikasi

    Gunakan flag --session-length untuk menetapkan durasi sesi dan flag --session-reauth-method untuk menentukan metode autentikasi ulang. Misalnya, Anda dapat menetapkan waktu durasi sesi 30 menit (30 mnt) dan metode autentikasi ulang LOGIN, PASSWORD, atau SECURITY_KEY.

    Hal ini akan diterapkan ke semua aplikasi kecuali jika diganti oleh setelan khusus aplikasi.

  • Menetapkan kontrol sesi khusus aplikasi

    Tentukan scopedAccessSettings dalam file YAML untuk menentukan kontrol sesi untuk aplikasi tertentu menggunakan clientId. Hal ini memungkinkan Anda mengganti kontrol sesi default untuk aplikasi tersebut. Kemudian, Anda dapat meneruskan file YAML menggunakan --binding-file flag.

API

Tentukan kolom sessionLength dan sessionReauthMethod dalam sessionSettings object di isi JSON permintaan POST Anda untuk membuat atau memperbarui binding GcpUserAccessBinding. Gunakan scopedAccessSettings untuk menentukan kontrol sesi khusus aplikasi. Lihat Menentukan konfigurasi untuk aplikasi tertentu untuk mengetahui detailnya.

Pertimbangan utama saat menentukan kontrol sesi:

  • Anda tidak dapat menentukan konsol Google Cloud menggunakan clientId. Untuk menerapkan kontrol sesi untuk konsol Google Cloud, tentukan sebagai default, lalu buat pengecualian untuk aplikasi lain.
  • Hanya binding akses yang baru dibuat yang cocok dengan permintaan yang digunakan saat me-resolve setelan kontrol sesi.

Contoh konfigurasi kebijakan

Berikut adalah contoh yang menunjukkan cara membuat kontrol sesi yang memerlukan autentikasi ulang setiap 18 jam secara default dengan LOGIN, dan setiap dua jam untuk aplikasi tertentu (SENSITIVE_APP_ID) dengan SECURITY_KEY.

Setelan default

Flag --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, kita menetapkan persyaratan autentikasi ulang dua jam dengan SECURITY_KEY untuk aplikasi dengan client ID SENSITIVE_APP_ID.

gcloud

Konfigurasi setelan:

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 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 18h \
    --session-reauth-method LOGIN

API

Isi JSON:

{
  "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
          }
        ]
      }
    }
  ]

Permintaan postingan:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings