コンソールと API のアクセス ポリシーでユーザー アクティビティ条件を構成する

このドキュメントでは、コンソールと API のアクセス ポリシーでユーザー アクティビティ条件を構成する方法について説明します。ユーザー アクティビティ条件は、Security Command Center の Event Threat Detection の 60 を超えるセキュリティ リスク指標によって強化されています。これらの指標の多くは、特定のユーザー アクションによってトリガーできます。

組織のセキュリティ対策を強化し、コンソールと API のアクセス ポリシーにユーザー アクティビティに基づくリスク条件を追加することで、リスクベースの動的なアクセス制御を実現できます。

これらの条件を使用すると、定義されたリスクしきい値を超えたときにユーザーに再認証プロンプトをトリガーすることで、ID ベースの攻撃に大規模に事前に対処し、リスクを軽減できます。たとえば、既知の危険な IP アドレスからシステムにアクセスしようとした場合、通常ログインしない場所からログインした場合、セキュリティ対策を回避しようとする行動が見られた場合などには、再認証が求められます。

アクセス ポリシーにユーザー アクティビティ条件を追加してセキュリティ体制を強化する方法については、コンテキストアウェア アクセスによる Identity Threat Detection and Response(ITDR)をご覧ください。

始める前に

この機能を設定する際は、次の点にご注意ください。

  • ユーザー アクティビティ条件はプレミアム機能であり、Security Command Center Premium または Enterprise のライセンスが必要です。

  • ユーザー アクティビティ条件機能は、指定されたグループ内の Google ID ユーザー アカウントでのみ使用できます。シングル サインオン(SSO)ユーザーとサービス アカウントは、この機能ではサポートされていません。

  • Workforce Identity 連携では、ユーザー アクティビティ条件を使用できません。

  • このドキュメントでは、アプリとは、 Google Cloud コンソール、または Cloud Storage バケットや BigQuery からデータを取得するために使用できる Tableau アプリなどのカスタムアプリを指します。

アクセス ポリシーでユーザー アクティビティの条件を構成する

アクセス ポリシーは、次の方法で構成できます。

  • 新しいアクセス ポリシーとアクセスレベルを作成します。
  • アクセスレベルを作成または更新し、そのアクセスレベルをポリシーに追加します。

ユーザー アクティビティ条件を使用して新しいアクセス ポリシーとアクセスレベルを作成する

アクセスレベルとコンソールと API のアクセス ポリシーを作成するには、次の手順を行います。

コンソール

  1. Google Cloud コンソールで、[コンソールと API のアクセス ポリシー] ページを開きます。

    [コンソールと API のアクセス ポリシー] に移動

  2. [組織を選択] プルダウン リストから組織を選択し、[選択] をクリックします。

  3. [アクセス ポリシーを追加] をクリックします。

  4. [アクセス ポリシーの作成] ダイアログで、アクセスを制限するグループを選択します。

  5. [Google Cloud にアクセスするアプリケーションを選択] で、アクセスを制限するアプリを選択します。アクセス条件は、選択したアプリケーションに適用されます。アプリケーションを選択しない場合、条件はユーザー アクティビティの条件を除き、すべてのアプリケーションへのアクセスを制限します。ユーザー アクティビティの条件は、 Google Cloud コンソールにのみ適用されます。

  6. [アクセスレベル] で、既存のドライランのアクセスレベルまたはアクティブなアクセスレベルを選択するか、新しいアクセスレベルを作成できます。

    1. アクセスレベルを作成するには、[新しいアクセスレベルを作成] をクリックします。

    2. [アクセスレベルのタイトル] フィールドに、アクセスレベルのタイトルを入力します。 タイトルは最大 50 文字です。先頭は英字にしてください。その後には、数字、英字、アンダースコア、スペースのみ使用できます。

    3. プリンシパルがコンソールと API にアクセスできる条件を指定します。

    4. [User Activity] の [Recommended settings] には、次のすべてのリスクタイプが含まれています。アクセスを判断する際に含めないリスクタイプの選択を解除します。

      • 不審なアクション: セキュリティ制限の削除や緩和など、悪意のある可能性のあるアクション。
      • ID の信頼性: アカウントの設定や状態の変更(グループ メンバーシップの変更や、アクティブ(休眠状態ではない)になるなど)。
      • 悪意のあるソース: 不正な行為者に関連付けられた IP アドレスなどの不審なソースからのアクティビティ。
      • 繰り返しのアクション: Identity and Access Management(IAM)拒否など、アクセス試行の失敗が過剰に繰り返されている。
      • 異常な場所: 新しい地域など、通常とは異なる場所からのアクセス。

      [リスク対応]、[再認証を要求する] 設定は、ユーザーが以前に設定したユーザー アクティビティ条件に基づいて Google が判断したリスクしきい値を超えた場合に、ユーザーに再認証を求めることを示します。

    5. 複数の条件を作成した場合は、[Combine condition with] を使用して、アクセスレベルで 1 つの条件のみ(OR)、またはすべての条件(AND)を満たすリクエストが必要かどうかを指定します。

    6. [保存] をクリックします。

  7. [アクセス ポリシーの作成] ページで、次のいずれかを選択します。

    • ドライラン: ポリシーを適用する前に変更をテストします。まずドライランを実行し、ポリシーの結果を使用して変更を加え、ポリシーを適用することをおすすめします。
    • 適用: ポリシーの適用を開始します。
    • Cancel: ポリシーをキャンセルします。

gcloud

  1. custom-level-spec.yaml YAML ファイルを作成します。

    expression: "noRiskSignals(userRisk, [RiskType.IDENTITY_REPUTATION, RiskType.MALICIOUS_SOURCE])"
    
    
  2. 次のコマンドを実行します。

    gcloud access-context-manager levels create risk_based_access_level\
      --title=TITLE \
      --custom-level-spec=YAML_FILE \
      --description="A risk-based access level" \
      --policy=POLICY_NAME
    

    次のように置き換えます。

    • TITLE: アクセスレベルのわかりやすいタイトル。
    • YAML_FILE: カスタム アクセスレベルの仕様 YAML ファイル(custom-level-spec.yaml など)。
    • POLICY_NAME: Access Context Manager ポリシーの名前。
  3. アクセスレベルをバインドしてポリシーに適用します。

アクセスレベルを作成または更新して、ポリシーに追加する

ポリシーにユーザー アクティビティ条件を含めるには、新しいアクセスレベルを作成するか、既存のアクセスレベルを更新して、そのアクセスレベルをポリシーに追加します。

コンソール

  1. アクセスレベルの作成時または更新時にユーザー アクティビティ条件を追加するには、次のドキュメントの手順を完了し、[ユーザー アクティビティ] を指定します。

  2. ユーザー アクティビティを含むアクセスレベルを既存のポリシーに追加するには、アクセス ポリシーを更新してアクセスレベルを追加します。

gcloud

  1. ユーザー アクティビティ条件でアクセスレベルを作成します。

    gcloud access-context-manager levels create risk_based_access_level \
      --title=TITLE \
      --custom-level-spec=risk_level.yaml \
      --description="A risk-based access level" \
      --policy=POLICY_NAME
    

    次のように置き換えます。

    • TITLE: アクセスレベルのわかりやすいタイトル(NoAtypicalLocationRisk など)。
    • risk_level.yaml: 前の手順で作成した YAML ファイルのパス。
    • POLICY_NAME: アクセスレベルを追加する Access Context Manager ポリシーの名前。

    risk_level.yaml YAML ファイルの例:

    expression: "noRiskSignals(userRisk, [RiskType.ATYPICAL_LOCATION, RiskType.BAD_NETWORK_SIGNALS])"
    

    この式は、ユーザーのリスクに異常な場所やネットワーク信号の不良が含まれていない場合にアクセスレベルが付与されることを指定します。

  2. アクセスレベルをスコープとグループにバインドします。

    gcloud access-context-manager cloud-bindings create \
    --group-key=GROUP_KEY \
    --organization=ORGANIZATION_ID \
    --binding-file=BINDING_YAML
    

    次のように置き換えます。

    • GROUP_KEY: Google グループのメールアドレスまたは ID。
    • ORGANIZATION_ID: 組織の ID。
    • BINDING_YAML: YAML 構成ファイル。

    YAML ファイルの例:

    scopedAccessSettings:
     - scope:
         clientScope:
           restrictedClientApplication:
             name: Cloud Console
       activeSettings:
         accessLevels:
         - accessPolicies/123/accessLevels/access_level_1
       dryRunSettings:
         accessLevels:
         - accessPolicies/123/accessLevels/dry_run_access_level_1
    

ユーザー アクティビティ条件を含むアクセスレベルをアクセス ポリシーに追加する

既存のポリシーにリスクベースのアクセスレベルを追加するには、アクセス ポリシーを更新してアクセスレベルを追加します。