如何使用Azure Service Operators创建和管理Azure Key Vault Secrets
Azure Service Operators 管理 Key Vault Secrets 操作指引
注:你提到的
KeyVaultKey实际是ASO中用来管理Key Vault对称/非对称密钥的资源类型,证书对应的资源为KeyVaultCertificate,你需要的机密(Secret)对应的资源类型为KeyVaultSecret,以下是操作步骤:
前置要求
- 已在Kubernetes集群中部署ASO v2正式版本,且已完成Azure订阅关联与权限授权
- 已创建好目标Key Vault资源(可通过ASO或者Azure门户等方式创建),且已为ASO使用的托管身份配置Key Vault Secrets管理权限:包含
secrets/get、secrets/list、secrets/set、secrets/delete权限
创建Secret步骤
1. 编写资源YAML配置
基础配置示例(直接写入明文值,适合测试场景):
apiVersion: keyvault.azure.com/v1api20230701 kind: KeyVaultSecret metadata: name: demo-secret namespace: default spec: owner: name: <你的Key Vault ASO资源名称> properties: value: "your-secret-content-here" contentType: "text/plain" # 可选配置:设置密钥过期时间 attributes: expires: "2025-12-31T23:59:59Z"
生产环境推荐引用Kubernetes本地Secret的敏感值,避免明文泄露:
apiVersion: keyvault.azure.com/v1api20230701 kind: KeyVaultSecret metadata: name: demo-secret namespace: default spec: owner: name: <你的Key Vault ASO资源名称> properties: valueFrom: secretKeyRef: name: <本地K8s Secret资源名> key: <本地Secret中存储机密值的键名> contentType: "text/plain"
2. 部署资源到集群
执行命令:kubectl apply -f <你的配置文件名>.yaml
3. 验证同步结果
执行以下命令查看资源状态,当READY列显示为True时,说明机密已经成功同步到Azure Key Vault:kubectl get keyvaultsecrets.keyvault.azure.com demo-secret -n default
常用运维操作
- 更新机密:直接修改YAML中的值或者关联的本地K8s Secret值,重新
apply即可,ASO会自动在Key Vault中生成新的机密版本 - 删除机密:执行
kubectl delete keyvaultsecrets.keyvault.azure.com <机密资源名> -n <命名空间>,默认会同步删除Azure端的机密;如果需要保留云端资源,删除前先给ASO资源添加注解:serviceoperator.azure.com/reconcile-policy: detach-on-delete即可
内容的提问来源于stack exchange,提问作者Aruldeepan Anbumani
相关产品推荐
相关产品推荐

