使用者和服務帳戶可以使用 SSH 公開金鑰,向 Secure Source Manager 存放區進行驗證。本頁說明如何產生 SSH 金鑰組,然後在 Secure Source Manager 網頁介面中新增為驗證方法。
Secure Source Manager 支援 RSA、ECDSA 和 Ed25519 SSH 金鑰類型。
必要的角色
如要取得透過 SSH 公開金鑰驗證所需的權限,請要求管理員授予下列 IAM 角色:
-
如要為使用者新增安全殼層金鑰:
Secure Source Manager 執行個體存取者 (
roles/securesourcemanager.instanceAccessor
) 在 Secure Source Manager 執行個體上 -
如要為服務帳戶新增 SSH 金鑰:
-
Secure Source Manager 執行個體上的Secure Source Manager 執行個體管理員 (
roles/securesourcemanager.instanceManager
) -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) 服務帳戶
-
Secure Source Manager 執行個體上的Secure Source Manager 執行個體管理員 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這些預先定義的角色具備使用 SSH 公開金鑰進行驗證所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要使用安全殼層公開金鑰進行驗證,必須具備下列權限:
-
securesourcemanager.sshkeys.createAny
-
如要將 SSH 金鑰指派給服務帳戶,請按照下列步驟操作:
iam.serviceAccounts.actAs
如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。
產生金鑰組
SSH 金鑰組包含本機系統上的私密金鑰,以及您透過 Google Cloud註冊的公開金鑰。
Linux 或 macOS
在本機系統上安裝 OpenSSH。
在命令提示字元中,輸入下列指令:
ssh-keygen -t [KEY_TYPE] -C "[USER_EMAIL]"
其中:
[USER_EMAIL]
是你的電子郵件地址。[KEY_TYPE]
是rsa
、ecdsa
或ed25519
。
例如:
ssh-keygen -t rsa -C "user@example.com"
系統提示時,請輸入公開金鑰檔案的位置和檔案名稱。 如要接受預設位置和檔案名稱,請按 Enter 鍵。
系統提示時,請將通關密語留空,然後按 Enter 鍵。
Windows
在本機系統上安裝 PuTTY。
在 Windows「開始」功能表開啟 PuTTYGen。
在開啟的視窗中,於「Parameters」(參數) 欄位選取金鑰類型。
點按「生成」。
PuTTYGen 會顯示產生的公開金鑰字串。
系統提示時,請將通關密語留空,然後按 Enter 鍵。
如要將產生的金鑰組儲存於本機系統,請按一下「儲存公開金鑰」和「儲存私密金鑰」。
為使用者新增安全殼層金鑰
- 在 Secure Source Manager 網頁介面中,按一下執行個體或存放區頁面的「更多選項」 選單。
按一下「使用者 SSH 金鑰」。
「使用者 SSH 金鑰」頁面隨即開啟,並顯示您建立的所有現有金鑰清單。
在「使用者 SSH 金鑰」頁面中,按一下「新增金鑰」。
在「新增 SSH 金鑰」頁面中,輸入金鑰的下列值:
- 標題:為金鑰新增描述性標題。
- 安全殼層公開金鑰:貼上公開金鑰字串。如要取得公開金鑰字串,請執行下列指令:
cat ~/.ssh/FILENAME.pub
其中
FILENAME
是您為金鑰檔案指定的名稱。
只要您擁有存放區的必要權限,就能使用 SSH 金鑰向任何 Secure Source Manager 存放區進行驗證。
新增服務帳戶的 SSH 金鑰
如要透過程式存取存放區,可以為服務帳戶新增 SSH 金鑰。
- 如果您沒有要使用的服務帳戶,請建立服務帳戶。
- 在 Secure Source Manager 網頁介面中,按一下「更多選項」 選單。
- 按一下「服務帳戶 SSH 金鑰」。系統會開啟「服務帳戶 SSH 金鑰」頁面,並顯示您新增的現有金鑰清單。
- 在「服務帳戶 SSH 金鑰」頁面中,按一下「新增金鑰」。
在「Add service account SSH key」(新增服務帳戶 SSH 金鑰) 頁面中,輸入金鑰的下列值:
- 名稱:索引鍵的說明標題
服務帳戶:要使用 SSH 金鑰的服務帳戶電子郵件,格式為
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
地點
SA_NAME
是服務帳戶名稱。PROJECT_ID
是建立服務帳戶的專案 ID。
安全殼層公開金鑰:您的公開安全殼層金鑰。如要瞭解如何產生安全殼層金鑰組,請參閱「產生金鑰組」。
如果服務帳戶與 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。