授予使用者執行個體存取權

本頁說明如何使用 Identity and Access Management (IAM),授予使用者 Secure Source Manager 執行個體的存取權。如要進一步瞭解 Secure Source Manager 的存取控管機制,請參閱「使用 IAM 控管存取權」。

必要的角色

如要取得授予使用者執行個體存取權所需的權限,請要求管理員在 Secure Source Manager 執行個體上授予您 Secure Source Manager 執行個體擁有者角色 (roles/securesourcemanager.instanceOwner) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

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

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

授予員工身分聯盟使用者存取權

如果您使用員工身分聯盟存取 Secure Source Manager,主體會以不同方式表示。如要進一步瞭解如何授予代表身分群組的主體存取權,請參閱「在 IAM 政策中代表工作團隊集區使用者」。

舉例來說,下列指令會將專案 my-projectus-central1 地區的執行個體 my-instance 上的 Workforce Pool my-pool 中的執行個體存取者角色 (roles/securesourcemanager.instanceAccessor) 授予使用者 user@example.com

  gcloud beta source-manager instances add-iam-policy-binding my-instance \
      --project=my-project \
      --region=us-central1 \
      --member=principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com \
      --role=roles/securesourcemanager.instanceAccessor

您可以根據身分識別提供者 (IdP) 屬性,授予工作人員身分識別集區內的使用者或群組存取權,也可以使用通用運算式語言 (CEL) 將 OIDC 屬性對應至自訂屬性,以便在 IAM 政策中定義授權策略。如要進一步瞭解屬性對應,請參閱「屬性對應」。

授予單一使用者存取權

如要授予單一使用者執行個體存取權,請使用下列 Google Cloud CLI 指令:

  gcloud beta source-manager instances add-iam-policy-binding INSTANCE_ID \
      --project=PROJECT_ID \
      --region=REGION \
      --member=PRINCIPAL_IDENTIFIER \
      --role=roles/securesourcemanager.instanceAccessor

更改下列內容:

  • INSTANCE_ID 替換為執行個體 ID。
  • PROJECT_ID 替換為執行個體的專案 ID 或專案編號。
  • REGION,其中包含執行個體所在的區域。如要瞭解可用的 Secure Source Manager 地區,請參閱位置說明文件
  • PRINCIPAL_IDENTIFIER,並將其替換為要授予角色的主體 ID。

    舉例來說,如要將角色授予單一使用者,請以電子郵件地址格式設定主體 ID,例如 user:EMAIL,其中 EMAIL 是使用者的電子郵件地址。

    如要進一步瞭解支援的主體 ID,請參閱「主體 ID」。

舉例來說,下列指令會將 us-central 地區中 my-project 專案的 my-instance 執行個體 roles/securesourcemanager.instanceAccessor 角色授予 trusted-user1@gmail.com 使用者。

  gcloud beta source-manager instances add-iam-policy-binding INSTANCE_ID \
      --project=my-project \
      --region=us-central1 \
      --member=user:trusted-user1@gmail.com \
      --role=roles/securesourcemanager.instanceAccessor

將存取權授予多位使用者

  1. 建立所有需要存取執行個體的使用者 Google 群組。群組可以是網域專屬群組。

    建議您建立涵蓋所有潛在使用者的廣泛群組,例如所有開發人員,以及公司中可能會提出問題的人員。使用者必須屬於這個群組,才能在 Secure Source Manager 執行個體中存取或建立資源,包括存放區和問題。

    將這個群組設為廣泛群組,團隊主管就能管理執行個體層級和存放區層級的使用者角色,不必同時管理群組成員。

  2. 如要讀取目前的允許政策並儲存至 /tmp/instances.json,請執行下列指令:

      gcloud beta source-manager instances get-iam-policy INSTANCE_ID \
          --project=PROJECT_ID \
          --region=REGION \
          --format=json > /tmp/instance.json
    

    更改下列內容:

    • INSTANCE_ID 替換為執行個體 ID。
    • PROJECT_ID 替換為執行個體的專案 ID 或專案編號。
    • REGION,其中包含執行個體所在的區域。如要瞭解可用的 Secure Source Manager 地區,請參閱位置說明文件

    輸出內容會包含所有現有繫結,如果沒有任何繫結,則會包含類似下列內容的 etag 值:

    {
        "etag": "BwUjHYKJUiQ="
    }
    
  3. 編輯 JSON 檔案 /tmp/instance.json,將下列角色授予群組:

    • 執行個體存取者角色 (roles/securesourcemanager.instanceAccessor):適用於需要查看執行個體,但不會建立或修改存放區的使用者。
    • 執行個體存放區建立者角色 (roles/securesourcemanager.instanceRepositoryCreator):適用於需要建立及修改存放區的使用者。
    • 執行個體擁有者角色 (roles/securesourcemanager.instanceOwner),適用於管理執行個體的使用者。

    下列範例政策會將 roles/securesourcemanager.instanceRepositoryCreator 角色授予群組 your-group@gmail.com,並將 roles/securesourcemanager.instanceOwner 角色授予使用者 trusted-user1@gmail.comtrusted-user2@gmail.com

    {
      "etag": "ETAG",
      "bindings": [
        {
          "role": "roles/securesourcemanager.instanceRepositoryCreator",
          "members": [
            "group:GROUP_EMAIL"
          ]
        },
        {
          "role": "roles/securesourcemanager.instanceOwner",
          "members": [
            "user:USER_EMAIL_1",
            "user:USER_EMAIL_2"
          ]
        }
      ]
    }
    

    更改下列內容:

    • ETAG,並使用 getIamPolicy 回應中的 etag 值,在本例中為 BwUjHYKJUiQ=
    • GROUP_EMAIL,並輸入 Google 群組的電子郵件地址。
    • USER_EMAIL_1USER_EMAIL_2,並填入要授予執行個體擁有者角色的使用者電子郵件地址。
  4. 儲存編輯過的 /tmp/instance.json 檔案。

  5. 修改已儲存的允許政策,授予及撤銷所需角色後,請執行下列指令,更新執行個體允許政策:

    gcloud beta source-manager instances set-iam-policy INSTANCE_ID  \
        --project=PROJECT_ID \
        --region=REGION \
        /tmp/instance.json
    

    更改下列內容:

    • INSTANCE_ID 替換為執行個體 ID。
    • PROJECT_ID 替換為執行個體的專案 ID 或專案編號。
    • REGION,其中包含執行個體所在的區域。如要瞭解可用的 Secure Source Manager 地區,請參閱位置說明文件

後續步驟