首页 > 解决方案 > AWS Secrets Manager - 在本地 Codebuild 容器中使用密钥

问题描述

我有存储在 AWS Secrets Manager 中的数据库凭证,我想将其提取并设置为本地化 Codebuild 容器中的环境变量。我正在使用 4.0 Codebuild 映像和 codebuild_build.sh 脚本在我的本地机器上测试 Codebuild。

目前我的 buildspec.yml 在开始时看起来像这样:

version: 0.2

env:
    secrets-manager:
        DATABASE_USER: <secret_name>:<secret_key_for_database_user>

当我运行脚本时,我得到了这个:

agent_1  | [Container] 2020/12/06 21:30:16 Phase context status code: Secrets Manager Error Message: ResourceNotFoundException: Secrets Manager can't find the specified secret.
agent_1  | [Container] 2020/12/06 21:30:16 Runtime error (*clienterr.PhaseContextError: ResourceNotFoundException: Secrets Manager can't find the specified secret.)

我尝试使用 aws 客户端获取秘密,并且效果很好。我认为这不是我的凭据的问题,因为在使用 -c 选项运行 codebuild_build.sh 脚本以及将我的 aws 密钥 ID 和密钥本身硬编码到 buildspec.yml 时,我会执行此步骤。我也尝试过使用秘密的完整 ARN,但没有运气。

我在这里缺少一个技巧吗?我是否需要在 AWS Secrets Manager 或 Codebuild(本地和 AWS)上更新密钥本身的资源权限?

标签: amazon-web-servicesaws-codebuildaws-secrets-manager

解决方案


推荐阅读