Secure Source Manager 支援所有 Git SCM 用戶端指令,並內建提取要求和問題追蹤功能。支援 HTTPS 和 SSH 驗證。
必要的角色
如要取得使用 Git 與 Secure Source Manager 存放區互動所需的權限,請要求管理員授予下列 IAM 角色:
-
Secure Source Manager 執行個體存取者 (
roles/securesourcemanager.instanceAccessor) Secure Source Manager 執行個體 -
如要複製存放區,請按照下列步驟操作:
在存放區上選取「Secure Source Manager Repo Reader」 (
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=PROJECT_ID --zone=ZONE在 VM 上安裝 Git:
sudo apt-get install git在 VM 上,按照「設定憑證」一文的說明,設定 Git 憑證輔助程式。舉例來說,在 Linux 上:
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
設定憑證輔助程式後,Git 會使用 VM 服務帳戶的應用程式預設憑證,向 Secure Source Manager 進行驗證。您現在可以複製存放區。您必須使用 HTTPS 存放區網址,才能透過應用程式預設憑證進行驗證。
建立員工身分集區登入設定
除非您使用員工身分聯盟,透過第三方身分識別提供者向 Secure Source Manager 進行驗證,否則無須填寫這個部分。
如要使用 gcloud CLI 指令或 Git 指令,透過工作團隊身分識別集區憑證向 Secure Source Manager 執行個體進行驗證,您必須使用工作團隊身分識別集區建立登入設定。
如要建立員工身分集區登入設定,請按照「取得員工身分聯盟的短期權杖」一文中的操作說明,使用 gcloud CLI 建立瀏覽器型登入程序。
完成驗證後,您可以使用 Git 指令與 Secure Source Manager 執行個體互動。工作團隊身分集區的工作階段時間長度到期時,您必須重新驗證。
複製存放區
執行下列指令,複製存放區:
git clone REPOSITORY_URL
其中 REPOSITORY_URL 是要複製的存放區頁面頂端顯示的 HTTPS 或 SSH 網址。
將現有存放區推送至 Secure Source Manager
您必須先建立 Secure Source Manager 存放區做為遠端,才能推送至該存放區。
如要將現有 Git 存放區推送至空白的 Secure Source Manager 存放區,您需要將 Secure Source Manager 存放區新增為遠端存放區,然後推送至該存放區。
如要將 Secure Source Manager 存放區設為遠端,請執行下列指令:
git remote add origin REPOSITORY_URL其中
REPOSITORY_URL是顯示在存放區頁面頂端的 HTTPS 或 SSH 網址。如要推送到存放區,請執行下列指令:
git push -u origin main
如要進一步瞭解 Git 原始碼管理,請參閱 Git 說明文件。