為 Artifact Registry 遠端存放區設定上游驗證,即可使用帳戶憑證從外部登錄檔提取及快取套件。您可以將個人存取權杖儲存在 Secret Manager 中,並附加至上游來源的遠端存放區。
如要完成這些步驟,您需要 Artifact Registry 遠端存放區,以及具有外部來源的帳戶。如要進一步瞭解遠端存放區,請參閱「遠端存放區總覽」。
必要的角色
如要取得設定遠端存放區上游來源驗證所需的權限,請要求管理員授予您專案的下列 IAM 角色:
- Artifact Registry 管理員 (
roles/artifactregistry.admin) - Secret Manager 管理員 (
roles/secretmanager.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
預設上游來源
如要為預設上游來源設定驗證,請參閱下列各上游來源的相應指南:
使用者定義的上游來源
如要為使用者定義的上游來源設定驗證,請完成下列步驟。
將存取權杖儲存在祕密中
授予 Artifact Registry 服務帳戶存取密鑰的權限
Artifact Registry 服務代理會在與 Cloud de Confiance 服務互動時,代表 Artifact Registry 執行動作。如要允許服務代理使用儲存在 Secret Manager 中的密鑰,您必須授予服務代理檢視密鑰版本的權限。
服務代理 ID 為:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com
PROJECT-NUMBER 是 Artifact Registry 執行的 Cloud de Confiance 專案「專案編號」。
如要將 Secret Manager 密鑰存取者角色授予 Artifact Registry 服務代理:
控制台
-
前往 Cloud de Confiance 控制台的「Secret Manager」頁面。
-
在「Secret Manager」頁面,按一下密鑰名稱旁的核取方塊。
-
若面板尚未開啟,請按一下「Show Info Panel」(顯示資訊面板) 以開啟面板。
-
在資訊面板中,按一下「Add Principal」(新增主體)。
-
在「New principals」(新增主體) 文字區域中,輸入要新增成員的電子郵件地址。
-
在「Select a role」(請選擇角色) 下拉式選單中,依序選擇「Secret Manager」和「Secret Manager Secret Accessor」(Secret Manager 密鑰存取者)。
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
其中 member 是IAM 成員,例如使用者、群組或服務帳戶。
C#
如要向 Artifact Registry 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Go
如要向 Artifact Registry 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Java
如要向 Artifact Registry 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Node.js
如要向 Artifact Registry 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
PHP
如要向 Artifact Registry 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
如要向 Artifact Registry 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Ruby
如要向 Artifact Registry 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
API
注意:與其他範例不同,這個範例會取代整個 IAM 政策。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"
如要進一步瞭解如何授予或撤銷密鑰存取權,請參閱「管理密鑰存取權」。
將上游憑證新增至遠端存放區
如要使用上游來源憑證更新遠端存放區,請按照下列步驟操作:
控制台
在 Cloud de Confiance 控制台中開啟「Repositories」(存放區) 頁面。
在存放區清單中選取存放區,然後按一下「Edit Repository」(編輯存放區)。
在「Remote repository authentication mode」(遠端存放區驗證模式) 部分,更新或新增上游來源使用者名稱,以及含有存取權杖的密鑰。
gcloud CLI
如要使用上游來源憑證更新遠端存放區,請執行下列指令:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USERNAME \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
更改下列內容:
下次遠端存放區從上游來源要求構件時,系統就會使用您的憑證。
後續步驟
- 建立資源清理政策,清理不必要的構件。