コンテキストアウェア アクセスを使用してアプリとリソースを保護する

Last reviewed 2025-07-22 UTC

このドキュメントでは、コンテキストアウェア アクセスを使用してさまざまな種類のアプリとリソースを保護する方法について説明します。コンテキストアウェア アクセスは、認証の強度、デバイスのポスチャー、ネットワーク ロケーション、地理的位置などの属性に基づいてユーザーのアクセスを制御するセキュリティ アプローチです。このアプローチは、セキュリティ アクセスに基本的なユーザー ID を使用するだけではなく、ゼロトラスト セキュリティ モデルを実装して、全体的なセキュリティ ポスチャーを強化する際に役立ちます。ベスト プラクティスの詳細については、コンテキストアウェア アクセスを使用してアプリとリソースを保護するためのベスト プラクティスをご覧ください。

アプリと Google Cloud リソースを保護するために、さまざまなコンテキスト要因の組み合わせに基づいて、きめ細かいアクセス制御を定義できます。Access Context Manager を使用すると、アクセスレベルとサービス パラメータを含むアクセス ポリシーを定義できます。

このドキュメントは、Identity and Access Management(IAM)と Google Cloud リソースおよびアプリのセキュリティを担当するセキュリティ プロフェッショナルを対象としています。このドキュメントは、Access Context Manager、Google Cloud、IAM 管理について理解していることを前提としています。

アクセスレベル

アクセスレベルを使用すると、ユーザーとそのデバイスが特定の信頼レベルを満たすために満たす必要がある一連の要件を定義できます。

たとえば、Access Context Manager を使用して、組織に次のアクセスレベルを構成できます。

  • 基本: 最小レベルと見なされる基本的な要件セット。
  • 中: 従業員と企業デバイスが満たすことが想定される、より厳格な要件セット。このアクセスレベルでは、外部人材のユーザーと企業以外のデバイスが除外される場合があります。
  • 高: 特定の従業員とデバイスのみが満たす厳格な要件。

アクセスレベル自体は、ユーザーやデバイスに直接影響しません。アクセスレベルは要件を指定しますが、それらの要件を適用するユーザー、アプリ、リソースは定義しません。アクセスレベルは、特定のアプリやリソースへのアクセスを構成するときに参照できる、再利用可能な構成要素のようなものです。

Google Cloud では、このドキュメントで説明する次のアプリやリソースなど、さまざまな種類のアプリやリソースにアクセスレベルを使用できます。

  • Google Workspace と Google Cloud以外のアプリとサービス
  • Google Cloud コンソールと Google Cloud API
  • Virtual Private Cloud(VPC)サービス境界
  • SSH および RDP アクセス用の Identity-Aware Proxy(IAP)
  • ウェブアプリ用の IAP

アプリとリソース

以降のセクションでは、さまざまな種類のアプリとリソースにアクセスレベルを適用する方法と、種類によってプロセスがどのように異なるかについて説明します。

Google Workspace と Google Cloud以外のアプリとサービス

Google Cloud 以外でコンテキストアウェア アクセスをサポートするアプリとサービスには、次のものがあります。

  • Google 管理コンソール
  • Gmail、Google Meet、Google カレンダーなどの Google Workspace アプリ
  • Gemini やデータポータルなどの他の Google アプリ
  • カスタム SAML アプリ

Google Cloud以外の Google Workspace、アプリ、サービスへのアクセスを制限するには、管理コンソールでサービスまたはアプリごとにコンテキストアウェア アクセスを構成します。管理コンソールで、次の操作を行います。

  • アクセスレベルを適用するスコープを定義します。スコープは、次の組み合わせです。

    • 保護する特定のサービスまたは SAML アプリ。
    • 関連するユーザーを含む組織部門(OU)またはグループ。
  • 選択したスコープに適用するアクセスレベルを選択します。

アクセスレベルを割り当てるときに、そのアクセスレベルの設定を変更することもできます。アクセスレベルは、ユーザーがウェブアプリに直接アクセスする場合にのみ適用されるように指定できます。また、モバイルアプリや他のアプリが API にアクセスするときにもレベルが適用されるように指定することもできます。詳しくは、「アプリにコンテキストアウェア アクセスレベルを割り当てる」のアクセスレベルの設定に基づくアプリの動作をご覧ください。

特定のユーザーとアプリに複数の割り当てが適用される場合があります。たとえば、ユーザーが Employees 組織部門のメンバーであり、all-apac チームのメンバーである場合、それぞれの OU とグループに異なるアクセスレベルが割り当てられている場合があります。この場合、Cloud Identity と Google Workspace は、優先度が最も高い割り当てのみを適用します。

  • グループベースの割り当ては、組織部門ベースの割り当てよりも優先されます。
  • グループ内では、相対的な優先度をカスタマイズできます。
  • 組織部門内では、ルート組織部門の相対的な優先度が最も低くなります。

Cloud Identity と Google Workspace では、コンテキストアウェア アクセスのログでコンテキストアウェア アクセス イベントを確認して分析できます。

Google Cloud コンソールと Google Cloud API

アクセス バインディングを使用して、 Google Cloud コンソールとGoogle Cloud API へのコンテキストアウェア アクセスを構成できます。

Google Cloud API は認証に OAuth 2.0 を使用します。 Google CloudAPI を使用するには、Google が発行した有効な OAuth アクセス トークンが必要です。このトークンは、Google Cloud OAuth スコープのいずれかに対して発行されている必要があります。アクセス バインディングは、ユーザーがこのようなアクセス トークンを取得する機能を制限します。その結果、アクセス バインディングにより、 Google Cloud コンソールと、 Google Cloud OAuth スコープを使用するすべての OAuth アプリへのアクセスが制限されます。次に例を示します。

アクセス バインディングは、グループをアクセスレベルにリンクします。各グループに設定できるアクセス バインディングは 1 つだけです。各アクセス バインディングでは、次の構成を定義できます。

  • 個々の OAuth アプリにアクセスレベルを割り当てる scopedAccessSettings リスト。
  • デフォルトのアクセスレベル。

アクセス バインディングでスコープ設定されたアクセス設定とデフォルトのアクセスレベルの両方が指定されている場合、2 つのアクセスレベルは OR セマンティクスを使用して結合されます。ユーザーは、OAuth アプリにアクセスするために、アクセスレベルのいずれか 1 つを満たせばよくなります。

アクセス バインディングは、グループの直接メンバーと間接メンバーの両方に適用されます。ユーザーが複数のグループのメンバーである場合、複数のアクセス バインディングが適用される可能性があり、その結果、複数のアクセスレベルが適用される可能性があります。この場合、アクセスレベルは OR セマンティクスを使用して結合されます。つまり、ユーザーはアクセスレベルのいずれか 1 つを満たす必要があります。

VPC サービス境界

VPC サービス境界を作成するときに、制限付きサービスのリストを指定します。制限付きサービスにはサービス境界内からアクセスできますが、デフォルトではサービス境界外からアクセスできません。

サービス境界外からのアクセスを許可するには、上り(内向き)ルールを使用します。上り(内向き)ルールを使用すると、外部アクセスを許可する条件を指定できます。アクセスレベルを使用すると、上り(内向き)ルールでコンテキストアウェア アクセスを適用できます。

VPC サービス境界には、複数の上り(内向き)ルールを設定できます。その結果、特定のユーザーとアプリに複数の上り(内向き)ルールが適用され、これらの上り(内向き)ルールに異なるアクセスレベルが必要になる場合があります。この場合、アクセスレベルは OR セマンティクスを使用して評価され、ユーザーはアクセスレベルのいずれか 1 つを満たす必要があります。

アクセス バインディングを VPC サービス境界の上り(内向き)ルールと組み合わせることができます。アクセス バインディングと上り(内向き)ルールで、特定のユーザーとアプリに異なるアクセスレベルが指定されている場合、それらのレベルは AND セマンティクスを使用して結合されます。その場合、ユーザーは両方のアクセスレベルを満たす必要があります。

VPC サービス境界内のリソースへのアクセス試行を確認して分析するには、VPC Service Controls の監査ログまたは VPC Service Controls 違反分析ツールを使用します。

VM への SSH アクセスと RDP アクセス

IAP TCP 転送を使用して、VM への SSH アクセスと RDP アクセスのコンテキストアウェア アクセスを構成できます。

IAP TCP 転送は、アクセス バインディングと VPC サービス境界の上り(内向き)ルールをサポートしています。 Google Cloud コンソールと Cloud APIs のアクセス バインディングは、IAP TCP 転送に自動的に適用されます。

サービス境界に制限付きサービスとして iaptunnel.googleapis.com サービスが含まれている場合、上り(内向き)ルールは IAP TCP 転送に自動的に適用されます。ベスト プラクティスの詳細については、IAP TCP 転送を制限付きサービスとして含めるをご覧ください。

IAM 条件を使用してコンテキストアウェア アクセスを構成することもできます。IAM 条件は、アクセス バインディングと VPC サービス境界の上り(内向き)ルールの代わりに使用することも、すべてを組み合わせて使用することもできます。

  • ユーザーまたはグループに IAP で保護されたトンネル ユーザーのロール(roles/iap.tunnelResourceAccessor)を付与します。次に、ロール バインディングで、ユーザーが特定のアクセスレベルを満たす必要がある IAM 条件式を追加します。たとえば、式は次のようになります。

    "accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
    
  • 必要に応じて、IAM 条件をカスタマイズして、複数のアクセスレベルを要求したり、他のチェックを含めたりできます。

特定のユーザーとアプリが IAP TCP 転送にアクセスすると、アクセス バインディング、上り(内向き)ルール、IAM 条件が適用される場合があります。このシナリオでは、アクセスレベルは AND セマンティクスを使用して結合され、ユーザーはすべてのアクセスレベルを満たす必要があります。

IAP TCP 転送へのアクセス試行を確認して分析するには、IAP のデータアクセスの監査ログを有効にする必要があります。

ウェブアプリ

IAP を使用して、ウェブアプリのコンテキストアウェア アクセスを構成できます。

ウェブアプリ用の IAP は、IAP TCP 転送とは異なります。

  • IAP で構成されたウェブアプリには、アクセス バインディングは適用されません。これは、IAP が使用する OAuth アプリが Google Cloud OAuth スコープを使用しないためです。
  • IAP はGoogle Cloud API ではなく、制限付きサービスとして構成できないため、VPC サービス境界の上り(内向き)ルールは、IAP で構成されたウェブアプリには適用されません。

IAP を使用してウェブアプリのコンテキストアウェア アクセスを構成するには、IAM 条件を使用する必要があります。

  • ユーザーまたはグループに IAP で保護されたウェブアプリ ユーザーのロール(roles/iap.httpsResourceAccessor)を付与します。次に、ロール バインディングで、ユーザーが特定のアクセスレベルを満たす必要がある IAM 条件式を追加します。たとえば、式は次のようになります。

    "accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
    
  • 必要に応じて、IAM 条件をカスタマイズして、複数のアクセスレベルを要求したり、他のチェックを含めたりできます。

IAP で構成されたウェブアプリへのアクセス試行を確認して分析するには、IAP のデータアクセスの監査ログを有効にする必要があります。

次のステップ

寄稿者

著者: Johannes Passing | クラウド ソリューション アーキテクト

その他の寄稿者: Ido Flatow | クラウド ソリューション アーキテクト