Secure Source Manager 支援所有 Git SCM 用戶端指令,並內建提取要求和問題追蹤功能。支援 HTTPS 和 SSH 驗證。
必要的角色
如要取得使用 Git 與 Secure Source Manager 存放區互動所需的權限,請要求系統管理員授予您下列 IAM 角色:
- Secure Source Manager 執行個體存取者 (
roles/securesourcemanager.instanceAccessor) 在 Secure Source Manager 執行個體上 -
如要複製存放區:
存放區的「Secure Source Manager 存放區讀取者」 (
roles/securesourcemanager.repoReader) -
如要推送至存放區:
存放區的「Secure Source Manager 存放區寫入者」 (
roles/securesourcemanager.repoWriter)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。
安裝 Git 和 Google Cloud CLI
安裝 Git。
如果 Git 安裝程式提示您選擇憑證輔助程式,請選取「None (Do not use a credential helper)」(無 (不使用憑證輔助程式))。
如要透過 HTTPS 使用 Git,必須使用 gcloud CLI
395.0.0以上版本。如要檢查 gcloud CLI 版本,請執行下列指令:gcloud --version如要更新 gcloud CLI,請執行下列指令。
gcloud components update更新完成後,請執行
gcloud init來初始化 gcloud CLI。詳情請參閱 gcloud CLI 說明文件中的更新元件。
設定憑證
如果您使用第三方識別資訊提供者和員工身分聯盟驗證 Secure Source Manager,則不需要完成本節內容,而是必須建立工作團隊身分集區登入設定。
執行下列指令,將 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
更改下列內容:
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
更改下列內容:
使用 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_ID將
SA_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=