【问题标题】:How to integrate aws secrets manager with azure CI/CD pipeline?如何将 aws Secrets Manager 与 azure CI/CD 管道集成?
【发布时间】:2021-02-12 13:09:18
【问题描述】:

我正在尝试为我的 .Net Framework 应用程序创建 Azure Devops 管道。代码将使用 aws 服务部署到云端。我想将所有数据库连接字符串保存在秘密管理器中并在我的应用程序中使用它,这样我就不必担心在 Web 配置中保存密码。有人可以指导我如何解决这个问题吗?

【问题讨论】:

  • Azure 没有任何等效的秘密经理?
  • 嗨@DevHelp,嗨,这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以Accept it as an Answer,这样它可以帮助遇到相同问题的其他社区成员,我们可以存档这个帖子,谢谢。

标签: .net amazon-web-services azure-devops aws-secrets-manager


【解决方案1】:

如果我理解正确,您想使用 AWS 密钥管理器来存储 你的秘密,但也想在 Azure 中使用这些秘密值。

先决条件:您需要拥有一个 Azure DevOps 帐户和一个 AWS 帐户。

第 1 步:在 AWS Secret Manager 中存储机密

第 2 步:要从 Azure DevOps 管道获取机密,您需要创建一个具有机密管理器策略访问权限的 IAM 用户

第 3 步:附加权限策略。用户应该能够从秘密管理器读取和写入,因此我们将分配 SecretsManagerReadWrite 策略。

第 4 步:复制访问密钥和密钥。

第 5 步:打开 Azure DevOps 面板并选择一个组织,然后单击项目设置。

第 6 步:在 Pipelines 部分下的左侧面板中查找服务连接。

第 7 步:点击新建服务连接。

第 8 步:输入 Access key 和 Secret key 等详细信息

第 9 步:创建一个 repo 并编写 azure-pipeline.yml

Sample yaml:

name: Test
variables:
  var1: value1
trigger:
- master
jobs:
- job: One
  steps:
  - script: |
      sudo apt-get update
      sudo apt-get install -y jq
      python -m pip install --upgrade pip==9.0.3 setuptools wheel
      pip install awscli --user
    displayName: 'Install tools'
  - task: AWSShellScript@1
    inputs:
      awsCredentials: 'Access To AWS' # Serivce connection name
      regionName: 'eu-west-1'
      scriptType: 'inline'
      inlineScript: |
        /home/vsts/.local/bin/aws secretsmanager get-secret-value --secret-id dev/pass | jq -r '.SecretString' | jq -r '.password'

第 10 步:将代码推送到 master 分支后,管道将自动启动,您将在标准输出中看到安全值。

【讨论】:

  • 你能详细说明第9步和第10步吗?谢谢
  • azure-pipeline.yml 是您可以从 AWS 密钥管理器检索密钥并使用该值的位置。检查azure-pipeline.yaml 中的输入部分,我们正在使用 CLI 访问 AWS 机密管理器。将代码推送到 master 分支后会触发管道,也可以更改为特定分支,您只需更改管道 yaml 文件中的trigger 指令即可。第 10 步表示您的管道运行成功,根据配置。可以检查日志以分析并更详细地了解正在发生的事情。
猜你喜欢
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2020-02-06
  • 1970-01-01
  • 2022-09-23
  • 2020-10-13
相关资源
最近更新 更多