세션 제어를 사용하면 사용자가 액세스 권한을 부여받은 후 재인증해야 하는 빈도와 전체 로그인, 비밀번호 전용 또는 하드웨어 보안 키가 필요한지 여부를 구성할 수 있습니다.
세션 제어를 적용하여 다음을 수행할 수 있습니다.
- 권한이 있는 사용자에 대한 빈번한 재인증 시행 프로젝트 소유자, 결제 관리자와 같이 승격된 권한이 있는 사용자는 더 자주 재인증해야 합니다.
- 특정 애플리케이션에 더 긴 세션 구성 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시간마다 재인증이 필요하고 SECURITY_KEY
를 사용하여 특정 애플리케이션 (SENSITIVE_APP_ID
)의 경우 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 https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings