Ошибка AWS CodeBuild в DOWNLOAD_SOURCE – CLIENT_ERROR

Теперь я получаю сообщение об ошибке для CodeBuild на этапе DOWNLOAD_SOURCE.

CLIENT_ERROR: RequestError: сбой отправки запроса, вызванный: Get «https://codepipeline-us-east-1-215861945190.s3.amazonaws.com/diag-upload-pipe/SourceArti/jiUJWyf»: наберите tcp 52.217.106.244:443: тайм-аут ввода/вывода для основного источника и исходной версии arn:aws:s3:::codepipeline-us-east-1-215861945190/diag-upload-pipe/SourceArti/jiUJWyf

Я пытался добавить разрешения S3 для полного доступа, но безрезультатно. Я также пытался следовать совету Райана Уильямса в комментариях здесь: DOWNLOAD_SOURCE Failed AWS CodeBuild

До сих пор не могу пройти мимо этой ошибки.

У меня есть свой VPC

  • Основная таблица маршрутов для маршрутов VPC(rtb05b) — 10.0.0.0/16 с локальной целью и 0.0.0.0/0 с целью nat-0ad
  • Ассоциации подсетей — subnet-0a7
  • subnet-0a7 маршрутизирует 10.0.0.0/16 с локальной целью и 0.0.0.0/0 с целью nat-0ad
  • Таблица маршрутов смешанного маршрута — rtb-026 маршруты 10.0.0.0/16 с локальной целью и 0.0.0.0/0 с целью интернет-шлюза igw-0305
  • Связанные подсети для таблицы смешанных маршрутов — это частная и общедоступная подсети.

Я чувствую, что должна быть проблема с маршрутизацией, так как есть тайм-аут ввода-вывода, но я не могу понять, где я ошибся.

2 ответа

Среда вашего проекта сборки должна принадлежать ТОЛЬКО частной подсети, которая имеет маршрут 0.0.0.0/0 к NAT в таблице маршрутов. Также проверьте их группу безопасности, чтобы разрешить запросы https.

Я столкнулся с точно такой же проблемой. В моем случае это было связано с настройкой Security Group Egress в CodeBuild.

Вот что я сделал, когда создавал ресурс с помощью CloudFormation.

Шаг 1. Создайте SecurityGroup для CodeBuild

        CodeBuildSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      VpcId: !Ref VPC

Шаг 2: Настройте Egress, чтобы разрешить весь исходящий трафик в SecurityGroup, созданную на шаге 1.

        CodeBuildEgressAllAccess:
    Type: AWS::EC2::SecurityGroupEgress
    Properties:
      GroupId: !Ref CodeBuildSecurityGroup
      CidrIp: '0.0.0.0/0'
      FromPort: -1
      ToPort: -1
      IpProtocol: '-1'

Шаг 3: Настройте выход, чтобы разрешить исходящему трафику подключаться к RDS MySQL.

        CodeBuildEgressToMySQL:
    Type: AWS::EC2::SecurityGroupEgress
    Properties:
      GroupId: !Ref CodeBuildSecurityGroup
      DestinationSecurityGroupId: !Ref RdsMySQLSecurityGroup
      FromPort: 3306
      ToPort: 3306
      IpProtocol: tcp

Когда я развернул стек с этим содержимым, единственным исходящим трафиком, разрешенным для SecurityGroup для CodeBuild, был RDS MySQL.

Все разрешенные правила выхода, созданные на шаге 2, были проигнорированы. Таким образом, исходящий трафик, такой как Интернет, S3 и другие, будет запрещен.

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