如果您與多家公司合作,並想與他們共同處理原始碼,建議您為每家公司建立個別的執行個體。
如要建立啟用 VPC Service Controls 的執行個體,請參閱「在 VPC Service Controls 範圍中設定 Secure Source Manager」。
事前準備
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
- 安裝 `beta` Google Cloud CLI 元件:
gcloud components install beta
執行下列指令來建立執行個體。系統可能會要求您向 gcloud CLI 進行驗證。
gcloud beta source-manager instances create INSTANCE_ID \ --region=LOCATION \ --project=PROJECT_ID \ --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY
其中:
INSTANCE_ID
是您要建立的執行個體名稱。LOCATION
是您要建立執行個體的地區。如要瞭解支援的位置,請參閱「位置」。PROJECT_ID
是您要在其中建立執行個體的專案 ID。-kms-key
是選用旗標。如要使用自己的客戶自行管理的加密金鑰 (CMEK) 建立執行個體,請加入這項設定。CMEK 金鑰必須與您建立執行個體的位置相同,但可以位於不同專案。如要使用 Google 預設加密,請省略這個標記。如要使用 CMEK 加密資料,請替換下列項目:KEY_PROJECT
,這是您在其中建立金鑰的專案。KEY_LOCATION
,其中包含金鑰位置。KEYRING_NAME
替換為金鑰環的名稱。KEY
改為您的金鑰名稱。
系統會啟動長時間執行的建立執行個體作業。輸出內容如下所示:
Create request issued for [my-instance]. done: false metadata: '@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata apiVersion: v1 createTime: '2023-02-27T20:57:52.315609549Z' requestedCancellation: false target: projects/my-project/locations/us-central1/instances/my-instance verb: create name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
OPERATION_NAME
。建立執行個體最多需要 60 分鐘。
請記下
OPERATION_NAME
,您需要使用這個 ID 檢查作業狀態。執行下列指令,檢查
create
作業的狀態:gcloud beta source-manager operations describe OPERATION_NAME \ --region=LOCATION
更改下列內容:
OPERATION_NAME
,並將其替換為建立指令回應中的作業名稱。LOCATION
改為您要建立執行個體的地區。如要瞭解支援的位置,請參閱「位置」。
執行個體準備就緒後,回應會類似以下內容:
{ "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-11-01T14:31:32.420469714Z", "endTime": "2022-11-01T14:48:34.140378114Z", "target": "projects/my-project/locations/us-central1/instances/test", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance", "name": "projects/my-project/locations/us-central1/instances/test", "createTime": "2022-11-01T14:31:32.416413630Z", "updateTime": "2022-11-01T14:31:32.416413630Z", "labels": { "ldap": "user", "source": "manual" }, "state": "ACTIVE", "hostConfig": { "html": "test-098765432109.us-central1.sourcemanager.dev", "api": "test-098765432109-api.us-central1.sourcemanager.dev", "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev" } } }
其中
test-098765432109.us-central1.sourcemanager.dev
是執行個體 HTML 網址。從成功建立的檢查狀態指令中複製 HTML 網址。您需要這個網址,才能透過網頁介面存取執行個體。
執行下列指令來建立執行個體。系統可能會要求您向 gcloud CLI 進行驗證。
curl \ -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \ -H "Content-Type: application/json" \ -d '{ "kms_key":"projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY"}'
其中:
INSTANCE_ID
是您要建立的執行個體名稱。LOCATION
是您要建立執行個體的區域。如要瞭解支援的位置,請參閱「位置」。PROJECT_ID
是您要在其中建立執行個體的專案 ID。-d
是選用的 HTTP POST 資料標記,可用於指定 CMEK 金鑰來加密執行個體。如要使用預設的 Google 加密功能,請省略這個標記。如要使用 CMEK 加密資料,請替換下列項目:KEY_PROJECT
,這是您在其中建立金鑰的專案。KEY_LOCATION
,其中包含金鑰位置。KEYRING_NAME
替換為金鑰環的名稱。KEY
改為您的金鑰名稱。
系統會啟動長時間執行的建立執行個體作業。輸出內容如下所示:
{ "name": "projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-11-01T14:31:32.420469714Z", "target": "projects/my-project/locations/us-central1/instances/test", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
OPERATION_NAME
。建立執行個體最多需要 60 分鐘。
複製
OPERATION_NAME
。執行下列指令,檢查建立作業的狀態:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
其中 OPERATION_NAME 是建立指令回應中的作業名稱。
執行個體準備就緒後,回應會類似以下內容:
{ "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-11-01T14:31:32.420469714Z", "endTime": "2022-11-01T14:48:34.140378114Z", "target": "projects/my-project/locations/us-central1/instances/test", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance", "name": "projects/my-project/locations/us-central1/instances/test", "createTime": "2022-11-01T14:31:32.416413630Z", "updateTime": "2022-11-01T14:31:32.416413630Z", "labels": { "ldap": "user", "source": "manual" }, "state": "ACTIVE", "hostConfig": { "html": "test-098765432109.us-central1.sourcemanager.dev", "api": "test-098765432109-api.us-central1.sourcemanager.dev", "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev" } } }
其中
test-098765432109.us-central1.sourcemanager.dev
是執行個體 HTML 網址。從成功建立的檢查狀態指令中複製 HTML 網址。您需要這個網址,才能透過網頁介面存取執行個體。
-
如要透過網頁介面存取 Secure Source Manager 執行個體,請將下列網址複製到瀏覽器的網址列。
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev
取代下列項目:
- 將 INSTANCE_ID 替換為執行個體名稱。
- 將 PROJECT_NUMBER 換成執行個體的 Google Cloud 專案編號。如要瞭解如何識別專案,請參閱「識別專案」。
- LOCATION,其中包含執行個體的所在地區。
系統會顯示 OAuth 畫面,詢問是否要授予「
sourcemanager.dev
」存取 Google 帳戶的權限。按一下「允許」按鈕。
Secure Source Manager 網頁介面隨即開啟。您可以在網頁介面中建立及查看存放區,以及所有相關聯的問題和提取要求。
必要的角色
如要取得建立 Secure Source Manager 執行個體所需的權限,請要求管理員授予您專案的Secure Source Manager 執行個體擁有者 (roles/securesourcemanager.instanceOwner
) 身分與存取權管理角色。 Google Cloud
Secure Source Manager 角色指派給主體後,才會顯示在 Google Cloud 控制台中。如要首次授予 Secure Source Manager 角色,請參閱「授予及撤銷身分與存取權管理角色」。
資料加密
根據預設, Google Cloud 系統會自動加密靜態資料,並使用 Google 代管的加密金鑰。如果您在保護資料的金鑰方面有特定的法規遵循或監管要求,可以建立以客戶自行管理的加密金鑰 (CMEK) 加密的 Secure Source Manager 執行個體。
請勿將機密資料儲存在例項 ID 或標籤鍵/值組合中,因為這些資料不會以 CMEK 加密。
如果您要在專案中建立第一個 Secure Source Manager 執行個體,請執行下列指令,手動建立 Secure Source Manager 服務代理程式:
gcloud beta services identity create \
--service=securesourcemanager.googleapis.com \
--project=PROJECT_ID
其中 PROJECT_ID
是專案的專案 ID,您將在該專案中建立 Secure Source Manager 執行個體。
建立每個產品和專案的服務帳戶 (P4SA) 後,您必須將 Secure Source Manager 服務代理程式角色 (roles/securesourcemanager.serviceAgent
) 授予主體 service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com,否則執行個體建立作業會失敗。
建立執行個體
若要建立執行個體,請進行以下操作:
gcloud CLI
API
存取執行個體
建立執行個體後,您可以使用瀏覽器透過網頁介面存取該執行個體。
如要在執行個體中建立存放區,您需要執行個體專案的存放區建立者角色 (roles/securesourcemanager.repoCreator
),以及 Secure Source Manager 執行個體的執行個體存放區建立者角色 (roles/securesourcemanager.instanceRepositoryCreator
)。