ข้อมูลลับของ Vault ใน Pipeline
ถอดรหัสอย่างปลอดภัยใน CI โดยไม่ทำข้อมูลรั่วไหล
ข้อมูลลับของ Vault ใน Pipeline เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 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 ได้อย่างปลอดภัยแล้ว: จัดเก็บรหัสผ่านเป็นข้อมูลลับ ส่งผ่านไฟล์รหัสผ่าน ไม่ใช้การถามแบบโต้ตอบ และล้างข้อมูลหลังเสร็จงาน 🔒
เรียนรู้ YAML ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ข้อมูลลับของ Vault ใน Pipeline” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ข้อมูลลับของ Vault ใน Pipeline” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ข้อมูลลับของ Vault ใน Pipeline”
ถอดรหัสอย่างปลอดภัยใน CI โดยไม่ทำข้อมูลรั่วไหล คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ข้อมูลลับของ Vault ใน Pipeline” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม
ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ansible-lint ในฐานะด่านตรวจคุณภาพ
- เรียกใช้ Playbook ใน GitHub Actions
- ข้อมูลลับของ Vault ใน Pipeline
- การนำออกใช้แบบมีด่านอนุมัติและโหมดตรวจสอบ