Получите "Не авторизован для выполнения DescribeSecurityGroups" при создании нового проекта в AWS CodeBuild

Я пытаюсь создать новый проект в AWS CodeBuild. Каждый раз, когда я пытаюсь, я получаю следующую ошибку:

Not authorized to perform DescribeSecurityGroups

Любая помощь будет принята с благодарностью.

2 ответа

Вероятно, вам не хватает разрешений, связанных с VPC, в вашей служебной роли. Вы можете прикрепить определенную политику для решения этой проблемы: https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html управляемые тайцы-политик-пример-создание-VPC-сеть-интерфейс

Это означает, что связанная роль IAM не имеет прикрепленной политики, позволяющей CodeBuild описывать группы безопасности.

Если вы пытаетесь создать новый проект сборки и выбрали "Новая служебная роль " (Создать служебную роль в своей учетной записи) и в то же время добавили VPC, Подсети и группы безопасности в разделе " Дополнительная настройка ", вы получите "Не авторизовано". выполнить DescribeSecurityGroups " ошибка.
По какой-то причине автоматически созданная политика AWS выглядит следующим образом:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters",
                "logs:PutLogEvents",
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "ecr:UploadLayerPart",
                "ecr:PutImage",
                "ecr:InitiateLayerUpload",
                "ecr:GetAuthorizationToken",
                "ecr:CompleteLayerUpload",
                "ecr:BatchCheckLayerAvailability"
            ],
            "Resource": "*"
        }
    ]
}

Он не разрешает ничего связанного с VPC/EC2, поэтому вы можете либо заранее создать правильную политику и использовать ее, либо позволить AWS создать проект без VPC и изменить новую политику, добавив необходимые сервисы в блок "Действие":

    "Action": [
        "ssm:GetParameters",
        "logs:PutLogEvents",
        "logs:CreateLogStream",
        "logs:CreateLogGroup",
        "ecr:UploadLayerPart",
        "ecr:PutImage",
        "ecr:InitiateLayerUpload",
        "ecr:GetAuthorizationToken",
        "ecr:CompleteLayerUpload",
        "ecr:BatchCheckLayerAvailability",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets"
    ],

У меня была такая же проблема при использовании облачной информации. Проблема заключалась в том, что роль IAM создавалась до начала создания CodeBuild, но политика, связанная с ролью IAM, создавалась после создания CodeBuild.

Лекарством от этого было добавление DependsOn в CodeBuild, заявив, что сначала нужно создать политику.

Пример:

CodeBuildIamRole: 
    Type: 'AWS::IAM::Role'
    Properties:
      RoleName: 'CodeBuildAutomatedTestingRole'
      AssumeRolePolicyDocument:
        Statement:
          - Action: 'sts:AssumeRole'
            Effect: Allow
            Principal:
              Service: codebuild.amazonaws.com
      Path: /
  CodeBuildIamPolicy:
    Type: 'AWS::IAM::Policy'
    Properties:
      PolicyName: !Sub 'CodeBuildServiceRolePolicy-${AWS::StackName}'
      PolicyDocument:
        Statement:
          - Action:
              - 's3:PutObject'
              - 's3:GetObject'
              - 's3:GetObjectVersion'
              - 's3:ListBucket'
            Effect: Allow
            Resource: '*'
          - Action:
              - 'logs:CreateLogGroup'
              - 'logs:CreateLogStream'
              - 'logs:PutLogEvents'
              - 'ec2:CreateNetworkInterface'
              - 'ec2:DescribeDhcpOptions'
              - 'ec2:DescribeNetworkInterfaces'
              - 'ec2:DeleteNetworkInterface'
              - 'ec2:DescribeSubnets'
              - 'ec2:DescribeSecurityGroups'
              - 'ec2:DescribeVpcs'
              - 'ec2:CreateNetworkInterfacePermission'
              - 'ecr:*'
              - ...
            Effect: Allow
            Resource:
              - '*'
      Roles:
        - !Ref CodeBuildIamRole
CodeBuild:
    DependsOn:
      - CodeBuildIamPolicy
    Type: "AWS::CodeBuild::Project"
    Properties:
      ...

Надеюсь, это будет полезно

Другие вопросы по тегам