ข้ามไปยังเนื้อหาหลัก
Cloud

จัดการ Secrets ใน Kubernetes อย่างปลอดภัย

เรียนรู้วิธีจัดการ Secrets และ ConfigMaps ใน Kubernetes อย่างปลอดภัยด้วย External Secrets Operator

SmileX

SmileX

ผู้ก่อตั้งและประธานเจ้าหน้าที่บริหาร

1 นาที
จัดการ Secrets ใน 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 จะช่วยเพิ่มความปลอดภัยได้อย่างมาก

แชร์:
SmileX

เกี่ยวกับผู้เขียน

SmileX

ผู้ก่อตั้งและประธานเจ้าหน้าที่บริหาร

ผู้ก่อตั้ง RACKSYNC ด้วยประสบการณ์กว่า 14 ปีในด้าน IoT, Cloud Infrastructure และ Smart Home