組織内アクセス制限を構成する

このページでは、下り(外向き)プロキシ構成の前提条件、組織 ID の取得方法、組織内アクセス制限ヘッダーの追加方法、ターゲット URL のリストを使用したプロキシの構成方法について説明します。

Google Cloud を管理する Google Cloud 管理者と、下り(外向き)プロキシを構成する下り(外向き)プロキシ管理者は、連携して組織内アクセス制限を構成する必要があります。 組織内アクセス制限で検証されたパートナー ソリューションについては、検証済みのパートナー ソリューションをご覧ください。

始める前に

下り(外向き)プロキシ管理者は、下り(外向き)プロキシが組織内アクセス制限ヘッダーを追加するように構成する前に、次の前提条件を満たしている必要があります。

  • 組織で Google Cloud 管理者ロールと下り(外向き)プロキシ管理者ロールが異なる場合は、Google Cloud 管理者が下り(外向き)プロキシ管理者と連携して下り(外向き)プロキシを構成するようにしてください。

  • 組織のすべてのユーザーからのアウトバンド トラフィックが下り(外向き)プロキシを通過するように、組織のファイアウォール ルールを構成するか、マネージド デバイスを構成します。

  • 組織内の下り(外向き)プロキシに次の機能があることを確認します。

    • ヘッダーの挿入。下り(外向き)プロキシを通過するアウトバンド リクエストに、カスタム HTTP ヘッダーを挿入します。
    • TLS インスペクション。下り(外向き)プロキシへのトラフィックが暗号化されている場合、下り(外向き)プロキシはパケットを復号し、ヘッダーを挿入して、パケットをターゲットに送信する前に再暗号化する必要があります。
    • ヘッダーをフィルタして挿入。省略可。次のフィルタを 1 つ以上サポートし、フィルタ条件と一致するリクエストにのみヘッダーを追加します。

      • ターゲット URL。下り(外向き)プロキシが照合できるターゲット URL のリスト。
      • デバイス ID。下り(外向き)プロキシが照合するデバイス ID のリスト。デバイス ID は、下り(外向き)プロキシに伝播される必要があります。
      • ユーザー ID。下り(外向き)プロキシが照合するユーザー ID のリスト。ユーザー ID は、下り(外向き)プロキシに伝播される必要があります。

組織 ID を取得する

Google Cloud 管理者は、組織内アクセス制限ヘッダーに追加できるように Google Cloud 組織 ID を取得する必要があります。

組織リソース ID を調べるには、次のコマンドを実行します。

   gcloud organizations list

このコマンドによって、所属するすべての組織リソースと、対応する組織リソース ID を一覧表示します。

組織 ID を取得したら、組織内アクセス制限ヘッダーを追加するか、下り(外向き)プロキシ管理者と連携してヘッダーを追加します。

組織内アクセス制限ヘッダーを追加する

下り(外向き)プロキシ管理者がアウトバンド リクエストに組織内アクセス制限ヘッダーを追加するには、次の手順を行います。

  • ヘッダーを作成します。
  • ヘッダーをエンコードします。
  • 下り(外向き)プロキシを構成します。

ヘッダーを作成する

ヘッダーの JSON 表現を、次の形式で作成します。 X-Goog-Allowed-Resources: HEADER_VALUE

HEADER_VALUE には、承認済み Google Cloud 組織 ID のカンマ区切りリストが含まれます。この値は、ウェブセーフな base64 エンコードでエンコードする必要があります。

HEADER_VALUE の JSON 構造は次のとおりです。

  {
  "resources": [string,..],
  "options": string
  }
  • resources。文字列のリスト。このリスト内の各文字列は Google Cloud 組織 ID を参照する必要があります。このリストに含まれる組織 ID は、評価時に認定組織とみなされます。
  • options。次のいずれかの値を含む文字列。
    • "strict"。すべてのリクエスト タイプに組織内アクセス制限ヘッダーをサポートされている Google Cloud サービスに適用します。
    • "cloudStorageReadAllowed"。Cloud Storage への読み取りリクエストは許可されますが、サポートされている Google Cloud サービスに対するすべてのリクエスト タイプに組織内アクセス制限ヘッダーが適用されます。 このオプションを使用すると、Cloud Storage の次の読み取りオペレーションにアクセスできます。
      • storage.objects.get
      • storage.objects.list
      • storage.objects.getIamPolicy
      • storage.buckets.get
      • storage.buckets.list
      • storage.buckets.getIamPolicy

このオプションを説明するために、Alex が Example Organization の管理者で、Lee がこの組織の従業員である例を考えてみましょう。一般公開の Cloud Storage バケットに静的コンテンツを保存し、Example Organization の外部に存在する altostrat.com などのウェブサイトを考えてみましょう。Alex がstrictオプションを使用して Lee のアクセスを Example Organization のみに制限する場合、Lee は、altostrat.com が所有する一般公開の Cloud Storage バケットに存在する altostrat.com の静的コンテンツへのアクセスを拒否されます。この動作はLee がウェブサイトを効果的にブラウジングする能力に影響し、そして静的コンテンツの保存に一般公開の Cloud Storage を使用するウェブサイトでも、同じ動作が発生します。Lee が altostrat.com の静的コンテンツを表示できるようにして、他のすべての Google Cloud アクセスを Example Organization のみに制限するには、Alex はcloudStorageReadAllowedオプションを使用します。

有効な組織内アクセス制限ヘッダーの例を次に示します。

  {
  "resources": ["organizations/1234", "organizations/3456"],
  "options": "strict"
  }

ヘッダーをエンコードする

ウェブセーフな base64 形式で組織 ID をエンコードします。エンコードは、RFC 4648 セクション 5 の仕様に従う必要があります。

たとえば、ヘッダー値の JSON 表現が authorized_orgs.json ファイルに保存されている場合、ファイルをエンコードするには、次の basenc コマンドを実行します。

     $ cat authorized_orgs.json | basenc --base64url -w0
ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiLCAib3JnYW5pemF0aW9ucy8xMDExMTIxMzE0Il0sCiAib3B0aW9ucyI6ICJzdHJpY3QiCn0K

組織 ID をエンコードした後のヘッダーの例を示します。

// Encoded representation
X-Goog-Allowed-Resources: ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiLCAib3JnYW5pemF0aW9ucy8xMDExMTIxMzE0Il0sCiAib3B0aW9ucyI6ICJzdHJpY3QiCn0K

// Plain-text representation (As HTTP disallows some characters, encode the organization ID)
// Plain-text representation is included here only for readability
X-Goog-Allowed-Resources: {"resources": ["organizations/1234", "organizations/3456"], "options": "strict"}

下り(外向き)プロキシを構成する

管理対象デバイスから送信されたリクエストにヘッダーを挿入するために、下り(外向き)プロキシを構成します。

組織の Google Cloud ユーザーが HTTP ヘッダーを明示的に指定した場合、下り(外向き)プロキシが Google Cloud 管理者によって指定された値で、そのユーザー指定の値をオーバーライドします。

このヘッダーを Google Cloud 以外のターゲットに追加しないようにするには、次のターゲットのみのリクエストに対して組織内アクセス制限ヘッダーを追加するように下り(外向き)プロキシを構成します。

  • *.google.com
  • *.googleapis.com
  • *.gcr.io
  • *.pkg.dev
  • *.cloudfunctions.net
  • *.run.app
  • *.tunnel.cloudproxy.app
  • *.datafusion.googleusercontent.com

組織内アクセス制限違反が原因で発生するエラー メッセージについては、エラー メッセージをご覧ください。

次のステップ