Mengonfigurasi kontrol sesi untuk autentikasi ulang

Kontrol sesi memungkinkan Anda mengonfigurasi seberapa sering 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: Mewajibkan pengguna dengan hak istimewa yang ditingkatkan, seperti Project Owner dan administrator penagihan, untuk melakukan autentikasi ulang lebih sering.
  • Mengonfigurasi 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 tanda --session-length untuk menetapkan durasi sesi. Nilai harus 0s, atau antara 1 jam dan 24 jam. Tentukan durasi dalam jam. Misalnya, gunakan "12h" untuk menyetel sesi yang berdurasi 12 jam. Gunakan flag --session-reauth-method untuk menentukan metode autentikasi ulang. Misalnya, Anda dapat menyetel durasi sesi 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 spesifik per aplikasi

    Tentukan scopedAccessSettings dalam file YAML untuk menentukan kontrol sesi bagi aplikasi tertentu menggunakan clientId. Dengan begitu, Anda dapat 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 pengikatan GcpUserAccessBinding.

  • sessionLength adalah durasi sesi dalam detik, yang diformat sebagai jumlah detik yang 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 hitungan detik. Misalnya, 3600s menetapkan durasi sesi menjadi 1 jam. s di akhir wajib diisi.
  • 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.

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 dalam 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 cakupan 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 Google Cloud organisasi
  • GROUP_ID: kunci grup
  • BINDING_FILE_PATH: jalur file binding
  • SESSION_LENGTH: durasi sesi — misalnya, 18h

REST API

Contoh isi JSON 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 = "{Organization ID}"
      group_key = "{Group Key}"
      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 = "SENSITIVE_APP_ID"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "7200s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            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 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 selama satu jam dengan SECURITY_KEY untuk Google Cloud SDK, dan persyaratan autentikasi ulang selama 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 Google Cloud organisasi
  • GROUP_ID: kunci grup
  • BINDING_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 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 = "{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
          }
        }
      }
    }

Mengganti durasi sesi default 16 jam untuk aplikasi Google Cloud

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

Untuk mengganti kebijakan default ini dan mengecualikan aplikasi ini dari kontrol sesi (sehingga durasi sesi menjadi tidak terbatas), Anda dapat membuat binding cloud dengan scopedAccessSettings, dengan 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 Google Cloud organisasi
  • GROUP_ID: kunci grup (misalnya, grup yang berisi semua pengguna yang ingin Anda terapkan penggantian ini)
  • BINDING_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": "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 harus 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 = "{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 = "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
          }
        }
      }
    }