У меня есть CodePipeline Pipeline со стадией CodeBuild
Вот моя спецификация сборки:
{
"version": "0.2",
"phases": {
"build": {
"commands": [
"echo \"Hello, CodeBuild!\"",
"echo \"ca marche\" > test.txt",
"mkdir site-content",
"aws s3 sync s3://my-super-bucket-name site-content",
"ls - al"
]
}
},
"artifacts": {
"files": [
"test.txt"
]
}
}
Роль службы проекта сборки определяется с помощью политики, созданной cdk по умолчанию, а также этой политики:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-super-bucket-name",
"arn:aws:s3:::my-super-bucket-name/* "
],
"Effect": "Allow"
}
]
}
И codebuild.amazonaws.com является доверенным лицом для Роли
Что касается ведра, у меня есть такая политика ведра:
{
"Version": "2012-10-17",
"Id": "PolicyXXXXXXXXXXXXX",
"Statement": [
{
"Sid": "StmtYYYYYYYYYYYYY",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12345678910:user/a-user-for-another-process"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-super-bucket-name"
}
]
}
Но проект сборки терпит неудачу:
[Container] 2021/02/03 09:57:43 Running command aws s3 sync s3://my-super-bucket-name site-content
download failed: s3://my-super-bucket-name/test.txt to site-content/test.txt An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
Completed 4 Bytes/13.7 KiB (0 Bytes/s) with 4 file(s) remaining
Помощь !
РЕДАКТИРОВАТЬ: я просто добавляю это утверждение в политику ведра:
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXXXXX:role/my-role"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-super-bucket-name"
}
Но у меня такая же ошибка :(
РЕДАКТИРОВАТЬ 2: Глупый я! Это было :
"Resource": "arn:aws:s3:::my-super-bucket-name*"
Теперь это работает!