В доступе отказано - GCP Cloud Resource Manager setIamPolicy

Я получаю ответ 403 PERMISSION_DENIED от GCP при запуске диспетчера развертывания для создания развертывания, которое создает учетную запись службы и задает для нее политику IAM с помощью API администратора облачных ресурсов. Вот шаблон 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": "Вызывающая сторона не иметь разрешение "," 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,
                }
            }
    }
Другие вопросы по тегам