[英]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.