Elasticbeanstalk create-application-version завершается с ошибкой S3 - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь использовать aws cli tool в нашем конвейере CI для развертывания новой версии приложения на elastic beanstalk:

aws elasticbeanstalk create-application-version \
    --application-name "serradev dev" \
    --version-label ${BUILDKITE_COMMIT} \
    --source-bundle S3Bucket="${BUCKET_NAME}",S3Key="${BUILDKITE_COMMIT}.zip"

сбой со следующей ошибкой:

Произошла ошибка (InvalidParameterCombination) при вызове операции CreateApplicationVersion: невозможно загрузить из местоположения S3 (Bucket :astic-beanstalk-deploys ключ: da25301fc88a5c2908282a891fb0f80278008a36.zip). Причина: Запрещено

Если я заменяю ключ несуществующим развертыванием, я получаю ошибку NotFound.

Я настроил следующую политику на ведро

{
    "Version": "2012-10-17",
    "Id": "Policy1541741695771",
    "Statement": [
        {
            "Sid": "eb-af163bf3-d27b-4712-b795-d1e33e331ca4",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::185535608991:role/aws-elasticbeanstalk-service-role",
                    "arn:aws:iam::185535608991:role/aws-elasticbeanstalk-ec2-role"
                ]
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:PutObjectAcl",
                "s3:GetObjectAcl",
                "s3:GetBucketPolicy",
                "s3:Get*"
            ],
            "Resource": [
                "arn:aws:s3:::elastic-beanstalk-deploys",
                "arn:aws:s3:::elastic-beanstalk-deploys/*"
            ]
        }
    ]
}

Файл копируется в корзину с помощью команды aws s3 cp:

aws s3 cp --acl=public-read ${RUN_ARTIFACT_PATH}/app.zip s3://${BUCKET_NAME}/${BUILDKITE_COMMIT}.zip

Обратите внимание на добавление переключателя --acl=public-read.

Я даже настроил корзину для полного публичного доступа и проверил это, загрузив файл манифеста в сеансе анонимного браузера. Несмотря на то, что все эти разрешения доступны, я продолжаю получать ошибку Forbidden.
На данный момент у меня нет идей, что попробовать дальше.

...