コンテキストアウェア アクセスのトラブルシューティング

このページは、セキュリティ管理者とクラウド管理者が、Access Context Manager のアクセスレベル、コンテキストアウェア アクセスのサービス アカウント バインディング、証明書ベースのアクセス、管理対象モバイル デバイスに関する問題を診断して解決するのに役立ちます。

アクセスレベルの管理に関する問題

このセクションでは、Access Context Manager でアクセスレベルを管理する際に発生する可能性がある問題と、その修正方法について説明します。

Google Workspace のコンテキストアウェア アクセス ポリシーで使用されているアクセスレベルは削除できません

Google Workspace のコンテキストアウェア アクセス ポリシーに割り当てられている Access Context Manager のアクセスレベルを削除しようとすると、次の問題が発生します。

使用するインターフェースに応じて、次のいずれかのエラー メッセージが表示されます。

  • Cloud de Confiance コンソール:

    Cannot delete Access Level 'ACCESS_LEVEL_TITLE'. It's currently
    used in Google Workspace Context-Aware Access policies. To delete this
    Access Level, first remove it from all app assignments and default rules in
    the Google Workspace Admin Console.
    
  • Google Cloud CLI:

    ERROR: (gcloud.access-context-manager.levels.delete) FAILED_PRECONDITION:
    Cannot delete Access Level: ACCESS_LEVEL_NAME. This Access Level
    is currently being used by Google Workspace Context-Aware Access policies.
    Please remove the Access Level from all assignments in the Google Workspace
    Admin Console before attempting deletion.
    
  • Access Context Manager API:

    FAILED_PRECONDITION: WORKSPACE_CAA_LIEN_PROTECTED
    

Google Workspace のコンテキストアウェア アクセス ポリシーと Access Context Manager は、基盤となるアクセスレベルを共有します。Google Workspace ユーザーのサービスが誤って中断されないように、システムは、Google Workspace のコンテキストアウェア アクセス ポリシーに割り当てられているアクセスレベルに削除ロック(リーエン)を設定します。ポリシーがアクティブ モード、モニターモード、警告モードのいずれであっても、このロックが設定されます。

この問題を解決するには、アクセスレベルを削除する前に、Google 管理コンソールでアクセスレベルの割り当てを削除します。

  1. 管理コンソールにログインします。
  2. [セキュリティ] > [アクセスとデータ管理] > [コンテキストアウェア アクセス] にアクセスします。
  3. アクセスレベルが割り当てられている Google Workspace のコアアプリ、SAML アプリ、デフォルトの API ルールを特定します。
  4. それらのポリシーからアクセスレベルの割り当てを解除します。詳しくは、アプリにコンテキストアウェア アクセスレベルを割り当てるをご覧ください。
  5. すべての Google Workspace コンテキストアウェア アクセスの割り当てからアクセスレベルを削除すると、システムによって削除ロックが自動的に削除されます。 Cloud de Confiance コンソールまたは gcloud CLI を使用して、アクセスレベルの削除を再試行します。

別のアクセスレベルから参照されているアクセスレベルを削除できない

このエラーは、別の基本アクセスレベルまたはカスタム アクセスレベルの条件として参照されているアクセスレベルを削除しようとしたときに発生することがあります。

この問題を解決するには、アクセスレベルの依存関係を確認し、参照しているアクセスレベルを更新して、アクセスレベルを削除する前に依存関係を削除します。

アクセスレベルを削除または変更した後に Cloud de Confiance コンソールからロックアウトされる

次の問題は、Cloud de Confiance アクセス バインディングで参照されているアクセスレベルを削除または変更した後に、Google グループの管理者またはユーザーが Cloud de Confiance コンソールまたは Cloud de Confiance by S3NS API にアクセスできない場合に発生します。 Cloud de Confiance アクセス バインディングは、参照されるアクセスレベルに削除ロックを設定しないため、使用中のアクセスレベルを削除すると、バインドされたグループのアクセス評価が失敗します。

この問題を解決してアクセスを回復するには、管理コンソールで影響を受けるユーザーを Google グループから削除します。

  1. Google グループを管理できる管理者アカウントを使用して管理コンソールにログインします。
  2. [ディレクトリ] > [グループ] に移動し、アクセス バインディングで使用されている Google グループを選択します。
  3. 影響を受ける管理者アカウントまたはユーザー アカウントをグループから削除して、アクセス バインディングをバイパスし、 Cloud de Confiance コンソールとCloud de Confiance API へのアクセスを復元します。
  4. アクセスを回復したら、有効なアクセスレベルを参照するようにアクセス バインディングを更新または削除し、ユーザーを Google グループに再度追加します。

サービス アカウントの問題

このセクションでは、サービス アカウントのコンテキストアウェア アクセスを構成するときに発生する可能性がある問題と、その修正方法について説明します。

サービス アカウントへのアクセスが拒否される

コンテキストアウェア アクセス ポリシーをバインドした後、コンテキストアウェア アクセスがサービス アカウントによる Cloud de Confiance リソースへのアクセスを拒否すると、次の問題が発生します。

この問題は通常、次のいずれかの理由で発生します。

  • ドライラン モードではなく、自動適用モードでコンテキストアウェア アクセス ポリシーをバインドした。
  • アクセスレベルに、必要なすべてのソースが含まれていない(アクセスレベルの作成時に含めなかった IP アドレスなど)。
  • ユーザー ID が、ユーザー アクセスを制限するコンテキストアウェア アクセス ポリシーがバインドされている Google グループのメンバーであるため、サービス アカウントへの呼び出しフローが妨げられています。

この問題を解決するには、次の操作を行います。

  1. 適用モードの代わりにドライラン モードを使用すると、サービス アカウントはアクセスを拒否されることなくリソースにアクセスし、適用イベントをログに記録できます。
  2. 次のログクエリを実行して、Cloud Audit Logs のログエントリを確認します。

    protoPayload.serviceName="contextawareaccess.googleapis.com"
    
  3. Cloud Audit Logs ログエントリでコンテキストアウェア アクセスが報告するアクセスレベルのリソース名を確認します。

  4. アクセスレベルが組織レベルのリソースであり、サービス アカウントでサポートされている属性のみを使用していることを確認します。

  5. コンテキストアウェア アクセス ポリシーが目的のサービス アカウントにバインドされていること、アクセスレベルに必要なすべての IP アドレスまたはソース ネットワークが含まれていることを確認します。

  6. ユーザー ID がグループ単位のコンテキストアウェア アクセス ポリシーによって制限されていないことを確認します。

証明書ベースのアクセスに関する問題

このセクションでは、ワークロードまたはエンタープライズ証明書に証明書ベースのアクセスを使用する際に発生する可能性がある問題と、その修正方法について説明します。

ワークロードの認可時に 403 Forbidden エラーが発生する

ワークロードが Workload Identity 連携の証明書ベースのアクセスを使用してCloud de Confiance リソースにアクセスしようとすると、次の問題が発生します。

403 Forbidden, user does not have permission.

この問題を解決するには、Identity and Access Management(IAM)ポリシーを確認して、Workload Identity プールに Cloud de Confiance リソースへのアクセス権があることを確認します。詳細については、Workload Identity 連携の証明書ベースのアクセスを構成するをご覧ください。

google.subject 属性の未承認クライアント エラー

バックエンドが属性マッピングに基づいてクライアント証明書から google.subject 属性の値を抽出できない場合、次の問題が発生します。

Unauthorized_client: Could not obtain a value for google.subject from the given
credential.

この問題を解決するには、クライアント証明書を検査し、属性マッピングで参照されている証明書フィールドに有効な値が含まれていることを確認します。

コンテキストアウェア アクセス バインディングを有効にした後に予期しないアクセス拒否が発生する

コンテキストアウェア アクセス バインディングを有効にした後、コンテキストアウェア アクセスが有効なワークロード リクエストを予期せず拒否すると、次の問題が発生します。

この問題を解決するには、コンテキストアウェア アクセス バインディングをドライラン モードに移行して、アクセスの評価と監査ログの生成を継続しながら、トラフィックのブロックを解除します。

gcloud alpha access-context-manager cloud-bindings update \
    --binding=BINDING_ID \
    --organization=ORG_ID \
    --level= \
    --dry-run-level=DRY_RUN_ACCESS_LEVEL_ID

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

  • BINDING_ID: コンテキストアウェア アクセス バインディングの ID。
  • ORG_ID: 組織の ID。
  • DRY_RUN_ACCESS_LEVEL_ID: ドライラン アクセスレベルの完全なリソース名(例: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME)。

または、コンテキストアウェア アクセス バインディングを削除して、トラフィックのブロックをすぐに解除することもできます。

gcloud alpha access-context-manager cloud-bindings delete \
    --binding=BINDING_ID \
    --organization=ORG_ID

アクセスを復元したら、コンテキストアウェア アクセスの監査ログを確認して、コンテキストアウェア アクセスがリクエストを拒否した理由を特定します。

エンタープライズ証明書の条件の検証が失敗する

エンタープライズ証明書の条件を構成しても、アクセスレベルでエンタープライズ証明書を持つデバイスへのアクセスが拒否されると、次の問題が発生します。

この問題を解決するには、証明書の属性を確認し、デバッグ用にエンドポイントの確認ログを収集します。

  1. 管理コンソールの [デバイスの詳細] ページで証明書の属性を確認し、カスタム アクセスレベルの発行元と属性が一致していることを確認します。
  2. Google Chrome ブラウザのアドレスバーに「chrome://policy」と入力し、AutoSelectCertificateForUrls が [マシン](ChromeOS の場合は [現在のユーザー])に設定されていること、[競合] ステータスが表示されていないことを確認します。
  3. Endpoint Verification 拡張機能のログをダウンロードして、証明書の選択エラーを調べます。
    1. Endpoint Verification 拡張機能を右クリックし、[オプション] を選択します。
    2. [Log Level] > [All] > [Download Log] を選択します。
    3. 問題が解決しない場合は、Cloud カスタマーケアでサポートケースを開き、ログを共有してデバッグを続行してください。

モバイル デバイスに関する問題

このセクションでは、アクセスレベルでモバイル デバイスを使用するときに発生する可能性がある問題と、その修正方法について説明します。

アクセスレベルが、準拠しているモバイル デバイスからのリクエストを拒否する

アクセスレベルとモバイル デバイス管理の設定が正しく構成されているにもかかわらず、アクセスレベルで Android または iOS モバイル デバイスからのユーザー リクエストが拒否される場合、次の問題が発生します。

この問題は、サーバーサイドのデバイスの状態が更新されていない場合や、組織のユーザー アカウントにログインしているときに Safari または Chrome からリクエストが送信されていない場合に発生します。

この問題を解決するには、組織のユーザー アカウントを使用して Safari または Chrome からリクエストが送信されていることを確認し、サーバーサイドのデバイスの状態を強制的に更新します。

  • Android デバイス:

    1. デバイスのブラウザで accounts.google.com にログインしている場合は、アカウントからログアウトします。
    2. デバイスの設定アプリを開き、[アカウント] に移動します。
    3. デバイスから企業の Google アカウントを削除します。
    4. 企業の Google アカウントをデバイスに再度追加します。
  • iOS デバイス:

    1. デバイスのブラウザで accounts.google.com にログインしている場合は、アカウントからログアウトします。
    2. デバイスで Google アプリ(Gmail など)を開きます。
    3. デバイスから企業の Google アカウントを削除します。
    4. 企業の Google アカウントをデバイスに再度追加します。