External Secrets Operator 使用教程
项目介绍
External Secrets Operator 是一个 Kubernetes 操作器,它集成了外部秘密管理系统,如 AWS Secrets Manager、HashiCorp Vault、Google Secrets Manager、Azure Key Vault 等。该操作器从外部 API 读取信息,并自动将这些值注入到 Kubernetes 秘密中。多个个人和组织正在共同努力,基于现有项目创建一个单一的外部秘密解决方案。
项目快速启动
安装 Helm Chart
首先,确保你已经安装了 Helm。然后,添加 External Secrets Operator 的 Helm 仓库并安装 Chart:
helm repo add external-secrets https://charts.external-secrets.io
helm install external-secrets/external-secrets --generate-name
配置 ExternalSecret
创建一个 ExternalSecret
资源来定义如何从外部秘密管理系统中获取秘密:
apiVersion: external-secrets.io/v1alpha1
kind: ExternalSecret
metadata:
name: example
spec:
secretStoreRef:
name: example-store
kind: SecretStore
target:
name: example-secret
data:
- secretKey: secret-key-in-kubernetes
remoteRef:
key: secret-key-in-external-system
验证
使用 kubectl
命令验证秘密是否已成功创建:
kubectl get secret example-secret -o yaml
应用案例和最佳实践
案例一:集成 AWS Secrets Manager
假设你有一个 AWS Secrets Manager 中的秘密,你可以通过以下步骤将其集成到 Kubernetes 中:
- 配置 AWS 凭证。
- 创建一个
SecretStore
资源来定义如何访问 AWS Secrets Manager。 - 创建一个
ExternalSecret
资源来定义如何从 AWS Secrets Manager 中获取秘密。
最佳实践
- 安全传输:确保所有传输都是加密的。
- 最小权限原则:为操作器配置最小权限,以减少潜在的安全风险。
- 定期审计:定期检查和审计秘密的访问和使用情况。
典型生态项目
集成 HashiCorp Vault
External Secrets Operator 也可以与 HashiCorp Vault 集成,提供强大的秘密管理功能。以下是一些典型的生态项目:
- Vault Injector:用于将秘密注入到 Kubernetes 容器中。
- Vault Agent:用于在 Kubernetes 中管理 Vault 的认证和秘密。
集成 Azure Key Vault
External Secrets Operator 还支持与 Azure Key Vault 集成,提供云原生的秘密管理解决方案。以下是一些典型的生态项目:
- Azure Key Vault Provider:用于从 Azure Key Vault 中获取秘密。
- Azure Managed Identities:用于在 Kubernetes 中管理 Azure 身份验证。
通过这些集成,External Secrets Operator 可以提供一个灵活且强大的秘密管理解决方案,适用于各种云和本地环境。