再認証のセッション制御を構成する

セッション コントロールを使用すると、アクセス権が付与された後にユーザーが再認証する必要がある頻度や、完全なログイン、パスワードのみ、またはハードウェア セキュリティ キーのいずれが必要かを設定できます。

セッション制御を適用すると、次のことができます。

  • 特権ユーザーに対して頻繁な再認証を適用する プロジェクト オーナーや課金管理者など、高度な権限を持つユーザーに対して、より頻繁に再認証を要求します。
  • 特定のアプリケーションのセッションを長く設定する Gemini などのコンテキストベースの AI アプリケーションなど、特定のアプリケーションのセッション時間を長くして、最適なパフォーマンスに必要な大きなコンテキスト ウィンドウを維持します。

セッションの長さと再認証方法を定義する

セッション制御は、Access Context Manager バインディングを作成するときに定義できます。セッション制御の詳細については、アクセス バインディングを使用してユーザー グループにポリシーを適用するをご覧ください。

gcloud

  • すべてのアプリケーションのデフォルトのセッション コントロールを設定する

    セッションの長さを設定するには --session-length フラグを使用し、再認証方法を指定するには --session-reauth-method フラグを使用します。たとえば、セッションの有効時間を 30 分(30m)に設定し、LOGINPASSWORDSECURITY_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