配置Concourse CI以使用AWS Secrets Manager

外管

我一直在尝试弄清楚如何配置Concourse的docker版本(https://github.com/concourse/concourse-docker)以使用AWS Secrets Manager,并且我将以下环境变量添加到docker-compose文件中,但是从日志看来,它似乎从未接触过AWS以获取信誉。我是否缺少某些东西,或者在docker-compose文件中的环境中添加这些环境变量时会自动发生这种情况?这是我一直在查看的文档https://concourse-ci.org/aws-asm-credential-manager.html

version: '3'

services:
  concourse-db:
    image: postgres
    environment:
      POSTGRES_DB: concourse
      POSTGRES_PASSWORD: concourse_pass
      POSTGRES_USER: concourse_user
      PGDATA: /database

  concourse:
    image: concourse/concourse
    command: quickstart
    privileged: true
    depends_on: [concourse-db]
    ports: ["9090:8080"]
    environment:
      CONCOURSE_POSTGRES_HOST: concourse-db
      CONCOURSE_POSTGRES_USER: concourse_user
      CONCOURSE_POSTGRES_PASSWORD: concourse_pass
      CONCOURSE_POSTGRES_DATABASE: concourse
      CONCOURSE_EXTERNAL_URL: http://XXX.XXX.XXX.XXX:9090
      CONCOURSE_ADD_LOCAL_USER: test: test
      CONCOURSE_MAIN_TEAM_LOCAL_USER: test
      CONCOURSE_WORKER_BAGGAGECLAIM_DRIVER: overlay
      CONCOURSE_AWS_SECRETSMANAGER_REGION: us-east-1
      CONCOURSE_AWS_SECRETSMANAGER_ACCESS_KEY: <XXXX>
      CONCOURSE_AWS_SECRETSMANAGER_SECRET_KEY: <XXXX>
      CONCOURSE_AWS_SECRETSMANAGER_TEAM_SECRET_TEMPLATE: /concourse/{{.Secret}}
      CONCOURSE_AWS_SECRETSMANAGER_PIPELINE_SECRET_TEMPLATE: /concourse/{{.Secret}}

pipeline.yml 例:

jobs:
  - name: build-ui
    plan:
      - get: web-ui
        trigger: true
      - get: resource-ui
      - task: build-task
        file: web-ui/ci/build/task.yml
      - put: resource-ui
        params:
          repository: updated-ui
          force: true
      - task: e2e-task
        file: web-ui/ci/e2e/task.yml
        params:
          UI_USERNAME: ((ui-username))
          UI_PASSWORD: ((ui-password))

resources:
  - name: cf
    type: cf-cli-resource
    source:
      api: https://api.run.pivotal.io
      username: ((cf-username))
      password: ((cf-password))
      org: Blah

  - name: web-ui
    type: git
    source:
      uri: [email protected]:blah/blah.git
      branch: master
      private_key: ((git-private-key))
富兰克林西霍

在AWS Secrets Manager中存储用于会话管道的参数时,它必须遵循以下语法,

/concourse/TEAM_NAME/PIPELINE_NAME/PARAMETER_NAME`

如果您有在多个管道中的整个团队中使用的通用参数,请使用此语法避免在Secrets Manager中创建冗余参数。

/concourse/TEAM_NAME/PARAMETER_NAME

支持的最高级别是大厅团队级别。

全局参数是不可能的。因此,将不支持您的撰写环境中的这些变量。

CONCOURSE_AWS_SECRETSMANAGER_TEAM_SECRET_TEMPLATE: /concourse/{{.Secret}}
CONCOURSE_AWS_SECRETSMANAGER_PIPELINE_SECRET_TEMPLATE: /concourse/{{.Secret}}

除非您想更改前缀/concourse否则这些参数应保留为其默认值。

并且,在管道中检索这些参数时,无需在模板中进行任何更改。只需通过PARAMETER_NAME,根据团队和管道名称,大厅将在Secrets Manager中处理查找。

...
        params:
          UI_USERNAME: ((ui-username))
          UI_PASSWORD: ((ui-password))
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从 AWS Secrets Manager 访问证书和密钥以用于 Gunicorn 配置

从 AWS Secrets Manager 检索密钥

AWS Secrets Manager异常AccessDenied

AWS Secrets Manager和JavaScript

在Cloudformation中使用AWS Secrets Manager的秘密

AWS Secrets Manager从哪里获得AWS凭证?

禁用某些Spring配置文件的spring-cloud-aws-secrets-manager-config模块

AWS Secrets Manager找不到指定的机密

Fargate 调用 AWS Secrets Manager 超时

如何通过python更新AWS Secrets Manager?

在Alpine Linux中访问AWS Secrets Manager

设置AWS Secrets Manager .Net Core

从VPC内部访问AWS Lambda的Secrets Manager

沒有 setsecret 或 testsecret 的 AWS Secrets Manager

使用AWS CLI从AWS Secrets Manager解析机密

使用 AWS Secrets Manager 连接到 AWS RDS

使用Cloudformation和Secrets Manager将Jenkins部署到AWS

使用Terraform将文件上传到AWS Secrets Manager

NodeJ无法回调AWS Secrets Manager响应

如何授予旋转Lambda访问AWS Secrets Manager的权限

如何标准化存储在AWS Secrets Manager上的私钥

Lambda的AWS Secrets Manager调用返回null / none

从Lambda函数调用AWS Secrets Manager时出现CORS问题

使用kustomize直接作为secretGenerator从gcloud Secrets Manager查找秘密

使用 CloudFormation 创建 Secrets Manager 但保持值不可见

使用 ECS + Fargate 在 CDK 堆栈中使用来自 AWS Secrets Manager 的密钥

如何使用由AWS Secrets Manager的密钥轮换创建的新机密

您如何使用Ansible在AWS Secrets Manager中设置键/值秘密?

使用JavaScript通过一个API调用从AWS Secrets Manager请求2个机密