Skip to main content
Cloud

Managing Secrets Securely in Kubernetes

Learn how to securely manage Secrets and ConfigMaps in Kubernetes with External Secrets Operator

SmileX

SmileX

Founder & CEO

1 min read
Managing Secrets Securely in Kubernetes

ปัญหาของ Kubernetes Secrets แบบ Default

Kubernetes Secrets แบบ default จะเก็บข้อมูลเป็น base64-encoded ซึ่งไม่ใช่การเข้ารหัสที่แท้จริง

Terminal window
# Secrets แบบ default สามารถถอดรหัสได้ง่าย
kubectl get secret my-secret -o jsonpath='{.data.password}' | base64 -d

การใช้ External Secrets Operator

การติดตั้ง

Terminal window
helm repo add external-secrets https://charts.external-secrets.io
helm install external-secrets external-secrets/external-secrets

การเชื่อมต่อกับ AWS Secrets Manager

apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: aws-secretsmanager
spec:
provider:
aws:
service: SecretsManager
region: ap-southeast-1

การสร้าง ExternalSecret

apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: database-credentials
spec:
refreshInterval: 1h
secretStoreRef:
name: aws-secretsmanager
kind: SecretStore
target:
name: db-credentials
creationPolicy: Owner
data:
- secretKey: username
remoteRef:
key: prod/database
property: username
- secretKey: password
remoteRef:
key: prod/database
property: password

Best Practices

1. ใช้ RBAC อย่างเข้มงวด

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
resourceNames: ["specific-secret"]
verbs: ["get"]

2. เปิดใช้ Encryption at Rest

encryption-config.yaml
apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
- resources:
- secrets
providers:
- aescbc:
keys:
- name: key1
secret: <BASE64_ENCODED_SECRET>
- identity: {}

บทสรุป

การจัดการ Secrets อย่างปลอดภัยเป็นสิ่งสำคัญในการดูแล Kubernetes Cluster การใช้ External Secrets Operator ร่วมกับ Cloud Provider Secrets Manager จะช่วยเพิ่มความปลอดภัยได้อย่างมาก

Share:
SmileX

About the Author

SmileX

Founder & CEO

Founder of RACKSYNC with 14+ years of experience in IoT, Cloud Infrastructure, and Smart Home solutions.