我正在查看 GCP 控制面板中的 IAM 服务帐户选项卡。我正在编辑服务帐户。我单击“授予访问权限”,输入我正在创建的服务帐户的电子邮件并尝试添加存储管理员。
但是列表中没有这样的选项。
此外,通过 CLI 执行此操作的看似等效的尝试失败了:
gcloud projects add-iam-policy-binding my-project-id \
--member='serviceAccount:[email protected]' \
--role='projects/my-project-id/roles/storage.admin'
ERROR: Policy modification failed. For a binding with condition, run "gcloud alpha iam policies lint-condition" to identify issues in condition.
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Role (projects/my-project-id/roles/storage.admin) does not exist in the resource's hierarchy.
显然,我无法理解服务帐户应该如何被授予角色。
创建服务帐户后,您可以转到 IAM 页面添加存储管理员角色。
如果您仍想使用创建服务帐户窗格添加角色,请不要使用存储进行搜索,而是向下滚动到所有角色>悬停云存储>选择存储管理员。
您还可以使用 Cloud Shell 执行 John Hanley 提到的操作。
不清楚你在做什么。两个重要的概念。服务帐户既可以是身份,也可以是资源。您正在将服务帐户作为屏幕截图中的资源进行管理。您的 CLI 命令正在将资源作为项目中授予身份的角色进行管理。
您的 CLI 命令指定项目中的 custom 角色。您是否创建了自定义角色,或者是否尝试使用现有的 Google Cloud IAM 角色?
您很可能想这样做:
gcloud projects add-iam-policy-binding my-project-id \
--member='serviceAccount:[email protected]' \
--role='roles/storage.admin'
请注意指定角色名称的方式的差异。