0Pricing
DevOps Bootcamp · บทเรียน

Secrets สำหรับข้อมูลละเอียดอ่อน

จัดเก็บและจัดการข้อมูลละเอียดอ่อน เช่น รหัสผ่านและคีย์ API อย่างปลอดภัยโดยใช้ Secrets

Secrets สำหรับข้อมูลละเอียดอ่อน เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

การปกป้องข้อมูลสำคัญ

เมื่อพัฒนาแอปพลิเคชัน คุณมักต้องจัดการกับข้อมูลสำคัญ เช่น รหัสผ่านฐานข้อมูล คีย์ API หรือใบรับรองส่วนตัว

การจัดเก็บข้อมูลเหล่านี้ไว้โดยตรงในโค้ดแอปพลิเคชันหรือไฟล์การกำหนดค่าเป็นความเสี่ยงด้านความปลอดภัยอย่างมาก! อาจทำให้เกิดการรั่วไหลของข้อมูลและเปิดเผยระบบของคุณได้

แนะนำ Kubernetes Secrets

ข้อมูลลับของ Kubernetes คือออบเจ็กต์ที่ออกแบบมาเพื่อจัดเก็บข้อมูลสำคัญอย่างปลอดภัยภายในคลัสเตอร์ของคุณ

สิ่งเหล่านี้ช่วยแยกข้อมูลสำคัญออกจากคำจำกัดความของ Pod และโค้ดแอปพลิเคชัน ทำให้การติดตั้งใช้งานปลอดภัยและจัดการได้ง่ายขึ้น

  • แยกออกจากกัน: เก็บข้อมูลสำคัญไว้นอกอิมเมจคอนเทนเนอร์และ YAML ของ Pod
  • เข้าถึงได้: Pod สามารถนำข้อมูลไปใช้เป็นตัวแปรสภาพแวดล้อมหรือไฟล์ที่เมานต์ได้

Secrets เทียบกับ ConfigMaps

คุณอาจจำ ConfigMaps จากบทเรียนก่อนหน้านี้ได้ ซึ่งใช้สำหรับข้อมูลการกำหนดค่าที่ไม่สำคัญ

Secrets มีลักษณะคล้ายกัน แต่ใช้สำหรับข้อมูลสำคัญโดยเฉพาะ ทั้งสองอย่างจัดเก็บคู่คีย์-ค่า แต่ Secrets ใช้จัดการกับข้อมูลที่มีความละเอียดอ่อน

  • ConfigMaps: ใช้สำหรับการกำหนดค่าทั่วไปที่ไม่สำคัญ (เช่น ระดับการบันทึกข้อมูลและปลายทาง API)
  • Secrets: ใช้สำหรับข้อมูลสำคัญ (เช่น รหัสผ่าน โทเค็น และคีย์ส่วนตัว)

โปรดจำไว้ว่า Secrets ถูกเข้ารหัสด้วย base64 แต่ไม่ได้เข้ารหัสเพื่อความปลอดภัยมาให้โดยค่าเริ่มต้น!

สร้าง Secret จากค่าตามตัวอักษร

วิธีที่ง่ายที่สุดในการสร้าง Secret คือสร้างจากค่าตามตัวอักษรโดยใช้ kubectl create secret generic

วิธีนี้เหมาะสำหรับข้อมูลสำคัญชิ้นเล็ก ๆ เพียงรายการเดียว เช่น รหัสผ่านแบบง่าย

kubectl create secret generic my-db-secret \
  --from-literal=username=admin \
  --from-literal=password=SuperSecretP@ssw0rd!

สร้าง Secret จากไฟล์

สำหรับข้อมูลสำคัญขนาดใหญ่หรือมีหลายบรรทัด (เช่น คีย์ส่วนตัวหรือไฟล์การกำหนดค่าฉบับเต็ม) ควรสร้าง Secret จากไฟล์

ขั้นแรก ให้สร้างไฟล์ไว้ในเครื่อง จากนั้นอ้างอิงไฟล์เหล่านั้น Kubernetes จะอ่านเนื้อหาในไฟล์และจัดเก็บไว้

# Create local files first
echo "my-api-key-12345" > api-key.txt
echo "my-token-abcde" > auth-token.txt

# Create the Secret
kubectl create secret generic app-credentials \
  --from-file=api-key.txt \
  --from-file=auth-token.txt

ใช้ Secrets เป็นตัวแปรสภาพแวดล้อม

Pod สามารถนำข้อมูลจาก Secret ไปใช้ได้โดยฉีดข้อมูลเข้าไปในตัวแปรสภาพแวดล้อมโดยตรง วิธีนี้ใช้กันทั่วไปสำหรับคู่คีย์-ค่าแบบง่าย

คุณสามารถอ้างอิงคีย์แต่ละรายการจาก Secret หรืออ้างอิงทั้งหมดโดยใช้ envFrom ได้

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-env
spec:
  containers:
  - name: my-app
    image: nginx:latest
    env:
    - name: DB_USERNAME
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: username
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: password

ใช้ Secrets เป็นไฟล์ที่เมานต์

สำหรับไฟล์สำคัญ (เช่น ใบรับรองและคีย์ส่วนตัว) หรือเมื่อแอปพลิเคชันคาดว่าจะอ่านการกำหนดค่าจากเส้นทางไฟล์เฉพาะ คุณสามารถเมานต์ Secrets เป็นไฟล์ภายใน Pod ได้

คีย์แต่ละรายการใน Secret จะกลายเป็นไฟล์ในไดเรกทอรีที่เมานต์ โดยมีค่าเป็นเนื้อหาของไฟล์

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-vol
spec:
  containers:
  - name: my-app
    image: nginx:latest
    volumeMounts:
    - name: app-secret-volume
      mountPath: "/etc/secrets"
      readOnly: true
  volumes:
  - name: app-secret-volume
    secret:
      secretName: app-credentials

การรักษาความปลอดภัยให้ Secrets

แม้ Secrets จะช่วยป้องกันข้อมูลจากการตรวจดูแบบทั่วไป แต่ก็ไม่ใช่คำตอบสำหรับทุกปัญหา โปรดจำประเด็นต่อไปนี้:

  • การเข้ารหัสด้วย Base64: Secrets ถูกเข้ารหัสด้วย base64 แต่ไม่ได้เข้ารหัสเพื่อความปลอดภัย ใครก็ตามที่เข้าถึง Secret ได้ก็สามารถถอดรหัสได้
  • RBAC: ใช้การควบคุมการเข้าถึงตามบทบาท (RBAC) เพื่อจำกัดผู้ที่สามารถอ่าน สร้าง หรือแก้ไข Secrets
  • การเข้ารหัสขณะจัดเก็บ: เพื่อความปลอดภัยอย่างแท้จริง ให้เปิดใช้การเข้ารหัสขณะจัดเก็บสำหรับข้อมูล etcd (ที่จัดเก็บเบื้องหลังของ Kubernetes) ผู้ให้บริการคลาวด์มักมีฟีเจอร์นี้ให้

การอัปเดต Secrets

หากข้อมูลสำคัญของคุณเปลี่ยนแปลง คุณจะต้องอัปเดต Secret การเรียกใช้ kubectl create secret อีกครั้งพร้อมค่าใหม่จะอัปเดต Secret หรือใช้ kubectl apply -f กับ YAML ที่อัปเดตแล้วก็ได้

อย่างไรก็ตาม Pod ที่กำลังทำงานและใช้ Secret จะ< b>ไม่รับการเปลี่ยนแปลงโดยอัตโนมัติ หากต้องการให้การเปลี่ยนแปลงมีผล โดยทั่วไปคุณต้องเริ่มต้นหรือปรับใช้ Pod ที่ใช้ Secret อีกครั้ง

ตรวจสอบอย่างรวดเร็ว: Secrets

ลองจินตนาการว่าคุณมีคีย์ API ส่วนตัวที่แอปพลิเคชันต้องใช้เพื่อเข้าถึงบริการ วิธีใดปลอดภัยและเหมาะสมที่สุดสำหรับการจัดเก็บและส่งคีย์นี้ให้กับ Pod ของ Kubernetes

สรุป: Secrets สำหรับข้อมูลสำคัญ

ทำได้ดีมาก! คุณได้เรียนรู้วิธีจัดการข้อมูลสำคัญใน Kubernetes แล้ว!

  • Secrets ใช้จัดเก็บข้อมูลสำคัญ เช่น รหัสผ่านและคีย์ API
  • ข้อมูลเหล่านี้ถูกเข้ารหัสด้วย base64 และสามารถนำไปใช้เป็นตัวแปรสภาพแวดล้อมหรือไฟล์ที่เมานต์ได้
  • ใช้ RBAC เสมอ และพิจารณาใช้การเข้ารหัสขณะจัดเก็บเพื่อความปลอดภัยสูงสุด
  • โปรดจำไว้ว่า Pod ต้องเริ่มต้นใหม่เพื่อรับการอัปเดตของ Secret

คำถามที่พบบ่อย

บทเรียน “Secrets สำหรับข้อมูลละเอียดอ่อน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Secrets สำหรับข้อมูลละเอียดอ่อน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Secrets สำหรับข้อมูลละเอียดอ่อน”

จัดเก็บและจัดการข้อมูลละเอียดอ่อน เช่น รหัสผ่านและคีย์ API อย่างปลอดภัยโดยใช้ Secrets คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “Secrets สำหรับข้อมูลละเอียดอ่อน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ConfigMaps สำหรับการกำหนดค่า
  2. Secrets สำหรับข้อมูลละเอียดอ่อน
  3. โวลุมถาวรและคำขอใช้โวลุม
  4. StorageClasses และการจัดสรรแบบพลวัต
← กลับไปที่ DevOps Bootcamp