サービス境界の作成

このページでは、サービス境界の作成方法について説明します。

始める前に

サービス境界の作成

このセクションでは、サービス境界の作成、境界へのプロジェクトの追加、サービスの保護を行う方法について説明します。

サービス境界を作成する際、必要に応じて、境界外から保護されたサービスへのアクセスを許可することや、境界内の他のサービスやユーザーにアクセス可能なサービスを指定できます。境界を作成した後に、これらの設定を構成することもできます。

サービス境界の作成後、その変更が反映されて有効になるまで 30 分ほどかかる場合があります。

Console

  1. Google Cloud Console のナビゲーション メニューで [セキュリティ] をクリックし、続いて [VPC Service Controls] をクリックします。

    [VPC Service Controls] に移動

  2. プロンプトが表示されたら、組織を選択します。

  3. [VPC Service Controls] ページで、境界モードを選択します。デフォルトでは、自動適用モードが選択されています。ドライランの境界を作成する場合は、[ドライラン モード] をクリックします。

    自動適用の境界では、保護されたサービスへのアクセスが、実際に阻止されます。ドライランの境界では、サービスが保護されている場合と同様に、境界違反をログに記録しますが、それらのサービスへのアクセスは阻止されません。自動適用モードとドライラン モードの詳細については、サービス境界をご覧ください。

  4. [新しい境界] をクリックします。

  5. [新しい VPC サービス境界] ページの [境界名] ボックスに、境界の名前を入力します。

    境界名の最大長は 50 文字で、先頭は英字にする必要があります。ASCII ラテン文字(a~z、A~Z)、数字(0~9)、アンダースコア(_)のみを使用できます。境界名では大文字と小文字が区別され、アクセス ポリシー内で一意である必要があります。

  6. 境界内で保護するプロジェクトを選択するには、以下のようにします。

    1. [プロジェクト] をクリックします。

    2. [プロジェクト] ペインで、[プロジェクトを追加] をクリックします。

    3. 境界にプロジェクトを追加するには、[プロジェクトの追加] ダイアログで、プロジェクトのチェックボックスをオンにします。

    4. [プロジェクトを追加] をクリックします。n 個のプロジェクトが追加されたことを示すメッセージが表示されます。n は選択したプロジェクトの数です。

    5. [完了] をクリックします。追加したプロジェクトが [保護するプロジェクト] に表示されます。

  7. 境界内で保護するサービスを選択するには、以下のようにします。

    1. [制限付きサービス] をクリックします。

    2. [制限付きサービス] ペインで [サービスを追加] をクリックします。

    3. 境界内のサービスを保護するには、[制限するサービスの指定] ダイアログで、そのサービスのチェックボックスをオンにします。

    4. [n 個のサービスを追加] をクリックします。ここで、n は、前の手順で選択したサービスの数です。

  8. 省略可: 境界内にアクセスできるサービスを定義する場合は、以下のようにします。

    1. [VPC のアクセス可能なサービス] をクリックします。

    2. [VPC のアクセス可能なサービス] ペインで [選択したサービス] を選択します。

      境界が保護するすべての制限付きサービスをアクセス可能なサービスのリストにすばやく追加するには、[すべての制限付きサービスを含める] を選択します。このオプションを使用すると、制限付きサービスに加えて、個別のサービスを含めることができます。

    3. [VPC でアクセス可能なサービスを追加] をクリックします。

      アクセス可能なサービスは、境界の作成後に追加することもできます。

    4. [アクセス可能なサービスを指定してください] ページで、境界内でアクセス可能にするサービスを選択します。

    5. [n 個のサービスを追加] をクリックします。ここで、n は、前の手順で選択したサービスの数です。

  9. 省略可: アクセスレベルを使用して、境界の外部から保護されたリソースへのアクセスを許可するには、以下のようにします。

    1. [アクセスレベル] をクリックします。

    2. [上り(内向き)ポリシー: アクセスレベル] ペインで、[アクセスレベルを選択] ボックスをクリックします。

      アクセスレベルは、境界が作成された後に追加することもできます。

    3. 境界に適用するアクセスレベルのチェックボックスを選択します。

  10. 境界外の API クライアントから境界内のリソースへのアクセスを許可するには、以下のようにします。

    1. [上り(内向き)ポリシー] をクリックします。

    2. [上り(内向き)ルール] ペインで、[ルールの追加] をクリックします。

    3. API クライアントの From 属性GCP リソース / サービスの To 属性を指定します。

      上り(内向き)ルールの属性のリストについては、上り(内向き)ルールのリファレンスをご覧ください。

  11. 境界外のリソースに境界内の API クライアントまたはリソースに対するアクセスを許可するには、以下のようにします。

    1. [下り(外向き)ポリシー] をクリックします。

    2. [下り(外向き)ルール] ペインで、[ルールの追加] をクリックします。

    3. API クライアントの From 属性GCP リソース / サービスの To 属性を指定します。

      下り(外向き)ルールの属性の一覧については、下り(外向き)ルールのリファレンスをご覧ください。

  12. [境界を作成] をクリックします。

gcloud

ドライラン モードで新しい境界を作成するには、dry-run create コマンドを使用します。

gcloud access-context-manager perimeters dry-run create NAME \
  --perimeter-title=TITLE \
  --perimeter-type=TYPE \
  --perimeter-resources=PROJECTS \
  --perimeter-restricted-services=RESTRICTED-SERVICES \
  --perimeter-ingress-policies=INGRESS-FILENAME.yaml \
  --perimeter-egress-policies=EGRESS-FILENAME.yaml \
[--perimeter-access-levels=LEVELS] \
  [--perimeter-enable-vpc-accessible-services] \
  [--perimeter-vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

自動適用モードで境界を作成する gcloud コマンドについては、perimeters create コマンドgcloud リファレンスをご覧ください。

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

  • NAME は、境界の名前です。

    境界名の最大長は 50 文字で、先頭は英字にする必要があります。ASCII ラテン文字(a~z、A~Z)、数字(0~9)、アンダースコア(_)のみを使用できます。境界名では大文字と小文字が区別され、アクセス ポリシー内で一意である必要があります。

  • TITLE は、人間が読める境界のタイトルです。

  • TYPE は、境界のタイプです。例: 標準境界、ブリッジ境界など。

  • PROJECTS は、1 つ以上のプロジェクト番号を含むカンマ区切りのリストです。たとえば、projects/12345 や、projects/12345,projects/67890 です。プロジェクト番号だけがサポートされています。プロジェクト名やプロジェクト ID は、使用できません。

  • RESTRICTED-SERVICES は、1 つ以上のサービスを含むカンマ区切りのリストです。たとえば、storage.googleapis.com や、storage.googleapis.com,bigquery.googleapis.com です。

  • INGRESS-FILENAME は、ソース、ID、サービス、プロジェクトの各属性の値を含む JSON または YAML ファイルです。上り(内向き)ルールの属性のリストについては、上り(内向き)ルールのリファレンスをご覧ください。

  • EGRESS-FILENAME は、ID、プロジェクト、サービスの各属性の値を含む JSON または YAML ファイルです。下り(外向き)ルールの属性の一覧については、下り(外向き)ルールのリファレンスをご覧ください。

  • POLICY_NAME は組織のアクセス ポリシーの名前です。例: 330193482019デフォルトのアクセス ポリシーを設定していない場合に限り、ポリシー名を含める必要があります。

その他のオプション

  • --perimeter-access-levels は、境界を作成するときにアクセスレベルを追加する場合にのみ必要です。LEVELS は、サービス境界に適用する 1 つ以上のアクセスレベルのカンマ区切りリストです。

    アクセスレベルは、境界の作成後に追加することもできます。

  • --perimeter-enable-vpc-accessible-services--perimeter-vpc-allowed-services は、境界を作成するとき VPC のアクセス可能なサービスを追加する場合にのみ必要です。ACCESSIBLE-SERVICES は、境界内にある 1 つ以上のサービスのカンマ区切りのリストで、ネットワークにアクセスを許可します。このリストにないサービスにはアクセスできません。

    サービスにアクセスできるようにするには、境界の構成時にサービスを保護する必要があります。

    境界で保護されているすべてのサービスを簡単に含めるには、ACCESSIBLE-SERVICES のリストに RESTRICTED-SERVICES を指定します。例: --perimeter-vpc-allowed-services=RESTRICTED-SERVICES

    VPC のアクセス可能なサービスは、境界を作成した後に定義することもできます。

たとえば、次のコマンドでは、プロジェクト example-projectexample-project2 を含む ProdPerimeter という名前の新しい境界を作成し、Cloud Storage API と BigQuery API を制限します。

gcloud access-context-manager perimeters \
  dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \
  --perimeter-resources=projects/12345,projects/67890 \
  --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --perimeter-ingress-policies=ingress.yaml \
  --perimeter-egress-policies=egress.yaml \
  --policy=330193482019

API

サービス境界を作成するには、accessPolicies.servicePerimeters.create を呼び出します。

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

ここで

  • POLICY_NAME は組織のアクセス ポリシーの名前です。例: 330193482019

リクエストの本文

リクエストの本文には、サービス境界を定義する ServicePerimeter リソースを含める必要があります。

ServicePerimeter リソースでは、perimeterTypePERIMETER_TYPE_REGULAR を指定します。

ドライラン モード

指定された境界は、specuseExplicitDryRunSpec を true に設定して含める必要があります。

レスポンスの本文

成功した場合は、呼び出しのレスポンス本文に Operation リソースが含まれ、これにより POST オペレーションの詳細がわかります。

次のステップ