Попытка создать и запустить AWS CodePipeline, которая извлекается из Github, собирается и развертывается в экземпляре EC2. Трубопровод выглядит следующим образом:
Источник (Github) -> Сборка (AWS CodeBuild) -> Развертывание (AWS CodeDeploy)
Исходные шаги и шаги сборки успешны. Тем не менее, развертывание не удается последовательно выдавая следующую ошибку:
Недостаточно прав
Невозможно получить доступ к артефакту с помощью ключа объекта Amazon S3 '[redacted] -2nd-test-pip / BuildArtif / IbiHzen', расположенного в корзине артефактов Amazon S3 'codepipeline-us-east-1- [redacted]'. Предоставленная роль не имеет достаточных разрешений.
Ниже приведена политика IAM для политики роли службы CodeBuild:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Resource": [
"arn:aws:logs:us-east-1:362490217134:log-group:/aws/codebuild/[Redacted]-Build-Project",
"arn:aws:logs:us-east-1:362490217134:log-group:/aws/codebuild/[Redacted]-Build-Project:*"
],
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
]
},
{
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-us-east-1-*"
],
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion"
]
},
{
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-us-east-1-[Redacted]/*"
],
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion"
]
}
]
}
Роль службы CodePipeline, созданная мастером конвейера, назначила полный доступ S3:
"Action": [
"elasticbeanstalk:*",
"ec2:*",
"elasticloadbalancing:*",
"autoscaling:*",
"cloudwatch:*",
"s3:*",
"sns:*",
"cloudformation:*",
"rds:*",
"sqs:*",
"ecs:*"
],
"Resource": "*",
"Effect": "Allow"
},
Я неоднократно подтверждал, что артефакт, на который ссылается шаг развертывания конвейера, соответствует артефакту, созданному на этапе сборки.
Если я пойду и посмотрю на указанный путь, там нет каталога или zip-файла (не уверен, какой ДОЛЖЕН быть, но нет) с этим именем. Кроме того, во время сборки создается zip-файл, но он никогда не называется так, как ожидает этап развертывания.
Я также вошел в проект сборки и попытался выполнить сборку, используя другие конфигурации артефактов, но, похоже, они игнорируются при запуске сборки через CodePipeline.
Отказ от ответственности: я видел похожие вопросы, размещенные здесь и в других местах на веб-сайтах, но каждый из них касается ECS или другой ситуации, которая отличается от моей. Спасибо за вашу помощь