我试图创建一个服务帐户并分配角色,但失败了。
p, err := serviceaccount.NewAccount(ctx, "prom-frontend",
&serviceaccount.AccountArgs{
AccountId: pulumi.String("prom-frontend"),
DisplayName: pulumi.String("prom-frontend"),
Project: pulumi.String(c.Project),
})
if err != nil {
return err
}
// create Project Iam policy binding for the service account to the role roles/storage.admin
_, err = serviceaccount.NewIAMBinding(ctx, "foo-bar-iam-binding", &serviceaccount.IAMBindingArgs{
Role: pulumi.String("roles/storage.admin"),
Members: pulumi.StringArray{
pulumi.String("serviceAccount:prom-frontend@experiments.iam.gserviceaccount.com"),
},
ServiceAccountId: p.Name,
})
if err != nil {
return err
}
这是我从GCP 得到的错误
将IAM策略应用于服务帐户的项目/endor实验/serviceAccounts时出错/prom-frontend@xperiments.iam.gserviceaccount.com":为服务帐户"projects/experiences/serviceAccounts设置IAM策略时出错/prom-frontend@experiments.iam.gserviceaccount.com':googleapi:错误400:此资源不支持角色角色/storage.admin。,badRequest
如何解决此问题?
您正在尝试修改服务帐户的IAM策略。服务帐户不提供云存储服务,因此不支持与存储相关的IAM角色。这就是你看到这个错误的原因:
Role roles/storage.admin is not supported for this resource
如果您的目标是向IAM成员授予云存储的权限,请修改项目或云存储的IAM策略。
服务帐户既是一种身份,也是一种资源。
作为身份,您可以将IAM角色授予项目/文件夹/组织内资源的服务帐户。
作为资源,您可以将IAM角色授予其他身份以访问服务帐户(例如创建令牌(。