本頁說明如何使用 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-project
中 us-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
將存取權授予多位使用者
建立所有需要存取執行個體的使用者 Google 群組。群組可以是網域專屬群組。
建議您建立涵蓋所有潛在使用者的廣泛群組,例如所有開發人員,以及公司中可能會提出問題的人員。使用者必須屬於這個群組,才能在 Secure Source Manager 執行個體中存取或建立資源,包括存放區和問題。
將這個群組設為廣泛群組,團隊主管就能管理執行個體層級和存放區層級的使用者角色,不必同時管理群組成員。
如要讀取目前的允許政策並儲存至
/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=" }
- 將
編輯 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.com
和trusted-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_1
和USER_EMAIL_2
,並填入要授予執行個體擁有者角色的使用者電子郵件地址。
- 執行個體存取者角色 (
儲存編輯過的
/tmp/instance.json
檔案。修改已儲存的允許政策,授予及撤銷所需角色後,請執行下列指令,更新執行個體允許政策:
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 地區,請參閱位置說明文件。
- 將
後續步驟
- 授予使用者存放區存取權。
- 進一步瞭解如何使用 IAM 控管存取權。
- 建立存放區。
- 授予及撤銷 IAM 角色。