Доступ к сборке кода запрещен при загрузке артефакта из S3 - PullRequest
0 голосов
/ 13 декабря 2018

Мой CodeBuild настроен с помощью CodePipeline.S3 - мой магазин артефактов.Я продолжаю получать сообщение об отказе в доступе, несмотря на то, что я прикрепил роли IAM с достаточным доступом.

Снимок экрана с сообщением об ошибке

Code Build Error message

Я уже проверил роль службы, связанную с Codebuild.К нему прикреплена следующая политика:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:logs:ap-southeast-1:682905754632:log-group:/aws/codebuild/Build",
            "arn:aws:logs:ap-southeast-1:682905754632:log-group:/aws/codebuild/Build:*"
        ],
        "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ]
    },
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::codepipeline-ap-southeast-1-*"
        ],
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion"
        ]
    }
]

}

Но когда я тестирую ее с помощью валидатора политики IAM, я получаю следующее сообщение об ошибке.

enter image description here

Исходя из принятого ответа на этот вопрос, имеющаяся у меня политика должна позволять мне без проблем получать артефакты от S3 - Сбой AWS Codebuild при загрузке исходного кода.Сообщение: Отказано в доступе

Как мне избавиться от сообщения об отказе в доступе?

1 Ответ

0 голосов
/ 13 декабря 2018

Обычно это происходит, когда у вас уже есть проект 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

enter image description here

Ссылка AWS

...