使用Terraform创建Google Cloud Identity组时遇403权限拒绝问题
问题场景
在组织级Google Cloud项目中,通过Terraform成功创建组织架构,但创建google_cloud_identity_group资源时触发403权限错误:
Error: Error creating Group: googleapi: Error 403: Error(2015): Permission denied for group resource 'user@domain.com'.
│ Details:
│ [
│ {
│ "@type": "type.googleapis.com/google.rpc.ResourceInfo",
│ "description": "Error(2015): Permission denied for group resource 'user@domain.com'.",
│ "owner": "domain:cloudidentity.googleapis.com",
│ "resourceType": "cloudidentity.googleapis.com/Group"
│ }
│ ]
│
│ with module.some_project.google_cloud_identity_group.group,
│ on .terraform/modules/some_project/main.tf line 35, in resource "google_cloud_identity_group" "group":
│ 35: resource "google_cloud_identity_group" "group" {
已为服务账号分配roles/billing.projectManager、roles/resourcemanager.projectIamAdmin等项目级IAM权限,执行以下命令配置应用默认登录后,问题仍存在:
gcloud auth application-default login --impersonate-service-account service-useraccount@PROJECT_ID.iam.gserviceaccount.com
原因分析
Cloud Identity组的管理权限不属于项目级IAM范畴,项目级角色无法控制Cloud Identity资源的创建操作。必须为服务账号分配域级或Cloud Identity资源级的专属角色。
解决方案
1. 分配Cloud Identity专属角色
为服务账号分配以下角色之一(根据需求选择):
roles/cloudidentity.groupAdmin:拥有创建、管理Cloud Identity组的完整权限roles/cloudidentity.groupCreator:仅拥有创建Cloud Identity组的权限
注意:这些角色需要在域级别(而非项目级别)分配。
2. 域级权限配置步骤
- 使用具有域管理员权限的账号登录Google Admin控制台
- 进入「IAM与管理员」>「IAM」(或直接访问Cloud Identity控制台的IAM页面)
- 添加服务账号
service-useraccount@PROJECT_ID.iam.gserviceaccount.com,并为其分配上述Cloud Identity角色
3. 验证权限与配置
- 先通过gcloud命令测试权限是否生效:
gcloud cloud-identity groups create --group-email=test-group@domain.com --impersonate-service-account=service-useraccount@PROJECT_ID.iam.gserviceaccount.com - 确认项目已启用Cloud Identity API:
gcloud services enable cloudidentity.googleapis.com --project=PROJECT_ID - 验证应用默认凭据是否正确加载:
gcloud auth application-default print-access-token --impersonate-service-account=service-useraccount@PROJECT_ID.iam.gserviceaccount.com
完成以上操作后,重新运行terraform apply即可正常创建Cloud Identity组。
内容的提问来源于stack exchange,提问作者khode-hub

