Azure Java Spring App & Managed Identity to Access Key Vault?



我正在尝试将java spring应用程序Dockerize并将其部署在Azure kubernetes中。此应用程序已连接到数据库,并且当前它从配置文件中读取连接字符串。

由于此应用程序将被Dockerized并部署在AKS上,我想使用托管身份从Azure密钥保管库读取连接字符串。

是否有任何可用的样本来证明上述情况?

您可以将连接存储为密钥库机密,然后使用javasdk获取它。

请确保已将MSI(托管身份(添加到密钥保管库访问策略中,然后使用以下代码。

1.创建秘密客户端

它使用DefaultAzureCredential进行身份验证,不设置环境变量,然后它将使用您的MSI进行自动身份验证,您也可以使用ManagedIdentityCredentialBuilder而不是DefaultAzureCredentialBuilder,指定MSI的clientId

import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
SecretClient secretClient = new SecretClientBuilder()
.vaultUrl("<your-key-vault-url>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();

2.检索一个秘密

KeyVaultSecret secret = secretClient.getSecret("<secret-name>");
System.out.printf("Retrieved secret with name "%s" and value "%s"%n", secret.getName(), secret.getValue());

有关更多详细信息,请参阅-Azure Key Vault Secret Java客户端库-4.2.0版

相关内容

  • 没有找到相关文章

最新更新