このドキュメントでは、Dataform リポジトリをサードパーティのリモート Git リポジトリにリンクする方法について説明します。
リポジトリをリンクすると、Dataform 開発ワークスペースで行った変更をリモートの Git リポジトリに対して push および pull できるようになります。
Dataform リポジトリは、次の Git プロバイダでホストされているリモートの Git リポジトリにリンクできます。
Azure DevOps サービス
Bitbucket
GitHub
GitLab
サードパーティのリモート リポジトリを Dataform リポジトリにリンクするには、まず認証する必要があります。Dataform のリモート リポジトリを HTTPS または SSH で認証できます。
GitHub と GitLab のリモート リポジトリでは、認証に HTTPS または SSH を使用できます。Azure DevOps Services と Bitbucket リモート リポジトリでは、SSH を使用する必要があります。
準備
まだ作成していない場合は、Dataform リポジトリを作成します。 これは、後で Dataform サービス アカウントとシークレットを共有する際に必要になります。
必要なロール
Dataform リポジトリをリモートの Git リポジトリにリンクするために必要な権限を取得するには、Dataform 管理者 (roles/dataform.admin
)リポジトリに対する IAM ロールの付与を管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
HTTPS を使用してリモート リポジトリを認証する
HTTPS を使用して GitHub リポジトリと GitLab リポジトリを認証するには、個人用のアクセス トークンを使用して Secret Manager のシークレットを作成し、作成したシークレットを Dataform サービス アカウントと共有します。
次に、Dataform はアクセス トークンを使用して Git プロバイダにログインし、デベロッパーの代わりに変更を commit します。Dataform では、デベロッパーの Google Cloud メールアドレスを使用してこれらの commit が行われるため、誰が各 commit を行ったかを確認できます。
GitHub リポジトリを認証するには、従来の個人用アクセス トークンまたはトークン権限をカスタマイズできるきめ細かい個人用アクセス トークンを作成します。
GitLab リポジトリを認証するには、従来の個人用アクセス トークンを作成します。
HTTPS を使用して Dataform の GitHub または GitLab リポジトリを認証するには、次の手順を行います。
GitHub または GitLab で、個人用のアクセス トークンを作成します。
GitHub 個人アクセス トークンを作成する手順は次のとおりです。
Dataform に
repo
権限を付与します。トークンは、必要に応じて適切な有効期限に設定してください。
組織で SAML シングル サインオン(SSO)を使用している場合は、トークンを承認します。
省略可: GitHub のきめ細かい個人用アクセス トークンを作成する場合は、次の手順を行います。
選択したリポジトリのみにアクセスするリポジトリを選択してから、接続するリポジトリを選択します。
リポジトリの内容に対する読み取りと書き込みアクセス権を付与します。
トークンは、必要に応じて適切な有効期限に設定してください。
組織で SAML シングル サインオン(SSO)を使用している場合は、トークンを承認します。
GitLab 個人アクセス トークンを作成するときは、次の手順を行います。
トークンに
dataform
という名前を付けます。GitLab 個人用アクセス トークンは、
dataform
という名前にする必要があります。Dataform に
api
、read_repository
、write_repository
の権限を付与します。トークンは、必要に応じて適切な有効期限に設定してください。
Secret Manager で、Git プロバイダに接続するための個人用アクセス トークンを含む Secret を作成します。
Dataform サービス アカウントにシークレットへのアクセス権を付与します。
Dataform サービス アカウントの形式は次のとおりです。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
- アクセス権を付与する場合は、Dataform サービス アカウントに
roles/secretmanager.secretAccessor
ロールを付与してください。
- アクセス権を付与する場合は、Dataform サービス アカウントに
Dataform はアクセス トークンを使用して Git プロバイダにログインし、デベロッパーの代わりに変更を commit します。Dataform では、デベロッパーの Google Cloud メールアドレスを使用してこれらの commit が行われるため、誰が各 commit を行ったかを確認できます。
SSH 経由でリモート リポジトリを認証する
SSH 認証鍵と Secret Manager のシークレットを生成することで、SSH を介して Azure DevOps Services、Bitbucket、GitHub、GitLab リポジトリを認証できます。
SSH 認証鍵は、公開 SSH 認証鍵と秘密 SSH 認証鍵で構成されています。Git プロバイダと共有 SSH 認証鍵を共有し、秘密 SSH 認証鍵を持つ Secret Manager シークレットを作成する必要があります。その後、シークレットを Dataform サービス アカウントと共有します。
Dataform は秘密 SSH 認証鍵のシークレットを使用して Git プロバイダにログインし、デベロッパーの代わりに変更を commit します。Dataform では、デベロッパーの Google Cloud メールアドレスを使用してこれらの commit が行われるため、誰が各 commit を行ったかを確認できます。
SSH を介して Dataform の Azure DevOps Services、Bitbucket、GitHub、GitLab リポジトリを認証するには、次の手順に従います。
Azure DevOps Services、Bitbucket、GitHub、GitLab で SSH 認証鍵を作成します。
Azure DevOps Services の SSH 認証鍵を作成する手順については、SSH 認証鍵の認証を使用するをご覧ください。
Bitbucket SSH 認証鍵を作成する手順については、SSH を構成するをご覧ください。
GitHub SSH 認証鍵を作成する手順については、新しい SSH 認証鍵の生成をご覧ください。
GitLab SSH 認証鍵を作成する手順については、SSH 認証鍵ペアを生成するをご覧ください。
公開 SSH 認証鍵をサードパーティの Git アカウントにアップロードします。
公開 SSH 認証鍵を Azure DevOps Services にアップロードする手順については、SSH 認証鍵の認証を使用するをご覧ください。
公開 SSH 認証鍵を Bitbucket にアップロードする手順については、SSH を構成するをご覧ください。
GitHub に公開 SSH 認証鍵をアップロードする手順については、GitHub アカウントに新しい SSH 認証鍵を追加するをご覧ください。
公開 SSH 認証鍵を GitLab にアップロードする手順については、GitLab アカウントに SSH 認証鍵を追加するをご覧ください。
Secret Manager で、秘密 SSH 認証鍵をシークレット値としてシークレットを作成します。
Dataform サービス アカウントにシークレットへのアクセス権を付与します。
Dataform サービス アカウントの形式は次のとおりです。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
- アクセス権を付与する場合は、Dataform サービス アカウントに
roles/secretmanager.secretAccessor
ロールを付与してください。
- アクセス権を付与する場合は、Dataform サービス アカウントに
Dataform リポジトリの接続
Dataform リポジトリをリモートの Git リポジトリにリンクするには、次の手順に沿って操作します。
Google Cloud コンソールの [Dataform] ページに移動します。
接続するリポジトリを選択します。
リポジトリ ページで、[設定] > [Git と接続] の順にクリックします。
[リモート リポジトリへのリンク] ペインの [リモートの Git リポジトリの URL] フィールドに、リモート Git リポジトリの URL を入力し、最後に
.git
を付けます。HTTPS 認証の場合、リモートの Git リポジトリの URL にはユーザー名やパスワードを含めることはできません。
SSH 認証の場合、リモートの Git リポジトリの URL は次のいずれかの形式になります。
- 絶対 URL:
ssh://git@{host_name}[:{port}]/{repository_path}
、port
は省略可能です。 - SCP に似た URL:
git@{host_name}:{repository_path}
。
- 絶対 URL:
[Default remote branch name] フィールドに、リモートの Git リポジトリのメイン開発ブランチの名前を入力します。
[Secret] プルダウンで、リモートの Git リポジトリのシークレットを選択します。
リモート リポジトリに SSH 認証を使用した場合は、[ホストの SSH 公開鍵の Key-Value] フィールドに、Git プロバイダのホストの公開鍵を入力します。
SSH 公開鍵の値は
known_hosts
ファイルの形式にする必要があります。 この値には、次の形式で、base64
形式でエンコードされたアルゴリズムと公開鍵が含まれている必要があります。ただし、ホスト名や IP は不要です。ALGORITHM BASE64_KEY_VALUE
Azure DevOps Services のホストの SSH 公開鍵については、ターミナルで
ssh-keyscan -t rsa ssh.dev.azure.com
コマンドを実行します。Bitbucket の公開鍵については、SSH を構成するをご覧ください。
GitHub のホストの公開鍵については、GitHub の SSH 認証鍵のフィンガープリントをご覧ください。
GitLab のホストの公開鍵については、SSH
known_hosts
のエントリをご覧ください。
リンク をクリックします。
リモート リポジトリ接続を編集する
Dataform リポジトリとリモート Git リポジトリの間の接続を編集するには、次の手順に従います。
Google Cloud コンソールの [Dataform] ページに移動します。
編集するリポジトリをクリックします。
リポジトリ ページで、[設定] > [Git 接続を編集] の順にクリックします。
[リモート リポジトリへのリンク] ペインで、次のいずれかのオプションを編集します。
[リモートの Git リポジトリの URL] フィールドで、リンクされたリモート Git リポジトリの URL を編集します。
リモート Git リポジトリの URL には、ユーザー名やパスワードを含めることはできません。
[Default remote branch name] フィールドで、リモートの Git リポジトリのメイン開発ブランチの名前を編集します。
[Secret] プルダウンで、リモートの Git リポジトリのシークレットを選択します。
リモート リポジトリに SSH 認証を使用した場合は、[ホストの SSH 公開鍵の Key-Value] フィールドに、Git プロバイダのホストの公開鍵を入力します。
SSH 公開鍵の値は、既知のホストファイルの形式にする必要があります。この値には、
base64
形式でエンコードされたアルゴリズムと公開鍵が含まれている必要があります。ただし、次の形式でホスト名や IP はありません。ALGORITHM BASE64_KEY_VALUE
Bitbucket の公開鍵については、SSH を構成するをご覧ください。
GitHub のホストの公開鍵については、GitHub の SSH 認証鍵のフィンガープリントをご覧ください。
GitLab のホストの公開鍵については、SSH
known_hosts
のエントリをご覧ください。
[更新] をクリックします。
次のステップ
Dataform リポジトリの詳細については、リポジトリの概要をご覧ください。
開発ワークスペースを作成するには、ワークスペースを作成するをご覧ください。
Dataform の詳細については、Dataform の概要をご覧ください。