权限被拒绝 - GCP 云资源管理器 setIamPolicy
Posted
技术标签:
【中文标题】权限被拒绝 - GCP 云资源管理器 setIamPolicy【英文标题】:Permission Denied - GCP Cloud Resource Manager setIamPolicy 【发布时间】:2019-04-09 07:51:34 【问题描述】:在运行部署管理器以创建部署时,我从 GCP 收到 403 PERMISSION_DENIED 响应,该部署创建服务帐户并使用云资源管理器 API 为其设置 IAM 策略。这是 setIamPolicy 模板:
'resources': [
'name': context.env['name'],
'action': 'gcp-types/cloudresourcemanager-v1:cloudresourcemanager.projects.setIamPolicy',
'properties':
'resource': context.properties['resource'],
'policy':
'bindings': context.properties['bindings']
]
来自 GCP 的回应:
'"ResourceType":"gcp-types/cloudresourcemanager-v1:cloudresourcemanager.projects.setIamPolicy","ResourceErrorCode":"403","ResourceErrorMessage":"code":403,"message":"The 调用者没有权限","status":"PERMISSION_DENIED","statusMessage":"Forbidden","requestPath":"https://cloudresourcemanager.googleapis.com/v1/projects/project-name@project-name.iam.gserviceaccount.com:setIamPolicy","httpMethod":"POST"'
仅供参考:机器人帐户 (12345@cloudservices.gserviceaccount.com) 在 IAM 中被授予项目所有者权限。
【问题讨论】:
你从哪里运行这个机器/设备?项目所有者权限不一定等于部署权限。您需要将该角色添加到该帐户。 【参考方案1】:正确的做法是:
# Set the IAM policy by patching the existing policy with the
# config contents.
'name': policy_add_name,
'action': 'gcp-types/cloudresourcemanager-v1:cloudresourcemanager.projects.setIamPolicy',
'properties':
'resource': project_id,
'policy': '$(ref.' + policy_get_name + ')',
'gcpIamPolicyPatch':
'add': policies_to_add,
【讨论】:
以上是关于权限被拒绝 - GCP 云资源管理器 setIamPolicy的主要内容,如果未能解决你的问题,请参考以下文章