如何在大厅中从 AWS Secrets Manager 访问密钥值对密钥?
How to access a key value pair secret from AWS Secrets Manager, in concourse?
我有一个使用 bosh 部署的大厅环境。它配置有 AWS Secrets Manager。
管道秘密模板的形式为 /concourse/{{.Team}}/{{.Secret}}
我在 AWS Secrets Manager 中创建了一个秘密 /concourse/team1/general
(其他类型的秘密),其值如下。
{
"gitbranch": "master",
"hello": "2",
"general": "hi"
}
我在 team1
团队中设置了一个大厅管道 hello-world.yml
。
---
jobs:
- name: job
public: true
plan:
- task: check-secret
config:
platform: linux
image_resource:
type: registry-image
source: { repository: busybox }
run:
path: echo
args: ["((general))"]
此管道输出值为
{"gitbranch":"master","hello":"2","general":"hi"}
但是,如果我将管道中的 args(最后一行)更改为 args: ["((general.gitbranch))"]
,则会出现以下错误
failed to interpolate task config: cannot access field 'gitbranch' of non-map value ('string') from var: general.gitbranch
是否可以在 concourse 管道中从 AWS Secrets Manager 访问密钥中的任何键值对?如果是,如何操作?
回答我自己的问题。
通过使用带有参数 --secret-binary
的 cli 创建密钥,我能够实现获取键值对。
(之前,我是从 aws 控制台创建秘密的,它是作为秘密字符串创建的。)
我使用以下命令更新我的秘密以将秘密创建为二进制文件。
b64key=$(base64 secrets.json)
aws secretsmanager update-secret \
--secret-id /concourse/team1/general \
--secret-binary "$b64key"
我找到了这个using-aws-secrets-manager-with-concourse-ci,它对解决问题很有帮助。
如果有人知道在控制台中执行此操作的方法,请告诉我。
我有一个使用 bosh 部署的大厅环境。它配置有 AWS Secrets Manager。
管道秘密模板的形式为 /concourse/{{.Team}}/{{.Secret}}
我在 AWS Secrets Manager 中创建了一个秘密 /concourse/team1/general
(其他类型的秘密),其值如下。
{
"gitbranch": "master",
"hello": "2",
"general": "hi"
}
我在 team1
团队中设置了一个大厅管道 hello-world.yml
。
---
jobs:
- name: job
public: true
plan:
- task: check-secret
config:
platform: linux
image_resource:
type: registry-image
source: { repository: busybox }
run:
path: echo
args: ["((general))"]
此管道输出值为
{"gitbranch":"master","hello":"2","general":"hi"}
但是,如果我将管道中的 args(最后一行)更改为 args: ["((general.gitbranch))"]
,则会出现以下错误
failed to interpolate task config: cannot access field 'gitbranch' of non-map value ('string') from var: general.gitbranch
是否可以在 concourse 管道中从 AWS Secrets Manager 访问密钥中的任何键值对?如果是,如何操作?
回答我自己的问题。
通过使用带有参数 --secret-binary
的 cli 创建密钥,我能够实现获取键值对。
(之前,我是从 aws 控制台创建秘密的,它是作为秘密字符串创建的。)
我使用以下命令更新我的秘密以将秘密创建为二进制文件。
b64key=$(base64 secrets.json)
aws secretsmanager update-secret \
--secret-id /concourse/team1/general \
--secret-binary "$b64key"
我找到了这个using-aws-secrets-manager-with-concourse-ci,它对解决问题很有帮助。
如果有人知道在控制台中执行此操作的方法,请告诉我。