【问题标题】:AWS codebuild fails cant download source when initiated from codepipeline从 codepipeline 启动时,AWS codebuild 失败无法下载源
【发布时间】:2018-07-03 21:15:32
【问题描述】:

当我以 root 用户身份手动启动时,我有一个 AWS 代码构建作业可以正常工作。

我有一个 codepipe 行,应该在 codecommit 合并到 master 时启动构建作业。它会触发作业并开始构建,但在尝试下载源代码时失败。

我已将完整的 S3/codebuild/codecommit 策略附加到管道,但它仍然会引发访问被拒绝。

我缺少哪些权限?

【问题讨论】:

  • 您在哪里看到拒绝访问以及完整的错误消息是什么?它是在管道中还是在构建内部(即构建阶段之一失败)? CodeBuild 使用单独的角色(不是管道的角色)来拉取源并将工件上传到 S3。

标签: amazon-web-services aws-codepipeline aws-codebuild


【解决方案1】:

当您已经有一个 CodeBuild 项目并将其集成到 CodePipeline 项目时,通常会发生这种情况。 Codebuild 现在不会从 CodeCommit/Github 存储库下载源代码。相反,它将尝试下载在 S3 的代码管道存储桶中创建的源工件。 因此,您需要向 CodeBuild 角色提供访问 S3 中的 codepipline 存储桶的权限。

您可以通过修改 Codebuild 角色的附加政策(或附加新政策)来实现此目的,该政策授予对以下操作的访问权限

s3:ListObjects
s3:GetObject
s3:ListBucket

用于您的 Codepipeline 存储桶及其对象

"arn:aws:s3:::codepipeline-bucket",
"arn:aws:s3:::codepipeline-bucket/*"

或者您可以选择为此存储桶及其对象添加所有操作。您可以发布更改,它会起作用。如果没有,请 Lmk。

【讨论】:

  • 您还需要添加操作s3:PutObject,因为 CodeBuild 将尝试在 S3 上的管道存储桶中发布构建工件。
【解决方案2】:

原因是 CodeBuild 服务角色需要访问 CodePipeline S3 存储桶的权限。 要修复它,您可以附加内联策略或修改现有策略以允许这些操作访问您的 CodePipeline S3 存储桶中的对象(为策略指定资源)

s3:GetObject
s3:GetObjectVersion
s3:PutObject    

这是 json 中的策略,请记住将 S3-BUCKET-NAME 替换为您的实际代码管道 s3 存储桶名称。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::S3-BUCKET-NAME/*"
        }
    ]
}

要查找 S3 存储桶名称,您可以在 AWS 控制台上执行以下操作来追踪错误来源:

  1. 转到 CodeBuild
  2. 选择左侧面板上的构建项目
  3. 选择您的项目,将显示构建历史记录
  4. 单击状态为失败的构建运行项
  5. 在构建日志中查看错误(如果有)
  6. 选择阶段详细信息
  7. CodeBuild 很可能在 DOWNLOAD_SOURCE 阶段失败并显示以下错误消息:
CLIENT_ERROR: AccessDenied: Access Denied status code: 403, request id: 
requestId, host id: hostId for primary source and source version 
arn:aws:s3:::S3-BUCKET-NAME/path

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-18
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多