【问题标题】:How to reuse same AWS CodeBuild project in several CodePipelines?如何在多个 CodePipelines 中重用相同的 AWS CodeBuild 项目?
【发布时间】:2022-10-07 21:04:37
【问题描述】:

我正在使用 TypeScript 和 cdk 为我的项目构建 AWS CodePipelines。我还有一个在其中一个管道(管道 A)中创建的 CodeBuild 项目,我想在不同的管道(管道 B)中重用它。

在管道 B 中,我正在创建一个指向该项目的链接

const project = PipelineProject.fromProjectName(this, "SharedId", "SharedName");

两条管道均已成功创建。当我在管道 A 中运行它时,一切正常。 问题是 - 当我在管道 B 中运行这个项目时,它失败并显示一条消息:

[Container] 2022/10/07 10:34:57 Waiting for DOWNLOAD_SOURCE
AccessDenied: Access Denied
    status code: 403, request id: QHRTGW90SXRHBRAD, host id: nTnocqc+T3RL6naDcEdDH+WOQ4RJfFekFGopZCPFvbcZEkXE8OxCS9slBjrnJl/k+w68ChuBoei1KtcGT1xWZA== for primary source and source version arn:aws:s3:::mypipeline-ia1llzrl9at8/SharedId/deployment/65uygTY

我尝试将共享 CodeBuild 项目的角色权限添加到 s3,但没有运气。在这种情况下,它会失败并显示以下消息:

[Container] 2022/10/07 12:20:13 Waiting for DOWNLOAD_SOURCE
AccessDenied: The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access.
    status code: 403, request id: XQS9V45BHRGK3SBG, host id: //Jrj4Tb6aV1GMCwOE9mzA18Hc0En7299hcd4DgxoFD7l7O/QaDsgln8UMtqwfIV5o/RDKR+Aqc= for primary source and source version arn:aws:s3:::mypipeline-ia1llzrl9at8/SharedId/deployment/65uygTY

所以我的问题是 - 如何正确设置此 CodeBuild 项目的权限,以便它可以访问来自两个管道的输入工件?

【问题讨论】:

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


    【解决方案1】:

    无法修改导入的资源,因为它们只是一个参考,因此 CDK 无法将所需的权限添加到项目中,在这种情况下,需要从 S3 下载其源代码的权限。

    您收到的错误可能是由于您的 S3 源是 KMS 加密的,因此您还需要添加所需的策略以授予项目的服务角色解密 KMS 密钥的权利。

    参考The ciphertext refers to a customer master key that does not exist,

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 2021-11-24
      • 1970-01-01
      • 2021-12-29
      • 2018-09-10
      • 2022-08-03
      • 2022-01-23
      • 2020-03-07
      • 1970-01-01
      相关资源
      最近更新 更多