已授予iam.serviceAccountUser权限仍无法访问GCP服务账号求助
确认角色绑定对象正确:检查你给
tfccount@bxxx.iam.gserviceaccount.com授予iam.serviceAccountUser角色时,是不是直接绑定在了目标服务账号###-compute@developer.gserviceaccount.com上,别误绑到项目或其他资源上。控制台操作时容易选错对象,一定要核对绑定的资源是目标服务账号。等待权限同步生效:GCP的IAM权限变更可能有延迟,最长数分钟。刚操作完就重试创建实例的话,权限可能还没同步,等5-10分钟再试。
核对Terraform配置的服务账号:检查你的Terraform代码里,创建实例指定的服务账号是不是准确的
###-compute@developer.gserviceaccount.com,有没有拼写错误,比如账号ID、后缀域名部分。用命令行验证权限状态:执行gcloud命令确认权限是否正确生效:
gcloud iam service-accounts get-iam-policy ###-compute@developer.gserviceaccount.com --filter="bindings.members:tfccount@bxxx.iam.gserviceaccount.com"如果返回结果里没有
roles/iam.serviceAccountUser的绑定记录,说明之前的授予操作没成功,重新在控制台操作一遍。排查组织级权限限制:如果你的项目属于GCP组织,可能有组织级政策限制了服务账号权限分配。联系组织管理员确认是否存在
iam.disableServiceAccountCreation或其他相关政策,阻止了权限生效。用项目所有者账号重新授予:如果之前是用普通账号操作的IAM权限授予,可能因自身权限不足导致操作没生效。换用项目所有者账号登录控制台,重新给
tfccount@bxxx.iam.gserviceaccount.com添加iam.serviceAccountUser角色到目标服务账号。
内容的提问来源于stack exchange,提问作者Kitteh

