kubernetes - 使用来自 Azure Keyvault 的证书作为 kubernetes 机密
问题描述
我的 Azure KeyVault 中有一个证书 (pfx) - 我将该证书用作机密(使用 Helm 通过 Azure DevOps 部署)。我遇到的问题是从 KeyVault 中错误地读取了证书(我使用变量组) - 结果是当我的应用程序启动时,我得到一个如下所示的异常:
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
但是,当我手动创建一个秘密(通过使用 powershell 将证书内容读取为 base64)时,一切正常。我做错了什么?
解决方案
目前,Azure Pipelines 变量组集成仅支持映射来自 Azure 密钥保管库的机密。不支持加密密钥和证书。见这里。
作为解决方法,你可以在 azure devops 管道中使用Azure Key Vault 任务。
使用此任务从 Azure Key Vault 实例下载身份验证密钥、存储帐户密钥、数据加密密钥、.PFX 文件和密码等机密。
如果从保管库中提取的值是证书(例如,PFX 文件),则任务变量将包含字符串格式的 PFX 内容。
- task: AzureKeyVault@1
inputs:
azureSubscription:
keyVaultName:
secretsFilter: '*'
在使用此任务之前。应确保在 Azure 服务连接中使用的服务主体至少对保管库具有 Get 和 List 权限。
本教程在管道中使用 Azure Key Vault 中的机密也可能会有所帮助。
推荐阅读
- python - How to check if tuple key contains an element in dictionary
- sql-server - 如何解决连接到 SQL Server 的错误
- kubernetes - 如何在 Kubernetes 中挂载单个非配置文件?
- react-native - 验证 app.json 的问题:无法执行缓存刷新
- c# - Unity的C#中如何通过右键切换显示/不显示
- windows - Clang 8.0.1 总是在 Windows 上创建控制台应用程序
- java - 我相信休眠分离的实体
- scala - 数据集数组上的 Spark 并行化
- xamarin - 无法在 xamarin 表单中为 Google.Cloud.Translation 设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量
- java - 如何更好地随机化 Java 中的方法调用(不重复类似的行)?