向上游來源驗證連接器存放區

本文說明如何向 Artifact Registry 連接器存放區的上游來源進行驗證。

本文假設您已建立 Artifact Registry 連接器存放區,並擁有外部來源的帳戶。

如要進一步瞭解連接器存放區,請參閱「連接器存放區總覽」。

必要的角色

如要取得設定連結器存放區上游來源驗證所需的權限,請要求管理員授予您專案的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

使用者定義的上游來源

如要為使用者定義的上游來源設定驗證,請完成下列步驟。

將存取權杖儲存在祕密中

  1. 在私人登錄檔中建立存取權杖。
  2. 在 Secret Manager 中建立密鑰
  3. 將個人存取權杖儲存為密鑰版本

授予 Artifact Registry 服務帳戶密鑰存取權

Artifact Registry 服務代理人會在與服務互動時代表 Artifact Registry 執行動作。 Google Cloud 如要允許服務代理使用儲存在 Secret Manager 中的密鑰,您必須授予服務代理檢視密鑰版本的權限。

服務代理 ID 為:

service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com

PROJECT-NUMBER 是執行 Artifact Registry 的 Google Cloud 專案專案編號

如要將 Secret Manager 密鑰存取者角色授予 Artifact Registry 服務代理:

控制台

  1. 前往 Google Cloud 控制台的「Secret Manager」頁面。

    前往「Secret Manager」頁面

  2. 在「Secret Manager」頁面,按一下密鑰名稱旁的核取方塊。

  3. 若面板尚未開啟,請按一下「Show Info Panel」(顯示資訊面板) 以開啟面板。

  4. 在資訊面板中,按一下「Add Principal」(新增主體)

  5. 在「New principals」(新增主體) 文字區域中,輸入要新增成員的電子郵件地址。

  6. 在「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"

其中 memberIAM 成員,例如使用者、群組或服務帳戶。

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\"}]}}"

如要進一步瞭解如何授予或撤銷密鑰存取權,請參閱「管理密鑰存取權」。

將上游憑證新增至連接器存放區

如要使用上游來源憑證更新連接器存放區,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台中開啟「Repositories」(存放區) 頁面。

    開啟「存放區」頁面

  2. 在存放區清單中選取存放區,然後按一下「Edit Repository」(編輯存放區)

  3. 在「連接器存放區驗證模式」部分,更新或新增上游來源使用者名稱,以及含有存取權杖的密鑰。

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

更改下列內容:

  • REPOSITORY:Artifact Registry 連接器存放區的名稱。
  • PROJECT_ID:您的 Google Cloud 專案 ID。
  • LOCATION:存放區的區域或多區域位置。如果您設定 default,可以省略這個旗標。如要查看支援的位置清單,請執行 gcloud artifacts locations list 指令。
  • USERNAME:上游來源的使用者名稱。
  • SECRET_PROJECT_ID:您建立密鑰的專案 ID。
  • SECRET_ID:您為密鑰指定的名稱。
  • SECRET_VERSION:您儲存存取權杖的 Secret 版本。

下次連接器存放區從上游來源要求構件時,就會使用您的憑證。