VPC Service Controls は、データ漏洩を防ぐためのサービス境界を設定できる Google Cloud の機能です。
Developer Connect の VPC Service Controls は、外部のソースコード管理システムへの流出を防ぎません。このガイドでは、カスタム組織ポリシーを使用してこれらのシナリオをブロックするのに役立つ追加の制御について説明します。SCMS
VPC Service Controls の使用方法については、VPC Service Controls を使用してサービス境界を設定するをご覧ください。
デベロッパーが接続を作成できる対象を制限するカスタム組織ポリシーを作成します。
特定の Service Directory リソースを介してのみ接続を作成および更新できるようにするカスタム組織のポリシーを作成します。
Developer Connect 分析情報の制限事項を確認します。
始める前に
このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。
必要なロール
カスタムの組織のポリシーを作成または編集するために必要な権限を取得するには、組織のリソースに対する組織ポリシー管理者 (roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
チームが接続を作成できる SCMS を制限する制約を作成する
SCMS へのデータ引き出しの可能性を軽減する方法の 1 つは、接続を許可する SCMS を制限することです。1 つ以上の指定された SCMS への接続を許可するカスタム組織のポリシーを作成できます。
次の組織のポリシーは、リポジトリ接続を制限して、GitHub Enterprise への接続のみを許可します。
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- developerconnect.googleapis.com/Connection
methodTypes:
- CREATE
- UPDATE
condition: |
resource.githubEnterpriseConfig.hostUri=="https://github.mycompany.net"
actionType: ALLOW
displayName: Connection GitHub Enterprise Host Constraint
description: |
Allows creation/update of Developer Connect connections only to GitHub Enterprise host github.mycompany.net
Service Directory 経由の接続を必須にする制約を作成する
特定の Service Directory エンドポイントへの接続のみを許可するカスタム組織のポリシーを作成することで、データ漏洩の可能性を軽減できます。
次の組織のポリシーでは、特定の Service Directory エンドポイントへの接続のみが許可されます。
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- developerconnect.googleapis.com/Connection
methodTypes:
- CREATE
- UPDATE
condition: |
resource.gitlabEnterpriseConfig.serviceDirectoryConfig.service=="projects/my-project/locations/us-central1/namespaces/ns/services/myendpoint"
actionType: ALLOW
displayName: Connection GitLab Enterprise Service Directory endpoint
description: |
Allows creation/update of Developer Connect connections only through a specific Service Directory resource
Developer Connect 分析情報の制限事項
VPC Service Controls で Developer Connect 分析情報(InsightsConfig)を使用する場合は、次の既知の制限事項と構成要件を考慮してください。
App Hub API の依存関係: Developer Connect の分析情報は App Hub API に依存しています。フォルダ管理境界を使用するアプリケーションの場合、フォルダ レベルの VPC Service Controls の制限は子孫プロジェクトには適用されません。App Hub は、管理プロジェクトと同じ境界内にない場合でも、すべての子孫プロジェクトのサービスとワークロードを検出できます。
アプリトポロジで利用可能なリソース メタデータ: Developer Connect の分析情報を使用する場合、App Topology API も有効になっていれば、アプリトポロジ でリソース メタデータが利用可能になります。両方のサービスを使用する場合は、境界内の Developer Connect 分析情報 API(
developerconnect.googleapis.com)と App Topology API(apptopology.googleapis.com)の両方を制限することをおすすめします。App Hub アプリケーション フィードと IAM アクセス制御:
InsightsConfigが App Hub アプリケーションの分析情報を追跡すると、Developer Connect は App Hub アプリケーションの管理フォルダまたはプロジェクト境界に Cloud Asset Inventory のリアルタイム フィードを作成します。これらのフィードのデータは Developer Connect サービスに直接公開されますが、これらのフォルダまたはプロジェクトからアセット メタデータを読み取る権限を持つ Developer Connect サービス エージェントのみが使用します。IAM ロールを使用して、このアクセス権が付与される Developer Connect サービス エージェントを制限するだけでなく、InsightsConfigリソースをホストするプロジェクトと、データが公開されるプロジェクトは同じ VPC Service Controls 境界内に存在するか、アクセスを許可する Developer Connect サービス エージェントの上り(内向き)ルールと下り(外向き)ルールを構成する必要があります。プロジェクト スコープのフィードと IAM アクセス制御:
InsightsConfigがプロジェクトにスコープ設定されている場合、Developer Connect はターゲット プロジェクトに Cloud Asset Inventory のリアルタイム フィードを直接作成します。これらのフィードのデータは Developer Connect サービスに直接公開されますが、これらのプロジェクトからアセット メタデータの読み取りを許可された Developer Connect サービス エージェントによってのみ使用されます。IAM ロールを使用して、このアクセス権が付与される Developer Connect サービス エージェントを制限するだけでなく、InsightsConfigリソースをホストするプロジェクトと、データが公開されるプロジェクトは同じ VPC Service Controls 境界内に存在するか、アクセスを許可する Developer Connect サービス エージェントの上り(内向き)ルールと下り(外向き)ルールを構成する必要があります。アーティファクト メタデータとプロビナンスの境界の調整:
InsightsConfigリソースをホストするプロジェクトと、アーティファクト メタデータまたはプロビナンスを含むプロジェクトは、同じ VPC Service Controls 境界内に存在する必要があります。または、Developer Connect サービス エージェントがアクセスできるように、上り(内向き)ルールと下り(外向き)ルールを構成して追加する必要があります。デプロイ ロギングの境界の調整:
InsightsConfigリソースをホストするプロジェクトとデプロイを含むプロジェクトは、同じ VPC Service Controls 境界内にあるか、Developer Connect サービス エージェントがアクセスできるように構成された上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。