簡體   English   中英

如何使用 gcloud 將自定義角色添加到服務帳戶

[英]How to add a custom role to service account using gcloud

我創建了一個服務帳戶: name@project.iam.gserviceaccount.com和一個自定義角色mycustomrole

如何使用gcloud命令將自定義角色添加到此服務帳戶?

當我嘗試

gcloud projects add-iam-policy-binding my-project \
  --member="serviceAccount:myserviceaccount@myproject.iam.gserviceaccount.com" \
  --role=projects/myproject/roles/mycustomrole \
  --verbosity=debug

我得到一個錯誤:

ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: The role name must be in the form "roles/{role}", "organizations/{organization_id}/roles/{role}", or "projects/{project_id}/roles/{role}".

我已經嘗試過:

  --role=roles/mycustomrole
  --role=projects/myproject/roles/mycustomrole
  --role=projects/myproject/roles/customrole/mycustomrole

我嘗試使用以下命令,它適用於我的情況:

gcloud projects add-iam-policy-binding my-project \
  --member="serviceAccount:my-sa@my-project.iam.gserviceaccount.com" \
  --role=projects/my-project/roles/my.role.name \
  --verbosity=debug

我能夠將自定義角色projects/my-project/roles/my.role.name到 SA serviceAccount:my-sa@my-project.iam.gserviceaccount.com

對於自定義角色,你必須輸入角色ID,這個ID顯示在角色詳情頁面:

在此處輸入圖像描述

如果提示正確的參數並且仍然導致錯誤,請更新您的gcloud版本並重試嗎?

gcloud components update

https://stackoverflow.com/users/609290/dazwilkin的幫助下,我解決了這個問題。

在 GCP 中創建角色時,默認情況下其 ID 的格式為 CustomRoleXXXX,其中 XXXX 是一個隨機數。

我試圖使用自定義角色的名稱而不是其 ID。

所有命令:

通過 UI 創建自定義角色。

在 UI 中或運行以下命令檢查其 ID:

gcloud iam roles list --project=<PROJECT ID> --format="value(name)"

將自定義角色附加到服務帳戶:

gcloud projects add-iam-policy-binding <PROJECT ID> \
  --member="serviceAccount:myserviceaccount@myproject.iam.gserviceaccount.com" \
  --role=<CUSTOM ROLE ID> \
  --verbosity=debug

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM