容器应用程序 - Key Vault 作为 azure pipeline 中的环境变量

问题描述 投票:0回答:1

我正在尝试从经典发布管道部署容器应用程序。

我需要将环境变量附加到容器应用程序,并且这些环境值必须从 Azure Key Vault 中获取。我已经创建了 azure key Vault 并在发布管道中对其进行了授权。

以下是我在 Ubuntu 发布管道代理作业中的两个任务。

  1. Azure 密钥保管库
  2. Azure 容器应用程序部署

在azure容器应用程序部署的第二个任务中,我传递如下环境变量,

服务器 ID=$(服务器 ID)

此 $(server-id) 是 azure Key Vault 中的秘密名称,该值必须从Vault 中获取。

在管道作业期间,秘密已成功下载,容器应用程序也使用我提到的环境变量进行部署。

此后,如果我进入容器应用程序控制台,在环境变量下我可以清楚地看到 server-id 的变量值。

在下图中,可以清楚地看到容器应用程序环境变量。(出于共享目的,我在图像中手动进行了屏蔽)

我还尝试了其他选项环境变量

1.Server-id=$(@Microsoft.Keyvault(SecureUri=https://test.azure.net/secrets/server-id)) 2. Server-id=secretref:$(@Microsoft.Keyvault(SecureUri=https://test.azure.net/secrets/server-id))

这两个选项都没有按预期工作。

我想使用 azure key Vault 中的环境变量,其中环境值在容器应用程序环境详细信息下不可见。

我在天蓝色的容器应用程序下研究了秘密创建的其他选项,但无法执行此天蓝色的经典发布管道。

azure azure-devops azure-pipelines devops azure-pipelines-release-pipeline
1个回答
0
投票

这是不可能的。环境变量中的所有详细信息始终在门户中可见。为此,您应该使用秘密。并且可以使用 azure cli 设置秘密

az containerapp secret set -n MyContainerapp -g MyResourceGroup --secrets MySecretName1=MySecretValue1 MySecretName2=keyvaultref:https://example.vault.azure.net/secrets/mysecret,identityref:/subscriptions/sub/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentity

请注意秘密使用的格式:

容器应用程序的秘密列表。采用“key=value”或“key=keyvaultref:keyvaulturl,identityref:identity”格式的空格分隔值(其中“key”不能超过 20 个字符)。

© www.soinside.com 2019 - 2024. All rights reserved.