การจัดการข้อมูลลับด้วย GitHub
เจาะลึกการจัดเก็บและเข้าถึงข้อมูลรับรองที่ละเอียดอ่อนอย่างปลอดภัยด้วย GitHub Secrets และ OpenID Connect (OIDC)
การจัดการข้อมูลลับด้วย GitHub เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดการจัดการข้อมูลลับอย่างปลอดภัยจึงสำคัญ
ในโครงการซอฟต์แวร์ใด ๆ คุณมักจำเป็นต้องใช้ข้อมูลสำคัญ เช่น คีย์ API ข้อมูลรับรองฐานข้อมูล หรือโทเค็นการเข้าถึง การจัดเก็บข้อมูลเหล่านี้ไว้โดยตรงในโค้ดหรือที่เก็บโค้ดของคุณถือเป็นความเสี่ยงด้านความปลอดภัยอย่างมาก
การจัดการข้อมูลลับคือแนวปฏิบัติในการจัดเก็บและจัดการข้อมูลสำคัญเหล่านี้อย่างปลอดภัย เพื่อให้มั่นใจว่าเฉพาะระบบและผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่เข้าถึงข้อมูลได้ และป้องกันการเปิดเผยโดยไม่ได้รับอนุญาต
ข้อมูลลับของ GitHub คืออะไร
GitHub มีวิธีที่ปลอดภัยสำหรับจัดเก็บข้อมูลสำคัญที่เรียกว่า ข้อมูลลับของ GitHub ซึ่งเป็นตัวแปรสภาพแวดล้อมที่เข้ารหัสและคุณสามารถใช้ในเวิร์กโฟลว์การทำงานของ GitHub ได้
- โดยค่าเริ่มต้น ข้อมูลเหล่านี้จะไม่ถูกเขียนลงในบันทึก
- หลังจากสร้างแล้ว ข้อมูลเหล่านี้จะไม่แสดงในส่วนติดต่อผู้ใช้
- มีเพียงเวิร์กโฟลว์ที่เลือกไว้เท่านั้นที่เข้าถึงข้อมูลเหล่านี้ได้
วิธีนี้ช่วยป้องกันไม่ให้ข้อมูลรับรองของคุณถูกเปิดเผยโดยไม่ได้ตั้งใจ
ตั้งค่าข้อมูลลับของที่เก็บโค้ด
คุณสามารถกำหนดข้อมูลลับได้ในหลายระดับ ได้แก่ ที่เก็บโค้ด สภาพแวดล้อม หรือองค์กร โดยทั่วไปคุณจะเริ่มจากข้อมูลลับของที่เก็บโค้ด
วิธีสร้างข้อมูลลับ:
- ไปที่แท็บการตั้งค่าของที่เก็บโค้ด
- ไปที่ข้อมูลลับและตัวแปร > การทำงาน
- คลิกข้อมูลลับใหม่ของที่เก็บโค้ด
ตั้งชื่อที่ไม่ซ้ำกันให้ข้อมูลลับ เช่น API_KEY แล้ววางค่าข้อมูลลับของคุณ
เข้าถึงข้อมูลลับในเวิร์กโฟลว์
เมื่อกำหนดข้อมูลลับแล้ว คุณสามารถใช้ข้อมูลลับนั้นในไฟล์ YAML ของเวิร์กโฟลว์ได้โดยตรง การทำงานของ GitHub จะฉีดข้อมูลลับเป็นตัวแปรสภาพแวดล้อมในงานของคุณโดยอัตโนมัติ
คุณเข้าถึงข้อมูลลับได้โดยใช้บริบท ${{ secrets.SECRET_NAME }} สคริปต์นี้จำลองขั้นตอนที่ใช้ข้อมูลลับดังกล่าว หากต้องการเรียกใช้ ให้สมมติว่า MY_API_KEY ถูกตั้งเป็นตัวแปรสภาพแวดล้อมโดยการทำงานของ GitHub
#!/bin/bash
# This script simulates a workflow step
# where a secret is passed as an environment variable.
echo "Attempting to use an API key..."
# In a real GitHub Action, MY_API_KEY would be
# set by ${{ secrets.MY_API_KEY }} in the workflow YAML.
if [ -z "$MY_API_KEY" ]; then
echo "Error: MY_API_KEY is not set!"
echo "Please define it as a secret in your workflow."
else
echo "Successfully accessed API key (partially shown): ${MY_API_KEY:0:5}..."
fiขอบเขตข้อมูลลับที่กว้างขึ้น
นอกเหนือจากข้อมูลลับของที่เก็บโค้ดแล้ว GitHub ยังมีขอบเขตที่ทรงพลังอีกสองแบบ:
- ข้อมูลลับขององค์กร: ใช้ได้กับที่เก็บโค้ดหลายแห่งภายในองค์กร เหมาะสำหรับข้อมูลลับที่ใช้ร่วมกันในหลายโครงการ เช่น โทเค็นการนำไปใช้งานทั่วทั้งบริษัท
- ข้อมูลลับของสภาพแวดล้อม: เชื่อมโยงกับสภาพแวดล้อมการนำไปใช้งานที่เฉพาะเจาะจง เช่น
stagingและproductionโดยอาจมีกฎการป้องกัน เช่น ต้องได้รับการอนุมัติด้วยตนเองก่อนนำไปใช้งาน
ใช้ขอบเขตที่เล็กที่สุดเท่าที่จำเป็นเสมอเพื่อความปลอดภัยสูงสุด
การเชื่อมต่อ OpenID (OIDC) คืออะไร
การเชื่อมต่อ OpenID (OIDC) คือชั้นการยืนยันตัวตนที่สร้างขึ้นบน OAuth 2.0 เป็นมาตรฐานที่ช่วยให้ไคลเอนต์ตรวจสอบตัวตนของผู้ใช้ปลายทางได้ โดยอาศัยการยืนยันตัวตนที่ดำเนินการโดยเซิร์ฟเวอร์อนุญาต
ใน CI/CD นั้น OIDC ช่วยให้เวิร์กโฟลว์ของคุณยืนยันตัวตนกับผู้ให้บริการคลาวด์ เช่น AWS, แอซัวร์ และ GCP ได้อย่างปลอดภัย โดยไม่ต้องจัดเก็บข้อมูลรับรองที่มีอายุการใช้งานยาวนาน เช่น คีย์ API ไว้เป็นข้อมูลลับของ GitHub
OIDC ทำงานร่วมกับการทำงานอย่างไร
การทำงานของ GitHub สามารถทำหน้าที่เป็นผู้ให้บริการ OIDC ได้ เมื่อเวิร์กโฟลว์ทำงาน GitHub จะสร้างโทเค็น OIDC ที่ไม่ซ้ำกันและมีอายุสั้นสำหรับงานนั้นโดยเฉพาะ
โทเค็นนี้มีข้ออ้างสิทธิ์ที่ตรวจสอบได้เกี่ยวกับเวิร์กโฟลว์ เช่น ที่เก็บโค้ด สาขา และ ID ของงาน จากนั้นผู้ให้บริการคลาวด์สามารถกำหนดค่าให้เชื่อถือโทเค็นที่ออกโดย GitHub และมอบสิทธิ์การเข้าถึงชั่วคราวตามข้ออ้างสิทธิ์เหล่านี้
ประโยชน์สำคัญของ OIDC
การใช้ OIDC ร่วมกับการทำงานของ GitHub มีข้อได้เปรียบด้านความปลอดภัยที่สำคัญ:
- ไม่มีข้อมูลรับรองที่มีอายุการใช้งานยาวนาน: คุณไม่ต้องจัดเก็บคีย์ API แบบคงที่ของคลาวด์ไว้ในข้อมูลลับของ GitHub
- ลดความเสี่ยง: โทเค็นที่มีอายุสั้นช่วยลดผลกระทบหากโทเค็นถูกบุกรุก
- การเข้าถึงแบบละเอียด: สามารถจับคู่บทบาทของคลาวด์กับเงื่อนไขเฉพาะของเวิร์กโฟลว์ได้ เช่น อนุญาตให้นำไปใช้งานจากสาขา
mainเท่านั้น - การตรวจสอบ: ติดตามได้ง่ายขึ้นว่าใครทำอะไร เพราะตัวตนเชื่อมโยงกับการทำงานของเวิร์กโฟลว์
ผสานรวม OIDC กับคลาวด์
หากต้องการใช้ OIDC คุณต้องกำหนดค่าผู้ให้บริการคลาวด์ เช่น AWS IAM, แอซัวร์ AD และ GCP IAM ให้เชื่อถือผู้ออก OIDC ของ GitHub
โดยทั่วไปจะประกอบด้วยขั้นตอนต่อไปนี้:
- ตั้งค่าผู้ให้บริการข้อมูลระบุตัวตน (IdP) ในบัญชีคลาวด์ของคุณ
- กำหนดบทบาท/นโยบายที่มอบสิทธิ์เฉพาะ
- เพิ่ม "นโยบายความน่าเชื่อถือ" ให้กับบทบาท เพื่ออนุญาตให้โทเค็น OIDC ของ GitHub ใช้บทบาทนั้น โดยมักมีเงื่อนไขตามข้ออ้างสิทธิ์ของโทเค็น เช่น อนุญาตเฉพาะจากที่เก็บโค้ดแห่งใดแห่งหนึ่ง
จากนั้นเวิร์กโฟลว์จะขอโทเค็นและใช้โทเค็นดังกล่าวเพื่อยืนยันตัวตน
ตรวจสอบอย่างรวดเร็ว: การเข้าถึงอย่างปลอดภัย
คุณได้เรียนรู้เกี่ยวกับข้อมูลลับของ GitHub สำหรับจัดเก็บข้อมูลสำคัญ และการเชื่อมต่อ OpenID สำหรับการยืนยันตัวตนกับคลาวด์โดยไม่ใช้ข้อมูลรับรองแล้ว
ข้อความใดต่อไปนี้เกี่ยวกับการจัดการข้อมูลลับของการทำงาน GitHub เป็นจริง TRUE
สรุป: รักษาข้อมูลรับรองของคุณให้ปลอดภัย
ทำได้ดีมาก คุณได้เรียนรู้วิธีจัดการข้อมูลสำคัญในไปป์ไลน์ CI/CD ของคุณอย่างปลอดภัยแล้ว
- ข้อมูลลับของ GitHub ให้พื้นที่จัดเก็บที่เข้ารหัสสำหรับคีย์ API และโทเค็นภายในที่เก็บโค้ด องค์กร หรือสภาพแวดล้อมที่ระบุ
- การเชื่อมต่อ OpenID (OIDC) มอบวิธีที่ปลอดภัยยิ่งขึ้นในการยืนยันตัวตนกับผู้ให้บริการคลาวด์ โดยใช้โทเค็นที่มีอายุสั้นและตรวจสอบได้แทนข้อมูลรับรองแบบคงที่
แนวทางปฏิบัติเหล่านี้มีความสำคัญอย่างยิ่งต่อการสร้างไปป์ไลน์ DevOps ที่แข็งแกร่งและปลอดภัย
คำถามที่พบบ่อย
บทเรียน “การจัดการข้อมูลลับด้วย GitHub” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการข้อมูลลับด้วย GitHub” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการข้อมูลลับด้วย GitHub”
เจาะลึกการจัดเก็บและเข้าถึงข้อมูลรับรองที่ละเอียดอ่อนอย่างปลอดภัยด้วย GitHub Secrets และ OpenID Connect (OIDC) คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการข้อมูลลับด้วย GitHub” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยใน CI/CD
- การจัดการข้อมูลลับด้วย GitHub
- การทดสอบความปลอดภัยแอปพลิเคชันแบบคงที่ (SAST)
- ความปลอดภัยของทรัพยากรพึ่งพาและห่วงโซ่อุปทาน (SCA)