在身份验证之前在 AWS buildspec 中使用 jq - 最佳实践?
Using jq in AWS buildspec before authentication - best practice?
我的 AWS CodeBuild buildspec.yml 目前看起来像这样:
- docker拉jq
- PASSWORD=`aws secretsmanager get-secret-value ... | docker 运行 jq '.password'`
- docker 登录
- (拉取实际图像并继续构建)
换句话说,为了登录 Docker 我需要 Secrets Manager 的帐户密码,为了解析 JSON 格式的秘密以隔离我需要的密码 jq
,历史上 jq
来自 docker pull
但是现在对未经身份验证的请求进行了速率限制,初始拉取失败。
更标准的处理方法是什么?用 apt-get
或类似的方式安装 jq
?使用其他一些已经可用的工具来解析 JSON?不要尝试存储 JSON 格式的秘密?还有别的吗?
如果有我还没有发现的标准做法,我不想以我自己独特的方式解决这个问题。
jq
已在基于 Amazon Linux 2 和 Ubuntu 的标准 CodeBuild 映像中可用。您可以通过检查这些图像的 Dockerfiles
来检查可用的软件包:
因此您不需要自己安装它,除非您使用的是非标准 CodeBuild 映像。
Codebuild 可以直接将secret 作为环境变量传递。您不需要使用 cli 命令来检索秘密。
env:
secrets-manager:
key: secret-id:json-key:version-stage:version-id
勾选this
我的 AWS CodeBuild buildspec.yml 目前看起来像这样:
- docker拉jq
- PASSWORD=`aws secretsmanager get-secret-value ... | docker 运行 jq '.password'`
- docker 登录
- (拉取实际图像并继续构建)
换句话说,为了登录 Docker 我需要 Secrets Manager 的帐户密码,为了解析 JSON 格式的秘密以隔离我需要的密码 jq
,历史上 jq
来自 docker pull
但是现在对未经身份验证的请求进行了速率限制,初始拉取失败。
更标准的处理方法是什么?用 apt-get
或类似的方式安装 jq
?使用其他一些已经可用的工具来解析 JSON?不要尝试存储 JSON 格式的秘密?还有别的吗?
如果有我还没有发现的标准做法,我不想以我自己独特的方式解决这个问题。
jq
已在基于 Amazon Linux 2 和 Ubuntu 的标准 CodeBuild 映像中可用。您可以通过检查这些图像的 Dockerfiles
来检查可用的软件包:
因此您不需要自己安装它,除非您使用的是非标准 CodeBuild 映像。
Codebuild 可以直接将secret 作为环境变量传递。您不需要使用 cli 命令来检索秘密。
env:
secrets-manager:
key: secret-id:json-key:version-stage:version-id
勾选this