本頁面說明如何解決 Secure Source Manager 的問題。
建立存放區時出現錯誤訊息
嘗試建立存放區時,會出現下列錯誤:
There was an error while loading /repo/create. Try refreshing the page.
發生這個問題的原因如下:
- 專案未啟用 Secure Source Manager API。
- 您在專案中沒有存放區管理員角色,或是沒有在 Secure Source Manager 執行個體中建立存放區的權限。
如何解決這個問題:
- 在專案中啟用 Secure Source Manager API。
- 請管理員授予下列角色:
- 專案的「存放區管理員」(
roles/securesourcemanager.repoAdmin) 角色。 - Secure Source Manager 執行個體的執行個體存取者 (
roles/securesourcemanager.instanceAccessor)。 - 執行個體存放區建立者
(
roles/securesourcemanager.instanceRepositoryCreator) 在 Secure Source Manager 執行個體上。
- 專案的「存放區管理員」(
詳情請參閱「使用 IAM 控管存取權」。
在 Mac 上複製存放區時出現錯誤訊息
嘗試複製存放區時,會出現下列錯誤:
git: 'credential-gcloud.sh' is not a git command. See 'git --help'. fatal: Authentication failed for [repo-url]
發生這個問題的原因如下:
- 使用 Homebrew 或其他非標準安裝方式安裝 gcloud CLI。
git-credential-gcloud.sh未新增至 PATH。
如何解決這個問題:
- 執行
source $HOMEBREW_PREFIX/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc 執行下列指令,確認
git-credential-gcloud.sh位於路徑中:which git-credential-gcloud.sh
Git HTTPS 要求失敗,並顯示權限遭拒或未授權錯誤
透過 HTTPS 嘗試執行 Git 指令時,系統會顯示「權限遭拒」或「未經授權」錯誤訊息。
發生這個問題的原因如下:
- 全域 Git 設定檔缺少 Secure Source Manager 驗證輔助程式。
- 系統會使用 Git 內建的憑證儲存區,而不是呼叫 Secure Source Manager 驗證輔助函式來取得新憑證。
- 系統會使用系統憑證輔助函式,而非呼叫 Secure Source Manager 驗證輔助函式來取得新憑證。
- 使用 HTTPS 與 Secure Source Manager 存放區互動時,會使用舊版 Google Cloud CLI。Secure Source Manager 需要 Google Cloud CLI 395.0.0 以上版本。
如何解決這個問題:
執行下列指令,判斷全域 Git 設定的內容。
git config --list | grep credential如果在 macOS 上看到類似
*credential*.helper=store的行,或是在 Windows OS 上看到credential.helper = manager,請移除這些行,然後使用gcloud auth login重新驗證,再試一次 Git 命令。如果回應未包含 macOS 或 Linux 上的
credential.https://*.*.sourcemanager.dev.helper=gcloud.sh,或是 Windows 上的credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd,請將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定:Linux
如要將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定,請執行下列指令:
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh執行下列指令,確認驗證輔助程式行已新增至全域 Git 設定:
git config --list | grep credential輸出內容應包含
credential.https://*.*.sourcemanager.dev.helper=gcloud.sh。執行
gcloud auth login進行驗證。執行 Git 指令來測試驗證。
Windows
- 按照「安裝 Git 和 Google Cloud CLI」操作說明,檢查 gcloud CLI 版本。
如要將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定,請執行下列指令:
git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd執行下列指令,確認驗證輔助程式行已新增至全域 Git 設定:
git config --list | grep credential輸出內容應包含
credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd。執行
gcloud auth login進行驗證。執行 Git 指令來測試驗證。
Git HTTPS 要求失敗,且權杖無效
您必須提供有效的 OAuth 權杖,做為 Git HTTPS 作業的密碼。這通常由 Git 憑證輔助程式處理,但也可以搭配使用以其他方法 (例如應用程式預設憑證) 產生的 OAuth 權杖。
如果 Git 要求因無效權杖遭到拒絕,通常表示系統無法從傳入的權杖擷取使用者資訊,這個錯誤可能有多種原因:
您的 gcloud CLI 登入資訊可能已過期。
請使用
gcloud auth login重新登入。權杖的範圍不足。OAuth 權杖應具備下列範圍:
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/userinfo.email
您可以呼叫
curl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN}來檢查權杖範圍您使用的權杖是透過 GKE 機群工作負載身分產生:
- 系統不支援從 GKE 機群工作負載身分產生的原始權杖。詳情請參閱「SSM returns an error when using KSA tokens with GKE fleet workload identity」。
您有機構政策禁止在特定範圍外使用權杖,例如情境感知存取權:
Secure Source Manager 本身不支援情境感知存取權,請與支援團隊聯絡,瞭解後續步驟。
由於憑證過時,macOS 上的 Git HTTPS 要求會失敗並顯示 403 錯誤
在 macOS 上透過 HTTPS 執行 Git 作業時,您可能會收到 403 錯誤。
如果您在 macOS 上使用 iCloud 鑰匙圈,可能會發生這個問題,因為 iCloud 鑰匙圈會儲存及同步處理過時的權杖,干擾 gcloud CLI 驗證權杖。即使使用 gcloud auth login 重新驗證,這些過時的權杖仍可能導致 Secure Source Manager 驗證失敗。
如要解決這個問題,請從「鑰匙圈存取」手動刪除任何過時的憑證:
- 在 Mac 上開啟「鑰匙圈存取」應用程式 (位於
/Applications/Utilities/)。 - 搜尋
sourcemanager.dev。 - 刪除與
*.*.sourcemanager.dev或 Secure Source Manager 執行個體網址相符的「網際網路密碼」類型項目,方法是按一下滑鼠右鍵並選取「刪除」。 - 刪除項目後,請重試 Git 作業。系統可能會提示您使用 gcloud CLI 重新驗證。如果 Git 作業持續失敗,請先執行
gcloud auth login,然後再試一次。
使用 Kubernetes 服務帳戶 (KSA) 權杖搭配 GKE 機群 Workload Identity 時,SSM 會傳回錯誤
使用 GKE 機群工作負載身分時,Secure Source Manager 不支援原始 KSA 權杖。使用這些權杖會導致錯誤。
如要解決這個問題,請模擬服務帳戶,並將工作負載繫結至 Google 服務帳戶。您也需要在 KSA 設定中新增下列註解:
iam.gke.io/gcp-service-account: SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
專案未顯示在網頁介面的產品選取器中
使用 Secure Source Manager 網頁介面產品選取器時,專案不會顯示。
如果您有多組 Secure Source Manager 登入憑證,就會發生這個問題。
如何解決這個問題:
在 Secure Source Manager 執行個體網址中附加下列內容,即可清除 Cookie:
/_oauth/consent舉例來說,如果執行個體網址是
https://my-instance-098765432123.us-central1.sourcemanager.dev/,請在瀏覽器的網址列中輸入https://my-instance-098765432123.us-central1.sourcemanager.dev/_oauth/consent,然後使用正確的憑證登入。
觸發條件檔案不會觸發建構作業
提交觸發條件檔案後,如果建構作業未如預期觸發,可能是因為下列問題:
- 觸發條件檔案不在預設分支版本中。如要解決這個問題,請將觸發程序檔案移至預設分支版本。
- 觸發條件檔案的格式無效。如果看到這項錯誤,存放區頁面會顯示
Build triggers configuration error: ...橫幅。如要修正這個問題,請參閱觸發條件檔案結構定義。如果觸發條件檔案設定正確,存放區頁面中的橫幅會顯示Valid build triggers configuration。
建構觸發條件設定錯誤
將 triggers.yaml 檔案提交至 Secure Source Manager 存放區後,橫幅會顯示下列錯誤:
Build cannot be created.
發生這個問題的原因如下:
- Cloud Build 設定檔的選項無效。
- Cloud Build 設定檔的格式無效。
- Secure Source Manager 服務帳戶沒有使用使用者指定 Cloud Build 服務帳戶的必要權限。
如何修正這個問題:
- 請務必遵循正確的觸發條件檔案結構定義。
- 請確認 Secure Source Manager 服務帳戶和 Cloud Build 服務帳戶具備足夠的權限。如要查看必要權限,請參閱「必要服務帳戶角色」。
執行期間建構失敗
如果建構作業已成功觸發,但在執行期間失敗,相關聯的提交會顯示「失敗」提交狀態。
如要排解建構失敗的問題,請前往存放區頁面,然後按一下失敗的提交狀態旁邊的「詳細資料」。
Cloud Build 執行記錄隨即開啟。如要進一步瞭解如何排解 Cloud Build 中的建構問題,請參閱「排解建構錯誤」。