DevOps Bootcamp · บทเรียน

ข้อมูลลับของ Vault ใน Pipeline

ถอดรหัสอย่างปลอดภัยใน CI โดยไม่ทำข้อมูลรั่วไหล

บทเรียน 3 จาก 413 ขั้นตอน

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

ปัญหาข้อมูลลับในไปป์ไลน์

ไฟล์ vault ที่เข้ารหัสไว้ปลอดภัยใน git แต่ตัวรันยังต้องใช้รหัสผ่าน vault เพื่อถอดรหัสขณะเรียกใช้ 🔐

อย่าคอมมิตรหัสผ่าน

สิ่งเดียวที่ต้องเก็บไว้นอกรีโพสitoryคือรหัสผ่าน vault การจัดเก็บไว้ในข้อมูลลับของ CI จะทำให้รหัสผ่านไม่อยู่ในประวัติ

จัดเก็บไว้ในข้อมูลลับของ CI

ใส่รหัสผ่านไว้ในข้อมูลลับของ GitHub เช่น VAULT_PASSWORD ซึ่งจะถูกปิดบังในบันทึกและถูกฉีดเข้าไปเฉพาะขณะเรียกใช้

env:
  VAULT_PASS: ${{ secrets.VAULT_PASSWORD }}

เขียนไฟล์รหัสผ่านชั่วคราว

ในขั้นตอนหนึ่ง ให้เขียนข้อมูลลับลงในไฟล์รหัสผ่านอายุสั้นที่ตัวรันสามารถส่งให้ Ansible ระหว่างทำเพลย์

- run: echo "$VAULT_PASS" > .vault_pass

ถอดรหัสด้วย vault-password-file

ชี้เพลย์ไปยังไฟล์นั้นด้วย --vault-password-file เพื่อให้ Ansible ถอดรหัสเนื้อหาใน vault ได้โดยไม่ต้องแสดงข้อความถาม

ansible-playbook site.yml \
  --vault-password-file .vault_pass

หรือใช้ตัวแปรสภาพแวดล้อม

Ansible ยังอ่าน ANSIBLE_VAULT_PASSWORD_FILE ได้ด้วย คุณจึงกำหนดค่าเพียงครั้งเดียว แทนการส่งแฟล็กในทุกคำสั่ง

export ANSIBLE_VAULT_PASSWORD_FILE=.vault_pass

ไม่ใช้ --ask-vault-pass ใน CI

--ask-vault-pass แบบโต้ตอบจะรอมนุษย์ตอบ จึงทำให้ไปป์ไลน์ค้าง ควรส่งรหัสผ่านจากไฟล์แทนเสมอ

ลบออกให้เรียบร้อยเสมอ

ลบไฟล์ชั่วคราวเมื่อจบงาน ขั้นตอน always จะรับประกันการล้างข้อมูล แม้เพลย์บุ๊กจะล้มเหลวระหว่างทาง

- if: always()
  run: rm -f .vault_pass

ปิดบังแทนการแสดงออก

ระบบ CI จะปิดบังข้อมูลลับที่ลงทะเบียนไว้ในบันทึกโดยอัตโนมัติ แต่ห้ามใช้ echo แสดงรหัสผ่านด้วยตนเอง เพราะผลลัพธ์ที่แสดงเองอาจทำให้การปิดบังดังกล่าวใช้ไม่ได้

ตั้งชื่อ ID ของ vault หลายรายการ

หากมี vault หลายรายการ ให้แต่ละรายการมีID ของ vault เพื่อให้ข้อมูลลับของ production และ staging ถูกถอดรหัสด้วยรหัสผ่านของตนเอง

--vault-id prod@.prod_pass \
--vault-id stage@.stage_pass

เปลี่ยนรหัสผ่านโดยไม่ต้องนำไปใช้ใหม่

การเปลี่ยนข้อมูลลับของ CI จะเปลี่ยนรหัสผ่านสำหรับไปป์ไลน์ทั้งหมดพร้อมกัน โดยไม่ต้องแก้ไขโค้ด

ตรวจสอบสั้น ๆ

ไปป์ไลน์ควรส่งรหัสผ่าน vault อย่างไร

สรุป: ข้อมูลลับยังคงเป็นความลับ

คุณถอดรหัส vault ใน CI ได้อย่างปลอดภัยแล้ว: จัดเก็บรหัสผ่านเป็นข้อมูลลับ ส่งผ่านไฟล์รหัสผ่าน ไม่ใช้การถามแบบโต้ตอบ และล้างข้อมูลหลังเสร็จงาน 🔒

เริ่มต้นได้ฟรี

เรียนรู้ DevOps Bootcamp ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
142
บทเรียน
568

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

บทเรียน “ข้อมูลลับของ Vault ใน Pipeline” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ข้อมูลลับของ Vault ใน Pipeline”

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

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

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

บทเรียน “ข้อมูลลับของ Vault ใน Pipeline” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ansible-lint ในฐานะด่านตรวจคุณภาพ
  2. เรียกใช้ Playbook ใน GitHub Actions
  3. ข้อมูลลับของ Vault ใน Pipeline
  4. การนำออกใช้แบบมีด่านอนุมัติและโหมดตรวจสอบ
← กลับไปที่ DevOps Bootcamp