[英]How to create a multy-key Kubernetes secret from an external secret?
我有一個外部秘密存儲 - 帶有秘密密碼的 Azure Key Vault。
我需要創建一個包含多個字段的 Kube.netes 秘密:密碼 - 僅來自 Azure Key Vault,用戶名硬編碼,url 硬編碼,帶有硬編碼注釋和標簽。
像這樣:
apiVersion: v1
kind: Secret
metadata:
name: my-external-secret
labels:
mylable: external
annotations:
myannotation: external
type: Opaque
stringData:
name: credentials
url: https://example.com
username: user
password: <from-Azure-Key-Vault>
如果重要的話,我使用 Azure Kube.netes 服務。
azure Key Vault 與 AKS 集成創建並控制機密,因此您將無法修改它。
我建議將非 KV 秘密移動到它們自己的秘密,然后在您的部署中安裝這兩個秘密。
這可以通過安裝在 Kube.nets 集群中的external-secrets軟件輕松實現。 external-secrets支持許多不同的秘密存儲,包括 Azure Key Vault。 external-secrets有一個模板引擎,可以生成一個包含多個字段、標簽和注釋的秘密。
示例:使用托管標識將外部機密連接到 Key Vault
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: external-secrets-kv
namespace: myspace
spec:
provider:
azurekv:
authType: ManagedIdentity
identityId: "<ManagedIdentityID>"
vaultUrl: "https://<keyvault-name>.vault.azure.net"
現在讓我們創建一個帶有注釋和標簽以及多個字段的模板:
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: template-my-external-secret
namespace: myspace
spec:
refreshInterval: 1h
secretStoreRef:
kind: SecretStore
name: external-secrets-kv
target:
name: my-external-secret
template:
type: Opaque
engineVersion: v2
metadata:
labels:
mylable: external
annotations:
myannotation: external
data:
name: credentials
url: https://example.com
password: '{{ .password }}'
username: '{{ .username }}'
data:
- secretKey: password
remoteRef:
key: azure-kv-password
- secretKey: username
remoteRef:
key: azure-kv-username
然后external-secrets將創建一個真正的秘密,其用戶名和密碼字段的值來自 Azure Key Vault。
apiVersion: v1
kind: Secret
metadata:
name: my-external-secret
namespace: myspace
labels:
mylable: external
annotations:
myannotation: external
type: Opaque
stringData:
name: credentials
url: https://example.com
username: <from-Azure-Key-Vault>
password: <from-Azure-Key-Vault>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.