1

我有一个使用 bosh 部署的大厅环境。它使用 AWS Secrets Manager 进行配置。管道秘密模板的形式为/concourse/{{.Team}}/{{.Secret}}

/concourse/team1/general在 AWS Secrets Manager(其他类型的密钥)中创建了一个具有以下值的密钥。

{
  "gitbranch": "master",
  "hello": "2",
  "general": "hi"
}

我在团队中hello-world.yml设置了一个大厅管道。team1

---
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

是否可以在大厅管道中从 AWS Secrets Manager 访问密钥中的任何键值对?如果是,该怎么做?

4

1 回答 1

1

回答我自己的问题。

通过使用带有参数的 cli 创建秘密--secret-binary,我能够实现获取键值对。

(以前,我从 aws 控制台创建秘密,它被创建为秘密字符串。)

我使用以下命令来更新我的秘密,以将秘密创建为二进制文件。

b64key=$(base64 secrets.json)
aws secretsmanager update-secret \
    --secret-id  /concourse/team1/general \
    --secret-binary "$b64key"

我发现这个using-aws-secrets-manager-with-concourse-ci有助于解决问题。

如果有人知道在控制台中执行此操作的方法,请告诉我。

于 2021-03-15T14:44:10.580 回答