В доступе отказано - 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,
}
}
}