使用 SSH 公開金鑰進行驗證

使用者和服務帳戶可以使用 SSH 公開金鑰,向 Secure Source Manager 存放區進行驗證。本頁說明如何產生 SSH 金鑰組,然後在 Secure Source Manager 網頁介面中新增為驗證方法。

Secure Source Manager 支援 RSA、ECDSA 和 Ed25519 SSH 金鑰類型。

必要的角色

如要取得透過 SSH 公開金鑰驗證所需的權限,請要求管理員授予下列 IAM 角色:

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

這些預先定義的角色具備使用 SSH 公開金鑰進行驗證所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要使用安全殼層公開金鑰進行驗證,必須具備下列權限:

  • securesourcemanager.sshkeys.createAny 在 Secure Source Manager 執行個體上
  • 如要將 SSH 金鑰指派給服務帳戶,請按照下列步驟操作: iam.serviceAccounts.actAs 在服務帳戶上

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。

產生金鑰組

SSH 金鑰組包含本機系統上的私密金鑰,以及您透過 Google Cloud註冊的公開金鑰。

Linux 或 macOS

  1. 在本機系統上安裝 OpenSSH

  2. 在命令提示字元中,輸入下列指令:

    ssh-keygen -t [KEY_TYPE] -C "[USER_EMAIL]"
    

    其中:

    • [USER_EMAIL] 是你的電子郵件地址。
    • [KEY_TYPE]rsaecdsaed25519

    例如:

    ssh-keygen -t rsa -C "user@example.com"
    
    1. 系統提示時,請輸入公開金鑰檔案的位置和檔案名稱。 如要接受預設位置和檔案名稱,請按 Enter 鍵。

    2. 系統提示時,請將通關密語留空,然後按 Enter 鍵。

Windows

  1. 在本機系統上安裝 PuTTY

  2. 在 Windows「開始」功能表開啟 PuTTYGen。

  3. 在開啟的視窗中,於「Parameters」(參數) 欄位選取金鑰類型。

  4. 點按「生成」

    PuTTYGen 會顯示產生的公開金鑰字串。

  5. 系統提示時,請將通關密語留空,然後按 Enter 鍵。

  6. 如要將產生的金鑰組儲存於本機系統,請按一下「儲存公開金鑰」和「儲存私密金鑰」

為使用者新增安全殼層金鑰

  1. 在 Secure Source Manager 網頁介面中,按一下執行個體或存放區頁面的「更多選項」選單。
  2. 按一下「使用者 SSH 金鑰」

    「使用者 SSH 金鑰」頁面隨即開啟,並顯示您建立的所有現有金鑰清單。

  3. 在「使用者 SSH 金鑰」頁面中,按一下「新增金鑰」

  4. 在「新增 SSH 金鑰」頁面中,輸入金鑰的下列值:

    1. 標題:為金鑰新增描述性標題。
    2. 安全殼層公開金鑰:貼上公開金鑰字串。如要取得公開金鑰字串,請執行下列指令:
    cat ~/.ssh/FILENAME.pub
    

    其中 FILENAME 是您為金鑰檔案指定的名稱。

只要您擁有存放區的必要權限,就能使用 SSH 金鑰向任何 Secure Source Manager 存放區進行驗證。

新增服務帳戶的 SSH 金鑰

如要透過程式存取存放區,可以為服務帳戶新增 SSH 金鑰。

  1. 如果您沒有要使用的服務帳戶,請建立服務帳戶
  2. 在 Secure Source Manager 網頁介面中,按一下「更多選項」 選單。
  3. 按一下「服務帳戶 SSH 金鑰」。系統會開啟「服務帳戶 SSH 金鑰」頁面,並顯示您新增的現有金鑰清單。
  4. 在「服務帳戶 SSH 金鑰」頁面中,按一下「新增金鑰」
  5. 在「Add service account SSH key」(新增服務帳戶 SSH 金鑰) 頁面中,輸入金鑰的下列值:

    1. 名稱:索引鍵的說明標題
    2. 服務帳戶:要使用 SSH 金鑰的服務帳戶電子郵件,格式為 SA_NAME@PROJECT_ID.iam.gserviceaccount.com

      地點

      • SA_NAME 是服務帳戶名稱。
      • PROJECT_ID 是建立服務帳戶的專案 ID。
    3. 安全殼層公開金鑰:您的公開安全殼層金鑰。如要瞭解如何產生安全殼層金鑰組,請參閱「產生金鑰組」。

  6. 如果服務帳戶與 Secure Source Manager 執行個體不在同一個專案中,請將下列其中一個角色或權限授予要使用的服務帳戶,以及 Secure Source Manager 的服務代理程式

    • iam.serviceAccounts.signJwt權限
    • 服務帳戶憑證建立者 (roles/iam.serviceAccountTokenCreator) 角色

    執行下列指令,將 IAM 政策新增至 Secure Source Manager 服務帳戶,並授予服務帳戶憑證建立者角色。

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
        --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \
        --role="roles/iam.serviceAccountTokenCreator"
    

    其中 SERVICE_ACCOUNT 是您要使用的服務帳戶,INSTANCE_PROJECT_NUMBER 則是 Secure Source Manager 執行個體的專案編號。

    SERVICE_ACCOUNT 的格式應為數字服務帳戶 ID 或電子郵件地址,例如:123456789876543212345 或 my-iam-account@somedomain.com。

後續步驟