7

使用 CodeShip 部署 Elastic Beanstalk 应用程序的适当 S3 权限是什么?将新版本部署到 tomcat 应用程序时,出现以下错误:

服务:Amazon S3,消息:您无权执行“s3:ListBucket”操作。验证您的 S3 策略和 ACL 是否允许您执行这些操作。

服务:Amazon S3,消息:您无权执行“s3:GetObject”或“s3:ListBucket”操作。验证您的 S3 策略和 ACL 是否允许您执行这些操作。

如果我授予 CodeShip 用户对 S3 的完全访问权限,一切正常,但这并不理想。我的 CodeShip 用户当前的 S3 权限是

{
    "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/*"
            ]
        }
    ]
}

如果重要的话,我给 CodeShip 的 S3 存储桶是 codeshipbucket 下的子文件夹。

什么是适当的权限?

4

2 回答 2

3

这些是我们必须授予使用 Codeship 的 IAM 用户的 S3 权限:

    {
        "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我们一一执行并添加了权限。

于 2015-08-28T06:22:20.497 回答
2

在我们的内部测试中,我们已经能够使用以下 S3 权限部署到 ElasticBeanstalk

{
    "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 工作,但您可能已经从我的回答中猜到了。

于 2015-04-07T01:11:39.750 回答