Amazon s3 公开AWS代码构建工件

Amazon s3 公开AWS代码构建工件,amazon-s3,aws-code-deploy,aws-codebuild,artifacts,Amazon S3,Aws Code Deploy,Aws Codebuild,Artifacts,我有一个问题,每次我想使用AWS CodeDeploy时,我都必须转到S3并手动将修订文件公开,因为CodeBuild创建了一个非公开的工件 有没有办法让CodeBuild在S3中创建公共工件?或者有没有一种使用CodeDeploy部署非公共工件的方法 我试图在后期构建阶段运行一些aws s3api命令,但它们似乎失败了,退出代码为255。您需要更新S3 bucket的bucket策略 { "Version": "2012-10-17",

我有一个问题,每次我想使用AWS CodeDeploy时,我都必须转到S3并手动将修订文件公开,因为CodeBuild创建了一个非公开的工件

有没有办法让CodeBuild在S3中创建公共工件?或者有没有一种使用CodeDeploy部署非公共工件的方法


我试图在后期构建阶段运行一些aws s3api命令,但它们似乎失败了,退出代码为255。

您需要更新S3 bucket的bucket策略

{
    "Version": "2012-10-17",
    "Id": "Policy1sdhgshjg",
    "Statement": [
        {
            "Sid": "Stmt1asdasdadasd",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket_name/*"
        }
    ]
}
这将使bucket中的所有对象成为公共对象

有关更多信息,请阅读其他示例

注意:我假设您的存储桶中已禁止公众访问

每个代码部署应用程序将有一个以上的部署组。可以为每个部署组分配as service IAM角色

对于这个服务角色,我们可以授予读取S3 bucket的权限,这样我们就不必每次构建工件

示例读取权限如下所示

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:GetObject*",
                "s3:GetBucket*"
            ],
            "Resource": [
                "arn:aws:s3:::woohoo-auto-code-deploy/prod-QC-darpan-be/BuildArtif/*",
                "arn:aws:s3:::woohoo-auto-code-deploy/prod-QC-darpan-ui/BuildArtif/*"
            ],
            "Effect": "Allow"
        }
    ]
}

你是说代码部署吗?是的。。Edited answer.hmm添加了一个内联策略来读取我的bucket中的所有文件,但它仍然没有部署新代码(与前面相同)。当我在s3上公开工件时,它会部署新代码。想知道除了此策略之外,是否还有其他需要启用的功能?是否可以将#wget用于私有工件?必须同时添加两个策略:一个用于iam角色的策略和一个用于bucketHad的策略,以同时添加两个:一个用于iam角色的策略和一个用于bucket的策略