リモート リポジトリを制限する

このドキュメントでは、組織のポリシー サービスを使用して、Dataform リポジトリが接続できるサードパーティのリモートの Git リポジトリのプールを制限する方法について説明します。

始める前に

dataform.restrictGitRemotes 組織のポリシーを設定または編集する前に、許可リストに追加するリモートの Git リポジトリの完全な URL を探します。

すでに Dataform リポジトリに接続されているリモートの Git リポジトリの完全な URL を確認する方法は次のとおりです。

  1. Google Cloud コンソールで、[Dataform] ページに移動します。

    Dataform に移動

  2. リポジトリを選択して、[設定] をクリックします。

    Dataform ページに表示されるリモート リポジトリの URL は短縮されており、dataform.restrictGitRemotes ポリシーでは使用できないことに注意してください。

  3. [設定] ページの [Git 接続設定] で、[リポジトリ ソース] の値をコピーします。

    [リポジトリ ソース] の値は、リモート リポジトリの完全な URL です。この URL は dataform.restrictGitRemotes ポリシーで使用できます。

必要なロール

組織のポリシーを管理するために必要な権限を取得するには、組織に対する組織のポリシー管理者 roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、組織のポリシーを管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

組織のポリシーを管理するには、次の権限が必要です。

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

リモート Git リポジトリの制限について

Dataform リポジトリを GitHub または GitLab リポジトリに接続できます。

悪意のあるユーザーがリポジトリの保護されていないコピーを介して Dataform コードベースとアクセス トークンにアクセスできないように、Dataform リポジトリが接続できるリモート リポジトリのプールを制限することをおすすめします。

Dataform が接続できる Git リポジトリ URL を制限する組織のポリシーを作成できます。

Dataform でリモート Git リポジトリを制限する制約は次のとおりです。

constraints/dataform.restrictGitRemotes

制約を使用するには、Dataform リポジトリに接続できるリモートの Git リポジトリの allowedValues URL リストを含む組織のポリシーを作成します。リモートの Git リポジトリは、完全な URL アドレスによって識別されます。

dataform.restrictGitRemotes ポリシーには遡及効果があるため、制約は既存の Dataform リポジトリに影響します。

組織のポリシーが適用されると、Dataform リポジトリは allowedValues リストに登録されているリモートの Git リポジトリにのみ接続できます。組織のポリシーで明示的に定義されていないリモートの Git リポジトリは、Dataform リポジトリへの接続が禁止されています。

dataform.restrictGitRemotes ポリシーを設定しない場合、Dataform リポジトリとリモートの Git リポジトリ間の通信は制限されません。

必要に応じて、以下の方法で dataform.restrictGitRemotes ポリシーを使用できます。

Allow all
Dataform リポジトリは、すべてのリモート リポジトリ URL に接続できます。組織がリモート リポジトリとの通信をブロックしない場合は、このオプションを選択します。または、すべてのリモート リポジトリ URL を許可するには、組織のポリシーを設定しないままにします。
allowedValues URL のリスト
Dataform リポジトリは、許可リストに登録されたリモート リポジトリにのみ接続できます。このオプションを選択すると、データ漏洩を防ぐことができます。
Deny all
Dataform リポジトリは、リモート URL に接続できません。組織がすべての通信をブロックして Dataform リポジトリを使用する場合は、このオプションを選択します。

リモート Git リポジトリの許可リストの仕様

  • このリスト型制約は、GitHub リポジトリと GitLab リポジトリにのみ適用できます。

  • 組織のポリシーは遡及的に適用され、既存の Dataform リポジトリに影響します。

  • この制約は allowedValues を受け入れ、他のすべてのリモートの Git リポジトリまたは Deny all への接続をブロックします。デフォルトは Allow all です。組織のポリシーが設定されていない場合、すべてのリモートの Git リポジトリとの通信が許可されます。組織のポリシーを allowedValues に設定することをおすすめします。

  • ポリシーの管理と維持は、必要な権限を持つユーザーまたは管理者の責任です。組織内のポリシー管理者に関するコミュニケーションを確保します。

組織レベルで組織のポリシー制約を設定する

コンソール

  1. [組織のポリシー] ページに移動します。

    [組織のポリシー] に移動

  2. 必要に応じて、組織をプロジェクト プルダウン メニューから選択します。

  3. [Dataform のリポジトリの git リモートを制限する] をクリックします。

  4. [ポリシーを管理] をクリックします。[ポリシーを管理] ボタンをクリックできない場合は、正しい権限が付与されていません。

  5. [カスタマイズ] を選択し、特定のリモートの Git リポジトリの組織のポリシーを設定します。

    組織のポリシーの編集ページのカスタマイズ オプション。

  6. 必要な [ポリシーの適用] と [ポリシーの種類] を選択します。

  7. [ポリシーの値] で [カスタム] を選択します。

  8. リモートの Git リポジトリの完全な URL を入力します。

  9. [新しいポリシーの値] をクリックし、必要に応じてリモートの Git リポジトリの完全な URL を入力します。

  10. [保存] をクリックして、制約を適用します。

gcloud