【问题标题】:Permission Denied - GCP Cloud Resource Manager setIamPolicy权限被拒绝 - GCP 云资源管理器 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","re​​questPath":"https://cloudresourcemanager.googleapis.com/v1/projects/project-name@project-name.iam.gserviceaccount.com:setIamPolicy","httpMethod":"POST"}}'

仅供参考:机器人帐户 (12345@cloudservices.gserviceaccount.com) 在 IAM 中被授予项目所有者权限。

【问题讨论】:

  • 你从哪里运行这个机器/设备?项目所有者权限不一定等于部署权限。您需要将该角色添加到该帐户。

标签: google-cloud-platform google-deployment-manager


【解决方案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,
                }
            }
    }

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 2020-03-19
    • 2022-07-25
    • 2022-08-18
    • 2020-01-11
    • 2014-01-26
    • 2019-04-27
    • 2016-12-21
    • 1970-01-01
    相关资源
    最近更新 更多