如何将AWS Secrets Manager与天蓝色的CI / CD管道集成?

时间:2020-10-30 03:00:14

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

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

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您想使用AWS Secret Manager进行存储 您的秘密,但也想在Azure中使用这些秘密值。

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

步骤1 在AWS Secret Manager中存储机密

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

enter image description here

步骤3 附加权限策略。用户应该能够从机密管理器中进行读写,因此我们将分配SecretsManagerReadWrite策略。

enter image description here

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

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

enter image description here

步骤6 从“管道”部分下方的左侧面板中查找服务连接。

enter image description here

步骤7 单击“新建服务连接”。

enter image description here

第8步输入访问密钥和秘密密钥以及其他详细信息

enter image description here

步骤9 创建一个存储库并编写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分支后,管道将自动启动,并且您会在stdout中看到安全值。