我有:
- Azure App Service其中运行着一个 Docker 容器。 Docker 容器内部有一个 Python FastAPI Web 应用程序。
- Azure Key Vault其中包含一些特定于应用程序的 secret (例如用于向侧服务发送请求的公共(public) API 客户端 secret )
我正在尝试为应用程序设置 secret 。
有几个例子表明应用程序直接从 Key Vault 读取 secret (例如 official MS documentation ),但我认为配置不应该是应用程序的责任。 也许, secret 应该设置为 CD 管道的环境变量(如果这是一个坏主意,请纠正我)。否则,应用程序知道有关其运行的基础设施的详细信息,我想这不是最佳实践。
是否有适当的方法向应用程序环境提供 Key Vault secret ?
最佳答案
我尝试在我的环境中重现相同的问题并得到以下结果
我已经创建了应用服务
azure key 保管库提供了一种在应用程序外部存储 key 和 secret 的方法,使用访问策略,我们可以允许应用程序访问 key 保管库中的 key
要在 azure 应用服务中将 keyvault 作为环境变量进行访问,我们必须设置如下所述的策略
在应用服务中 => 身份 => 点击状态为 开启嗯>
转到 keystore 和策略设置,然后单击“添加策略” 访问策略页面设置 key 和 secret 的任何权限
在选择主页面中搜索应用服务名称并选择然后应用服务可以作为环境变量访问
之后,我们必须在应用服务中添加特定的 secret ,并按照以下格式复制其 secret 标识符
@microsoft.keyvault(secretUri={secret url from the keyvault})
添加 secret 后,它将如下所示
通过执行上述步骤,我们可以将 secret 作为环境变量进行访问
关于azure - 将 Azure Key Vault 中的 secret 作为环境变量配置到 Azure 应用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74125280/