Pal*_*lBo 6 azure docker azure-devops azure-pipelines
我在 Azure Devops 中有一个管道,用于构建一些图像并将其推送到 DockerHub。这些映像被推送到生产和开发环境,但也可用于拉取本地开发。对于 Azure 中生产和开发中的机密,我们仅使用密钥库和变量组。但是,我们还没有找到在本地工作时注入机密的良好解决方案。
例如,在 appsettings.json 中,我们有一个 ClientSecret 参数,用于针对 Azure AD 进行身份验证。我们如何在发布管道期间将此参数插入到 appsettings.json 中,并且以后不让其他人看到它?
一些建议包括在管道中使用文件转换,但这并不是最佳选择,因为我们实际上不想更改任何文件。另一个建议是在管道中使用 --build-arg ,但这些参数在docker history
.
那么如何将秘密注入到 Docker 镜像中的 appsettings.json 中,并且这个秘密最好在任何地方都不可见呢?
正如您所提到的,使用文件转换和变量替换是一种配置较少且快速的方法。
此外,您还可以选择使用Azure Key Vault。
Azure Key Vault 可帮助团队在集中存储中安全地存储和管理敏感信息,例如密钥、密码、证书等,这些信息由行业标准算法、密钥长度甚至硬件安全模块进行保护。这可以防止通过源代码暴露信息,这是许多开发人员常犯的错误。许多开发人员在源代码中留下数据库连接字符串、密码、私钥等敏感信息,这些信息一旦被恶意用户获取,可能会导致不良后果。
访问密钥保管库需要适当的身份验证和授权,通过 RBAC,团队可以更精细地控制谁对敏感数据拥有哪些权限。
至于如何在Azure DevOps中使用Azure Key Vault,您可以参考以下博客:
如何将 docker image Secret 与 Azure Key Vault 一起使用,您可以查看此链接:Publishing a Single Image Docker Container with Secrets from VS2017 and Running it on Azure
更多方法供您参考:Azure 中处理应用程序机密的 7 种方法
归档时间: |
|
查看次数: |
3851 次 |
最近记录: |