Mengonfigurasi kontrol sesi untuk autentikasi ulang

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

Anda dapat menerapkan kontrol sesi untuk melakukan hal berikut:

  • Terapkan autentikasi ulang yang sering bagi pengguna dengan hak istimewa: Wajibkan pengguna dengan hak istimewa yang ditingkatkan, seperti Project Owner dan administrator penagihan, untuk melakukan autentikasi ulang lebih sering.
  • Konfigurasikan sesi yang lebih lama untuk aplikasi tertentu: Izinkan aplikasi yang didukung, seperti konsol Google Cloud , Google Cloud SDK, atau aplikasi OAuth tertentu, 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 flag --session-length untuk menetapkan durasi sesi. Nilai harus 0s, atau antara 1 jam dan 24 jam. Tentukan durasi dalam jam. Misalnya, gunakan "12h" untuk menetapkan sesi yang berdurasi 12 jam. Gunakan flag --session-reauth-method untuk menentukan metode autentikasi ulang. Misalnya, Anda dapat menetapkan waktu durasi sesi selama 3 jam (3h) 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 khusus aplikasi

    Tentukan scopedAccessSettings dalam file YAML untuk menentukan kontrol sesi bagi aplikasi tertentu menggunakan clientId. Tindakan 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.

  • sessionLength adalah durasi sesi dalam detik, yang diformat sebagai jumlah detik diikuti dengan s (misalnya, 3600s). Nilainya harus 0s atau dari 3600s (1 jam) hingga 86400s (24 jam). Jika disetel ke 0s, sessionLengthEnabled harus disetel ke false atau tidak disetel. Anda tidak dapat menetapkan sessionLength ke 0s dan sessionLengthEnabled ke true.
  • 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, tetapkan argumen session_settings untuk mengonfigurasi kontrol durasi sesi umum yang berlaku untuk semua traffic pengguna:

  • session_length: Durasi sesi dalam detik. Misalnya, 3600s menetapkan durasi sesi menjadi 1 jam. s di bagian akhir wajib diisi.
  • session_length_enabled: Tetapkan ke false untuk menonaktifkan setelan sesi yang ditentukan.
  • session_reauth_method: Jenis verifikasi autentikasi yang digunakan untuk memperbarui kredensial. Opsinya adalah LOGIN, PASSWORD, atau SECURITY_KEY.
  • use_oidc_max_age: Kolom lanjutan yang digunakan untuk mengonfigurasi apakah sesi mematuhi parameter usia maksimum OIDC opsional, yang ditentukan jika kredensial autentikasi adalah token OAuth.

Saat menentukan kontrol sesi, hanya binding akses yang paling baru dibuat 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.

Setelan khusus aplikasi di scopedAccessSettings sepenuhnya menggantikan kontrol sesi default (global). Jika setelan tercakup ditentukan untuk aplikasi, kontrol sesi default tidak berlaku untuk aplikasi tersebut.

Untuk mengecualikan aplikasi tertentu dari kontrol sesi saat kontrol global aktif, Anda harus menambahkannya secara eksplisit ke scopedAccessSettings dan menetapkan kolom sessionLength ke 0s dan sessionLengthEnabled ke false.

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 \
    --session-length=SESSION_LENGTH \
    --session-reauth-method LOGIN

Ganti kode berikut:

  • ORG_ID: ID organisasi Google Cloud

  • GROUP_ID: ID grup Cloud Identity yang unik

  • BINDING_FILE_PATH: jalur file binding

  • SESSION_LENGTH: durasi sesi—misalnya, 18h

Untuk mendapatkan ID grup unik, jalankan perintah berikut:

gcloud identity groups describe GROUP_EMAIL

Ganti GROUP_EMAIL dengan alamat email grup Anda. ID grup unik adalah nilai yang ditampilkan setelah groups/ di kolom name dalam output. Misalnya, ID grup unik di groups/01gf8i8311xalqg adalah 01gf8i8311xalqg.

REST API

Contoh isi JSON dari permintaan API:

{
  "groupKey": "GROUP_ID",
  "sessionSettings": {
    "sessionLength": "64800s",
    "sessionReauthMethod": "LOGIN",
    "sessionLengthEnabled": true
  },
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "SENSITIVE_APP_ID"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "7200s",
          "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 Google Cloud .

Terraform

Untuk menentukan kontrol sesi yang berlaku secara global dan untuk aplikasi tertentu, tetapkan argumen session_settings dan scoped_access_settings:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      session_settings {
        session_length = "64800s"
        session_length_enabled = true
        session_reauth_method = "LOGIN"
        use_oidc_max_age = false
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              client_id = "CLIENT_ID"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "7200s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            use_oidc_max_age = false
          }
        }
      }
    }

Ganti kode berikut:

  • ORG_ID: ID numerik organisasi Google Cloud.

  • GROUP_ID: ID grup Cloud Identity atau Directory API Google Workspace mentah. Jangan gunakan alamat email grup atau nama resource "groups/...". Sebagai gantinya, teruskan ID mentah atau gunakan trimprefix(google_cloud_identity_group.example.id, "groups/").

  • CLIENT_ID: client ID OAuth 2.0 aplikasi.

Contoh konfigurasi kebijakan untuk aplikasi Google Cloud

Anda dapat mengonfigurasi kontrol autentikasi ulang khusus aplikasi untuk aplikasi Google Cloud , misalnya mewajibkan SECURITY_KEY untuk Google Cloud SDK dan LOGIN untuk konsol Google Cloud . Contoh berikut menunjukkan cara membuat kontrol sesi yang memerlukan autentikasi ulang setiap jam untuk Google Cloud SDK dengan SECURITY_KEY, dan setiap 4 jam untuk konsol Google Cloud dengan LOGIN.

Bagian scopedAccessSettings dalam file YAML (atau isi JSON) memungkinkan Anda mengganti setelan default untuk aplikasi tertentu. Dalam contoh ini, kita menetapkan persyaratan autentikasi ulang satu jam dengan SECURITY_KEY untuk Google Cloud SDK, dan persyaratan autentikasi ulang empat jam dengan LOGIN untuk konsol Google Cloud 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 organisasi Google Cloud

  • GROUP_ID: ID grup Cloud Identity yang unik

  • BINDING_FILE_PATH: jalur file binding

REST API

Contoh isi JSON dari 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 Google Cloud .

Terraform

Untuk menentukan setelan durasi sesi untuk Google Cloud SDK dan konsol Google Cloud , tetapkan argumen scoped_access_settings yang sesuai:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      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
          }
        }
      }
    }

Ganti kode berikut:

  • ORG_ID: ID numerik organisasi Google Cloud.

  • GROUP_ID: ID grup Cloud Identity atau Directory API Google Workspace mentah. Jangan gunakan alamat email grup atau nama resource "groups/...". Sebagai gantinya, teruskan ID mentah atau gunakan trimprefix(google_cloud_identity_group.example.id, "groups/").

Mengganti durasi sesi default 16 jam untuk aplikasi Google Cloud

Mulai Juni 2026, durasi sesi default selama 16 jam diperkenalkan untuk sebagian organisasi Google Cloud . Kebijakan default ini tidak terlihat di konsol Google Admin dan organisasi Google Cloud yang terpengaruh harus menggunakan Access Context Manager API untuk menggantinya bagi pengguna mereka.

Untuk mengganti kebijakan default ini dan mengecualikan aplikasi ini dari kontrol sesi (membuat durasi sesi menjadi tidak terbatas), Anda dapat membuat binding cloud dengan scopedAccessSettings, di mana sessionLengthEnabled ditetapkan ke false untuk aplikasi Google Cloud SDK dan konsol Google Cloud ("Konsol Cloud").

gcloud

Contoh berikut menunjukkan konfigurasi YAML untuk menonaktifkan kontrol sesi untuk aplikasi ini:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        name: Google Cloud SDK
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false
- scope:
    clientScope:
      restrictedClientApplication:
        name: Cloud Console
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false

Buat atau perbarui binding akses menggunakan file ini:

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 organisasi Google Cloud

  • GROUP_ID: ID grup Cloud Identity yang unik (misalnya, ID grup yang berisi semua pengguna yang ingin Anda terapkan penggantian ini)

  • BINDING_FILE_PATH: jalur file binding

REST API

Contoh isi JSON dari permintaan API:

{
  "groupKey": "GROUP_ID",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Google Cloud SDK"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    }
  ]
}

Buat permintaan POST dalam format berikut:

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

Ganti ORG_ID dengan ID organisasi Google Cloud .

Terraform

Untuk menentukan bahwa kontrol sesi dinonaktifkan untuk Google Cloud SDK dan konsol Google Cloud , tetapkan argumen scoped_access_settings yang sesuai dengan session_length_enabled = false:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Google Cloud SDK"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }

Ganti kode berikut:

  • ORG_ID: ID numerik organisasi Google Cloud.

  • GROUP_ID: ID grup Cloud Identity atau Directory API Google Workspace mentah. Jangan gunakan alamat email grup atau nama resource "groups/...". Sebagai gantinya, teruskan ID mentah atau gunakan trimprefix(google_cloud_identity_group.example.id, "groups/").