Ограничение доступа к коду / конвейеру для двух блоков, доступ запрещен - PullRequest
0 голосов
/ 19 сентября 2018

В настоящее время с доступом к S3Full мой codebuild работает нормально.Однако, когда я пытаюсь ограничить доступ codebuild с помощью приведенной ниже политики, я получаю сообщение об ошибке для папок в частном репозитории, к которым мне нужно получить доступ.Один из блоков S3 - это обычный фрагмент кода, а другой - частное хранилище maven, которое мы размещаем (для которого требуется ключ доступа AWS).

Вот политика IAM:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
},
{
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-us-east-1-etcetc/*",
"arn:aws:s3::: labs-maven-repo"
]
},
{
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-us-east-1-etcetc/*",
"arn:aws:s3:::labs-maven-repo"
]
}
]
}

Ниже приведены ошибки, которые я получаю на этапе сборки в codebuild.Также интересно и стоит отметить, что папки в репозитории maven перечислены в сообщениях об ошибках ниже, но не в самой корзине S3.

WARNING Could not transfer metadata com.project.metadata:data-model:1.0-SNAPSHOT/maven-metadata.xml from/to -server name given in settings.xml file- (s3://labs-maven-repo/release): Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; 

WARNING Could not transfer metadata com.project.metadata:data-model:1.0-SNAPSHOT/maven-metadata.xml from/to -server name given in settings.xml file- (s3://labs-maven-repo/snapshot): Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; 

Заранее всем спасибо!

PS Это одно из моих первых сообщений о переполнении стека, поэтому, если я могу предоставить дополнительную информацию или что-либо еще, сообщите мне.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Для s3: ListBucket укажите корзину как ресурс без подстановочного знака.Итак:

"arn: aws: s3 ::: codepipeline-us-east-1-etcetc"

вместо

"arn: aws: s3 ::: codepipeline-us-east-1-etcetc / *"

Для операций с объектами (которые вы используете как s3: *) используйте

"arn: aws: s3 ::: labs-maven-repo / *"

вместо

"arn: aws: s3 ::: labs-maven-repo ".

Для S3 необходимо учитывать три различных операции:

  1. Операции со всеми сегментами: указать более одного сегмента в качестве ресурса.

    Например, "Ресурс": "*"

  2. Операции с самим сегментом указывают контейнер в качестве ресурса.

    Например, "Ресурс": ["arn: aws: s3 ::: codepipeline-us-east-1-etcetc", "arn: aws: s3 ::: labs-maven-repo"]

  3. Операции над объектами в корзине указывают любой префикс корзины.

    Например, "Ресурс": ["arn: aws: s3 ::: codepipeline-us-east-1-etcetc / ", "arn: aws: s3 ::: labs-maven-repo/"]

0 голосов
/ 20 сентября 2018

Если вы извлекаете данные из корзины, вам просто нужно добавить разрешение на чтение этой корзины в своей политике IAM.Если вы загружаете данные в этот сегмент, вам нужно добавить разрешение на запись этого блока в свою политику IAM.Тогда, пожалуйста, попробуйте еще раз.

...