【问题标题】:CodeDeploy step of CodePipeline because of insufficient role permissionsCodePipeline 的 CodeDeploy 步骤,因为角色权限不足
【发布时间】:2019-07-01 15:50:40
【问题描述】:

我在AWS 上有一个 3 阶段 CodePipeline

  1. 来源:在提交 CodeCommit 的特定分支时签出(成功)

  2. 构建:通过CodeBuild 对 docker 映像运行一些测试(成功)

  3. 部署:通过CodeDeploy 对部署组(也就是一些特别标记的 EC2 实例)执行部署(失败)。

第 3 步失败,

无法使用 Amazon S3 对象密钥访问工件 'someitem-/BuildArtif/5zyjxoZ' 位于 Amazon S3 工件桶'codepipeline-eu-west-1-somerandomnumber'。提供的 角色没有足够的权限。

后面指的是哪个角色?

CodePipeline的服务角色还是CodeDeploy的服务角色?

我几乎可以肯定我已经为两者都附加了适当的政策......

这是我的CodePipeline 服务角色的 sn-p

【问题讨论】:

标签: amazon-web-services amazon-iam aws-code-deploy aws-codepipeline


【解决方案1】:

此问题与分配给 Codepipeline 或 Codebuild 的角色无关。如果您进行调查,您会发现在 S3 存储桶“codepipeline-eu-west-1-somerandomnumber”中,没有文件夹“BuildArtif”,当然也没有文件 - “5zyjxoZ”。

问题是 Codebuild 没有向 Codedeploy 发送任何工件,将 Codebuild 的“输入工件”更改为管道源阶段的输出,问题就会得到解决。

【讨论】:

    【解决方案2】:

    这也可能是由于实际的BuildArtifact 不存在。检查 S3 存储桶中的指定路径以查看对象是否实际存在。 CodePipeline 只是为 CodeDeploy 提供了对它认为已构建和上传的工件的引用,但它并不真正知道。

    【讨论】:

      【解决方案3】:

      尝试为“CodeDeploy”策略提供完全访问权限,它应该可以工作。

      【讨论】:

        【解决方案4】:

        错误消息应该是指 CodeDeploy 角色。 CodeDeploy 操作通过引用 CodeDeploy 来传递 S3 工件,因此 CodeDeploy 角色需要对 CodePipeline 工件具有读取权限。

        【讨论】:

          猜你喜欢
          • 2020-03-30
          • 1970-01-01
          • 1970-01-01
          • 2021-09-01
          • 2016-02-23
          • 2022-01-19
          • 2021-01-25
          • 2019-06-04
          • 1970-01-01
          相关资源
          最近更新 更多