Обычно это происходит, когда у вас уже есть проект CodeBuild, и вы интегрируете его в конвейер CodePipeline.Когда вы интегрируете проект Codebuild с CodePipeline, проект будет извлекать свой источник из выходных данных CodePipeline Source.Исходные выходные данные будут храниться в хранилище артефактов, которое является корзиной S3, либо корзиной по умолчанию, созданной CodePipeline, либо корзиной, которую вы указываете при создании конвейера.
Таким образом, вам нужно будет предоставить разрешения службе CodeBuildроль для доступа к корзине CodePipline в S3.Роль потребует разрешений для помещения объектов S3 в корзину, а также для получения объектов.
Политика, которую я пробовал и работает так же:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CodeBuildDefaultPolicy",
"Effect": "Allow",
"Action": [
"codebuild:*",
"iam:PassRole"
],
"Resource": "*"
},
{
"Sid": "CloudWatchLogsAccessPolicy",
"Effect": "Allow",
"Action": [
"logs:FilterLogEvents",
"logs:GetLogEvents"
],
"Resource": "*"
},
{
"Sid": "S3AccessPolicy",
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:GetObject",
"s3:List*",
"s3:PutObject"
],
"Resource": "*"
}
]
}
Policy Simulator
Ссылка AWS