CodePipeline(AWS)中的CodeBuild(AWS)无法工作

11

我已经使用代码流水线向导创建了一个代码构建项目,并选择了所有必要的选项和有效的IAM角色。我还添加了必要的IAM角色策略,以便访问并写入S3存储桶中的数据。下面列出的策略已被我考虑用于访问S3。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:logs:aws/codebuild",
            "arn:aws:logs:aws/codebuild:*"
        ],
        "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ]
    },
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::pipeline”,
            "arn:aws:s3::: pipeline/*"
        ],
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:GetBucketAcl",
            "s3:GetBucketLocation"
        ]
    }
]

我发起了一个流水线,但代码构建失败了,并且我收到了下面提到的错误

DOWNLOAD_SOURCE Failed: 
CLIENT_ERROR: symlink /codebuild/output/.../libcrypto.1.0.0.dylib: no such file or directory for primary source and source version arn:aws:s3:::codepipeline-bucketSource/Ap4g3sv.zip

我已经进行了大量研究,查看了各种AWS文档,但仍然找不到解决办法。


1
你能试着从代码构建控制台创建构建,然后从代码管道控制台使用该构建吗?还有一件事,你是在尝试将 S3 用作构建的来源吗? - Deependra Dangal
不,我没有使用S3作为数据源。在我的情况下,数据源只是一个管道。 - Vee Mandke
我尝试在代码构建控制台中创建一个独立的构建项目以供流水线使用,但是仍然遇到相同的错误。 - Vee Mandke
2个回答

7

最终,经过大量的研究,我发现这只是一个权限问题。我需要按照以下所述更改策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}

在添加这个修改后,我的代码构建和流水线开始工作了。

3

看起来你的策略只提供对“pipeline”存储桶的访问权限,而不是“codepipeline-bucketSource”的访问权限。您可以尝试暂时给予S3完全访问角色的权限,以便我们可以调试是否实际上是一个访问相关问题。


这只是一个与访问相关的问题。 - Vee Mandke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接