Secure Source Manager は、すべての Git SCM クライアント コマンドをサポートしており、pull リクエストと問題追跡が組み込まれています。HTTPS と SSH 認証の両方がサポートされています。
必要なロール
Git を使用して Secure Source Manager リポジトリを操作するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
Secure Source Manager インスタンスに対する Secure Source Manager インスタンス アクセサー (
roles/securesourcemanager.instanceAccessor) -
リポジトリのクローンを作成するには: リポジトリに対する Secure Source Manager Repo 閲覧者 (
roles/securesourcemanager.repoReader) -
リポジトリに push する場合: リポジトリに対する Secure Source Manager Repo ライター (
roles/securesourcemanager.repoWriter)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Secure Source Manager のロールの付与については、IAM によるアクセス制御とユーザーにインスタンスへのアクセス権を付与するをご覧ください。
Git と Google Cloud CLI をインストールする
Git をインストールします。
Git インストーラで [Choose a credential helper](認証情報ヘルパーを選択)と表示されたら、[None (Do not use a credential helper)](なし(認証情報ヘルパーを使用しない))を選択します。
HTTPS で Git を使用するには、gcloud CLI バージョン
395.0.0以降が必要です。gcloud CLI のバージョンを確認するには、次のコマンドを実行します。gcloud --versiongcloud CLI を更新するには、次のコマンドを実行します。
gcloud components update更新後、
gcloud initを実行して gcloud CLI を初期化します。詳細については、コンポーネントの更新に関する gcloud CLI のドキュメントをご覧ください。
認証情報を設定する
サードパーティの ID プロバイダと Workforce Identity 連携を使用して Secure Source Manager に対する認証を行う場合は、このセクションを完了する必要はありません。代わりに、Workforce Identity プールのログイン構成を作成する必要があります。
次のコマンドを実行して、Secure Source Manager 認証ヘルパーをグローバル Git 構成に追加します。
Linux
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
以前のバージョンの Git では、ワイルドカードがサポートされていない場合があります。ワイルドカードなしで認証ヘルパーを追加するには、次のコマンドを実行します。
git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh
次のように置き換えます。
INSTANCE_IDは、Secure Source Manager インスタンスの名前に置き換えます。PROJECT_NUMBER: プロジェクト番号。プロジェクト番号の確認方法については、プロジェクトを特定するをご覧ください。LOCATIONは、インスタンスのリージョンに置き換えます。リージョンの詳細については、ロケーションをご覧ください。
Windows
git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
以前のバージョンの Git では、ワイルドカードがサポートされていない場合があります。ワイルドカードなしで認証ヘルパーを追加するには、次のコマンドを実行します。
git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd
次のように置き換えます。
INSTANCE_IDは、Secure Source Manager インスタンスの名前に置き換えます。PROJECT_NUMBER: プロジェクト番号。プロジェクト番号の確認方法については、プロジェクトを特定するをご覧ください。LOCATIONは、インスタンスのリージョンに置き換えます。リージョンの詳細については、ロケーションをご覧ください。
認証ヘルパーは、Secure Source Manager で Git コマンドを使用するときに、gcloud CLI を使用してGoogle Cloud 認証情報を取得します。
最初の認証情報の設定後に再認証するには、次の gcloud CLI コマンドを実行します。
gcloud auth login
サービス アカウントを使用して Compute Engine VM から認証する
アタッチされたサービス アカウントを使用して、Compute Engine 仮想マシン(VM)から認証できます。
VM とサービス アカウントを構成する
Compute Engine のデフォルトのサービス アカウントを使用する場合は、必要な OAuth スコープを使用して VM を作成します。
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform
次のように置き換えます。
VM_NAME: VM の名前。PROJECT_ID: 実際の Google Cloud プロジェクト ID。ZONE: VM のゾーン。
カスタム サービス アカウントを使用する場合は、サービス アカウントを作成してから VM を作成します。
サービス アカウントの作成:
gcloud iam service-accounts create SA_NAME --project=PROJECT_IDSA_NAMEをサービス アカウントの名前に置き換えます。サービス アカウントを使用する権限を付与します。サービス アカウントを使用して VM を作成するには、サービス アカウントに対するサービス アカウント ユーザーロール(
roles/iam.serviceAccountUser)が必要です。VM を作成するプリンシパルにこのロールを付与します。gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"USER_EMAILは、VM を作成するユーザーのメールアドレスに置き換えます。VM を作成します。
gcloud compute instances create VM_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \ --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
サービス アカウントに IAM ロールを付与する
サービス アカウントに Secure Source Manager インスタンスとリポジトリへのアクセス権を付与します。
インスタンスへのアクセス権を付与します。
SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)") gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.instanceAccessorリポジトリの読み取りアクセス権を付与します。
特定のリポジトリに対する読み取りアクセス権を付与するには、次のコマンドを実行します。
gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \ --instance=INSTANCE_ID \ --location=LOCATION \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.repoReader次のように置き換えます。
REPOSITORY_ID: リポジトリ ID。INSTANCE_ID: Secure Source Manager インスタンス ID。LOCATION: Secure Source Manager インスタンスのリージョン。
書き込みアクセス権を付与するには、ロール
roles/securesourcemanager.repoWriterを使用します。最小権限の原則に従うため、リポジトリ レベルでアクセス権を付与することをおすすめします。プロジェクト内のすべてのリポジトリへのアクセス権を付与する必要がある場合は、IAM によるアクセス制御をご覧ください。
IAM 権限が反映されるまでに数分かかることがあります。
VM で Git を構成する
SSH を使用して VM に接続します。
gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONEVM に Git をインストールします。
sudo apt-get install gitVM で、認証情報を設定するの説明に従って Git 認証ヘルパーを構成します。たとえば、Linux の場合は次のようにします。
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
認証情報ヘルパーを構成すると、Git は VM のサービス アカウントのアプリケーションのデフォルト認証情報を使用して Secure Source Manager に対して認証を行います。これで、リポジトリのクローンを作成できるようになりました。アプリケーションのデフォルト認証情報で認証するには、HTTPS リポジトリ URL を使用する必要があります。
Workforce Identity プールのログイン構成を作成する
Workforce Identity 連携を使用してサードパーティの ID プロバイダで Secure Source Manager を認証する場合を除き、このセクションを完了する必要はありません。
gcloud CLI コマンドまたは Git コマンドを使用して、Workforce Identity プールの認証情報で Secure Source Manager インスタンスを認証するには、Workforce Identity プールでログイン構成を作成する必要があります。
Workforce Identity プールのログイン構成を作成するには、Workforce Identity 連携の有効期間が短いトークンを取得するの手順に沿って、gcloud CLI でブラウザベースのログインを作成します。
認証が完了すると、Git コマンドを使用して Secure Source Manager インスタンスを操作できます。Workforce Identity プールのセッション継続時間が切れた場合は、再認証する必要があります。
リポジトリのクローンを作成する
次のコマンドを実行して、リポジトリのクローンを作成します。
git clone REPOSITORY_URL
ここで、REPOSITORY_URL はクローンを作成するリポジトリ ページの上部に表示される HTTPS または SSH の URL です。
既存のリポジトリを Secure Source Manager に push する
リモートとして機能する Secure Source Manager リポジトリを作成してから、push する必要があります。
既存の Git リポジトリを空の Secure Source Manager リポジトリに push するには、Secure Source Manager リポジトリをリモートとして追加して、そこに push する必要があります。
Secure Source Manager リポジトリをリモートとして設定するには、次のコマンドを実行します。
git remote add origin REPOSITORY_URLここで、
REPOSITORY_URLはリポジトリ ページの上部に表示される HTTPS または SSH の URL です。リポジトリに push するには、次のコマンドを実行します。
git push -u origin main
Git ソースコード管理の詳細については、Git のドキュメントをご覧ください。