我正在尝试为.Net Framework应用程序创建Azure Devops管道。该代码将使用AWS服务部署到云中。我想将所有数据库连接字符串保存在Secrets Manager中,并在我的应用程序中使用它,因此我不必担心在Web配置中保存密码。有人可以指导我如何解决这个问题吗?
答案 0 :(得分:1)
如果我理解正确,那么您想使用AWS Secret Manager进行存储 您的秘密,但也想在Azure中使用这些秘密值。
先决条件:您需要拥有一个Azure DevOps帐户和一个AWS帐户。
步骤1 :在AWS Secret Manager中存储机密
步骤2 :要从Azure DevOps管道中获取机密,您需要创建一个具有机密管理器策略访问权限的IAM用户
步骤3 :附加权限策略。用户应该能够从机密管理器中进行读写,因此我们将分配SecretsManagerReadWrite
策略。
第4步:复制访问密钥和秘密密钥。
步骤5 :打开Azure DevOps面板并选择一个组织,然后单击“项目设置”。
步骤6 :从“管道”部分下方的左侧面板中查找服务连接。
步骤7 :单击“新建服务连接”。
第8步:输入访问密钥和秘密密钥以及其他详细信息
步骤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中看到安全值。