Mengonfigurasi kontrol sesi untuk autentikasi ulang

Kontrol sesi memungkinkan Anda mengonfigurasi frekuensi pengguna harus melakukan autentikasi ulang setelah diberi akses dan apakah login penuh, hanya sandi, atau kunci keamanan hardware diperlukan.

Anda dapat menerapkan kontrol sesi untuk melakukan hal berikut:

  • Menerapkan autentikasi ulang yang sering untuk pengguna istimewa: Wajibkan pengguna dengan hak istimewa yang lebih tinggi, seperti pemilik project dan administrator penagihan, untuk melakukan autentikasi ulang lebih sering.
  • Mengonfigurasi sesi yang lebih lama untuk aplikasi tertentu: Izinkan 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-length untuk menetapkan durasi sesi. Nilai dapat berkisar dari 0 hingga 24 jam. Tentukan durasi menggunakan format durasi ISO 8601. Misalnya, gunakan "12H30M5S" untuk menyetel sesi yang berdurasi 12 jam, 30 menit, dan 5 detik. Gunakan tanda --session-reauth-method untuk menentukan metode autentikasi ulang. Misalnya, Anda dapat menyetel waktu durasi sesi 30 menit (30m) dan metode autentikasi ulang LOGIN, PASSWORD, atau SECURITY_KEY.

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

  • Menetapkan kontrol sesi spesifik per aplikasi

    Tentukan scopedAccessSettings dalam file YAML untuk menentukan kontrol sesi bagi 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 objek sessionSettings di isi JSON permintaan POST Anda untuk membuat atau memperbarui pengikatan GcpUserAccessBinding.

  • sessionLength adalah durasi sesi antara 0 dan 24 jam. Nilai harus berupa string dan terdiri dari bilangan bulat antara 0 dan 86400, yang segera diikuti dengan huruf 's'.
  • sessionReauthMethod dapat berupa LOGIN, PASSWORD, atau SECURITY_KEY.
  • Gunakan scopedAccessSettings untuk menentukan kontrol sesi khusus aplikasi. Lihat Menentukan konfigurasi untuk aplikasi tertentu untuk mengetahui detailnya.

Terraform

Dalam resource Terraform Google Cloud User Access Binding, isi argumen session_settings untuk mengonfigurasi kontrol durasi sesi umum yang berlaku untuk semua traffic pengguna:

  • session_length: Durasi sesi dalam hitungan detik. Misalnya, 900s menetapkan durasi sesi menjadi 15 menit. 's' di akhir diperlukan.
  • session_length_enabled: Tetapkan ke salah (false) untuk menonaktifkan setelan sesi yang ditentukan.
  • session_reauth_method: Jenis tantangan autentikasi yang digunakan untuk memperbarui kredensial. Opsinya adalah LOGIN, PASSWORD, atau SECURITY_KEY.
  • use_oidc_max_age: Bidang lanjutan yang digunakan untuk mengonfigurasi apakah sesi mematuhi parameter usia maksimum OIDC opsional, yang ditentukan jika kredensial autentikasi adalah token OAuth.

Pertimbangan utama saat menentukan kontrol sesi:

  • Hanya binding akses yang dibuat paling baru yang cocok dengan permintaan yang digunakan saat menyelesaikan setelan kontrol sesi.

Contoh konfigurasi kebijakan

Contoh berikut menunjukkan cara membuat kontrol sesi yang memerlukan autentikasi ulang setiap 18 jam 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.

Untuk mengecualikan aplikasi tertentu dari kontrol sesi, tetapkan kolom sessionLength ke 0s atau sessionLengthEnabled ke false. Metode sessionReauthMethod kemudian akan diabaikan.

gcloud

Konfigurasi setelan:

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 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

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 = "1800s"
        session_length_enabled = true
        session_reauth_method = "LOGIN"
        use_oidc_max_age = false
      }

Untuk menentukan durasi sesi untuk permintaan dari pengguna yang berasal dari Grup Google tertentu menggunakan aplikasi tertentu, seperti Google Cloud konsol, isi argumen scoped_access_settings yang sesuai dengan argumen session_settings di active_settings. Sub-argumen dalam session_settings identik dengan argumen tingkat teratas.

    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 = "1800s"
            session_length_enabled = true
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }