セッション管理では、アクセス権が付与された後にユーザーが再認証する必要がある頻度と、完全なログイン、パスワードのみ、またはハードウェア セキュリティ キーのいずれが必要かを設定できます。
セッション管理を適用すると、次のことができるようになります。
- 特権ユーザーに対して再認証を頻繁に適用する: プロジェクト オーナーや課金管理者など、権限を昇格できるユーザーに対して、より頻繁に再認証するよう要求します。
- 特定のアプリケーションのセッションが長くなるよう構成する: 特定のアプリケーション(Gemini のようなコンテキストベースの AI アプリケーションなど)のセッション時間を長くして、パフォーマンスの最適化に必要な大きなコンテキスト ウィンドウを維持します。
セッションの長さと再認証方法を定義する
セッション管理は、Access Context Manager バインディングを作成するときに定義できます。セッション管理の詳細については、アクセス バインディングを使用してユーザー グループにポリシーを適用するをご覧ください。
gcloud
すべてのアプリケーションのデフォルトのセッション管理を設定する
セッションの長さを設定するには
--session-length
フラグを使用し、再認証方法を指定するには--session-reauth-method
フラグを使用します。たとえば、セッション継続時間を 30 分(30m)に設定し、LOGIN
、PASSWORD
、SECURITY_KEY
の再認証方法を設定できます。これは、アプリ固有の設定でオーバーライドされていない限り、すべてのアプリケーションに適用されます。
-
YAML ファイルで
scopedAccessSettings
を定義し、clientId
を使用して特定のアプリケーションのセッション管理を指定します。これにより、これらのアプリのデフォルトのセッション管理をオーバーライドできます。その後、--binding-file flag
を使用して YAML ファイルを渡すことができます。
API
POST リクエストの JSON 本文の sessionSettings object
内で sessionLength
フィールドと sessionReauthMethod
フィールドを定義して、GcpUserAccessBinding
バインディングを作成または更新します。scopedAccessSettings
を使用して、アプリケーション固有のセッション管理を定義します。詳細については、特定のアプリケーションの構成を定義するをご覧ください。
セッション管理を定義する際の主な考慮事項は次のとおりです。
clientId
を使用して Google Cloud コンソールを指定することはできません。Google Cloud コンソールにセッション管理を適用するには、デフォルトとして定義してから、他のアプリケーションの例外を作成します。- セッション管理設定を解決するときに使用されるのは、リクエストと一致する、作成済みの最新のアクセス バインディングのみです。
ポリシー構成の例
次の例は、再認証を必要とするセッション管理の作成方法を示しています。この再認証は、デフォルトでは LOGIN
で 18 時間ごとに、特定のアプリケーション(SENSITIVE_APP_ID
)では SECURITY_KEY
で 2 時間ごとに行われます。
デフォルトの設定
Google Cloud CLI コマンドの --level
、--session-length
、--session-reauth-method
フラグ(または API 呼び出しの JSON 本文の対応するフィールド)は、scopedAccessSettings
で明示的に定義されていないすべてのアプリケーションのデフォルトの動作を設定します。
アプリケーション固有の設定
YAML ファイル(または JSON 本文)の scopedAccessSettings
セクションでは、特定のアプリケーションのデフォルト設定をオーバーライドできます。この例では、クライアント ID が SENSITIVE_APP_ID
のアプリケーションに SECURITY_KEY
で再認証する場合の要件として、2 時間を設定しています。
gcloud
設定の構成:
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
アクセス バインディングを作成します。
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
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
}
]
}
}
]
POST リクエスト:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings