Ошибка 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 и другие, будет запрещен.