建立 Secure Source Manager 執行個體

Secure Source Manager 是單一租戶服務。除非有多家公司有合約關係,需要使用單一執行個體進行協作,否則單一 Secure Source Manager 執行個體應只包含一個Google Cloud 客戶的使用者。

如果您與多家公司合作,並想與他們共同處理原始碼,建議您為每家公司建立個別的執行個體。

如要建立啟用 VPC Service Controls 的執行個體,請參閱「在 VPC Service Controls 範圍中設定 Secure Source Manager」。

事前準備

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Enable the API

  4. Install the Google Cloud CLI.

  5. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  6. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Enable the API

  9. Install the Google Cloud CLI.

  10. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  11. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  12. 安裝 `beta` Google Cloud CLI 元件:
    gcloud components install beta
  13. 必要的角色

    如要取得建立 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

    1. 執行下列指令來建立執行個體。系統可能會要求您向 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 分鐘。

    2. 請記下 OPERATION_NAME,您需要使用這個 ID 檢查作業狀態。

    3. 執行下列指令,檢查 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 網址。

    4. 從成功建立的檢查狀態指令中複製 HTML 網址。您需要這個網址,才能透過網頁介面存取執行個體。

    API

    1. 執行下列指令來建立執行個體。系統可能會要求您向 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 分鐘。

    2. 複製 OPERATION_NAME

    3. 執行下列指令,檢查建立作業的狀態:

      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 網址。

    4. 從成功建立的檢查狀態指令中複製 HTML 網址。您需要這個網址,才能透過網頁介面存取執行個體。

    存取執行個體

    建立執行個體後,您可以使用瀏覽器透過網頁介面存取該執行個體。

    如要在執行個體中建立存放區,您需要執行個體專案的存放區建立者角色 (roles/securesourcemanager.repoCreator),以及 Secure Source Manager 執行個體的執行個體存放區建立者角色 (roles/securesourcemanager.instanceRepositoryCreator)。

    1. 如要透過網頁介面存取 Secure Source Manager 執行個體,請將下列網址複製到瀏覽器的網址列。

      INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

      取代下列項目:

      • INSTANCE_ID 替換為執行個體名稱。
      • PROJECT_NUMBER 換成執行個體的 Google Cloud 專案編號。如要瞭解如何識別專案,請參閱「識別專案」。
      • LOCATION,其中包含執行個體的所在地區。

    2. 系統會顯示 OAuth 畫面,詢問是否要授予「sourcemanager.dev」存取 Google 帳戶的權限。

    3. 按一下「允許」按鈕。

    4. Secure Source Manager 網頁介面隨即開啟。您可以在網頁介面中建立及查看存放區,以及所有相關聯的問題和提取要求。

    後續步驟