簡體   English   中英

Azure Key Vault 參考 Java 代碼/Yaml 管道

[英]Azure Key Vault References Java Code/Yaml Pipeline

我需要幫助弄清楚如何在我的管道中正確設置 Key Vault Secrets。

I am building a Java Web App using maven and deploying it on app service linux web container.

我的整個管道在 ADO Yaml 文件上運行,我的第一個任務是 Azure 密鑰保管庫任務以提取機密,然后是 Maven 發布任務和藝術發布任務。

總體而言,web 容器部署成功,但我現在需要做的是保護 Key Vault 中的機密並將其從我的 web 應用程序的硬代碼中刪除。 這就是我對如何使它們一起工作感到困惑的地方。

在我的 Yaml 文件中的 Azure Key Vault 任務中,我有以下代碼:

steps:
   -task: AzureKeyVault@2
    inputs:
      azureSubscription: 'my_subscription'
      KeyVaultName: 'my_KV'
      SecretsFilter: '*'
      RunAsPreJob: false
      script: Write-Host $env:MY_MAPPED_ENV_VAR
    env:
      MY_MAPPED_ENV_VAR:$(my_secret)

其次是 Maven 構建任務和工件發布任務

在 Azure 門戶中,我已經創建了一個秘密(my_secret),其中包含我的 java 代碼中的連接字符串的值。

在我的 Java 代碼中,

我有一個名為 Provider.java 的文件,其中包含以下代碼:

package com.***.***.***;

public interface Provider {
    String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    String Connection_URL="jdbc:sqlserver://11.2.4.11:8433;databaseName=TPNTFDB;user=tpntf_potsfinder;password=Potsfinder2!";

}

不,我什至不確定我是否為我的秘密正確映射了我的環境變量。

此外,我不確定如何從我的 java 代碼中刪除我的硬代碼連接 url 並替換為允許我的代碼從 Key Vault 解析我的秘密的密鑰庫引用或環境變量。

換句話說,在我將連接 url 作為機密存儲在 Key Vault 中並使用 Yaml 文件中的 Key Vault 任務將其拉出后,如何刪除我的硬編碼連接 Z572D4E421E5E6B9BCE112Z81 並將其替換為 KeyA02B9BCE112Z81

在管道中使用以下 Key Vault 任務來獲取 Key Vault 中的機密:

- task: AzureKeyVault@2
    displayName: 'Configure Key Vault'
    inputs:
      azureSubscription: 'my_subscription'
      KeyVaultName: 'my_KV'
      SecretsFilter: '*'
      RunAsPreJob: false

現在在您的 maven 構建任務中,定義如下環境變量:

env:
    MySecret: $(key-vault-secret-name)

在您的 java 代碼中,您可以使用如下密鑰庫機密:

String Connection_URL = System.getenv("MySecret")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM