Какие разрешения S3 подходят для развертывания в Elastic Beanstalk из CodeShip

Каковы соответствующие разрешения S3 для развертывания приложения Elastic Beanstalk с помощью CodeShip? При развертывании новой версии в приложении tomcat я получаю следующие ошибки:

Сервис: Amazon S3, Сообщение: У вас нет разрешения на выполнение действия «s3:ListBucket». Убедитесь, что ваши политики S3 и ваши списки управления доступом позволяют выполнять эти действия.

Сервис: Amazon S3, Сообщение: У вас нет разрешения на выполнение действия «s3:GetObject» или «s3:ListBucket». Убедитесь, что ваши политики S3 и ваши списки управления доступом позволяют выполнять эти действия.

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

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetBucketPolicy"
            ],
            "Resource": [
                "arn:aws:s3:::codeshipbucket/*"
            ]
        }
    ]
}

Моя корзина S3, которую я дал CodeShip, является подпапкой в ​​codeshipbucket, если это имеет значение.

Что такое соответствующие разрешения?


person thefroatgt    schedule 06.04.2015    source источник


Ответы (2)


В нашем внутреннем тесте мы смогли выполнить развертывание в ElasticBeanstalk только со следующими разрешениями S3.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::YOUR_S3_BUCKET_NAME/*"
            ]
        }
    ]
}

И это то, что мы в настоящее время рекомендуем в нашей документации, доступной по адресу https://codeship.com/documentation/continuous-deployment/deployment-to-elastic-beanstalk/#s3

Тем не менее, один из наших замечательных пользователей опубликовал очень подробное руководство по развертыванию в Elastic Beanstalk, которое доступно по адресу http://nudaygames.squarespace.com/blog/2014/5/26/deploying-to-elastic-beanstalk-from-your-continuous-integration-system и рекомендует более широкий набор разрешений S3.

Отказ от ответственности: я работаю в Codeship, но вы, наверное, уже догадались об этом из моего ответа.

person mlocher    schedule 07.04.2015
comment
У меня была та же проблема, что и у автора этого вопроса, и я нашел исправление здесь: stackoverflow.com/a/24572049/121515 . Обратите внимание, что загрузка на S3 будет работать нормально с разрешениями S3, которые вы описали выше, но развертывание новой версии — нет. Codeship также сообщает об успешном развертывании, несмотря на то, что в консоли AWS EB отображаются ошибки. - person Garret Heaton; 16.07.2015

Это разрешения S3, которые мы должны были предоставить пользователю IAM, которого мы используем с Codeship:

    {
        "Action": [
            "s3:CreateBucket",
            "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": "*"
    },
    {
        "Action": [
            "s3:ListBucket",
            "s3:GetObjectAcl",
            "s3:GetBucketPolicy",
            "s3:DeleteObject",
            "s3:PutObject",
            "s3:PutObjectAcl"
        ],
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::elasticbeanstalk-[region]-[account-id]",
            "arn:aws:s3:::elasticbeanstalk-[region]-[account-id]/*"
        ]
    }

Мы выполнили eb deploy --debug и добавили разрешения одно за другим.

person user3145800    schedule 28.08.2015