ตัวแปรสภาพแวดล้อมและข้อมูลลับ
เรียนรู้การจัดการข้อมูลละเอียดอ่อนและการกำหนดค่าเฉพาะสภาพแวดล้อมอย่างปลอดภัยภายใน GitHub Actions
ตัวแปรสภาพแวดล้อมและข้อมูลลับ เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
พื้นฐานตัวแปรสภาพแวดล้อมและข้อมูลลับ
ยินดีต้อนรับสู่บทเรียนที่ 3! ในการผสานรวมและการนำส่งอย่างต่อเนื่อง คุณมักจำเป็นต้องกำหนดค่ากระบวนการทำงานด้วยค่าแบบไดนามิกหรือข้อมูลสำคัญ
นี่คือจุดที่ตัวแปรสภาพแวดล้อมและข้อมูลลับมีความสำคัญอย่างยิ่ง ทั้งสองอย่างช่วยให้กระบวนการทำงานปรับตัวเข้ากับสถานการณ์ต่าง ๆ และจัดการข้อมูลสำคัญได้อย่างปลอดภัย
เหตุผลที่ควรใช้ในการผสานรวมและการนำส่งอย่างต่อเนื่อง
ลองจินตนาการว่าคุณต้องนำส่งไปยังสภาพแวดล้อมต่าง ๆ เช่น การพัฒนา สภาพแวดล้อมเตรียมใช้งาน และระบบจริง หรือต้องเชื่อมต่อกับบริการภายนอกด้วยคีย์สำหรับส่วนเชื่อมต่อโปรแกรมประยุกต์
- ความยืดหยุ่น: ตัวแปรสภาพแวดล้อมช่วยให้คุณเปลี่ยนพฤติกรรมได้โดยไม่ต้องแก้ไขไฟล์กระบวนการทำงาน
- ความปลอดภัย: ข้อมูลลับช่วยปกป้องข้อมูลสำคัญ เช่น รหัสผ่านและโทเค็นสำหรับส่วนเชื่อมต่อโปรแกรมประยุกต์ไม่ให้ถูกเปิดเผย
- นำกลับมาใช้ใหม่ได้: กำหนดการตั้งค่าเพียงครั้งเดียว แล้วนำไปใช้กับงานหรือขั้นตอนหลายรายการ
ตัวแปรสภาพแวดล้อมในการทำงานอัตโนมัติของ GitHub
ตัวแปรสภาพแวดล้อมคือค่าที่มีชื่อและเปลี่ยนแปลงได้ ซึ่งอาจส่งผลต่อพฤติกรรมของกระบวนการที่กำลังทำงาน ในระบบการทำงานอัตโนมัติของ GitHub ตัวแปรเหล่านี้มีบทบาทสำคัญในการทำให้กระบวนการทำงานของคุณกำหนดค่าได้
คุณสามารถกำหนดตัวแปรสภาพแวดล้อมของคุณเอง หรือใช้ตัวแปรที่ระบบการทำงานอัตโนมัติของ GitHub มีให้จำนวนมาก
ตัวแปรสภาพแวดล้อมในตัวของ GitHub
ระบบการทำงานอัตโนมัติของ GitHub มีตัวแปรสภาพแวดล้อมที่กำหนดไว้ล่วงหน้าและมีประโยชน์มากมายให้โดยอัตโนมัติ ตัวแปรเหล่านี้ให้ข้อมูลบริบทเกี่ยวกับคลังโครงการ การทำงานของกระบวนการ และข้อมูลอื่น ๆ
ตัวอย่างเช่น GITHUB_SHA คือค่าแฮชของการส่งโค้ดเข้าสู่คลัง และ GITHUB_REF คือชื่อสาขาหรือแท็กที่ทำให้กระบวนการทำงานเริ่มต้น
คุณเข้าถึงตัวแปรเหล่านี้ได้โดยใช้วัตถุบริบท github ในนิพจน์ หรือเข้าถึงโดยตรงในรูปตัวแปรเชลล์ หากแมปตัวแปรเหล่านั้นกับ env
name: Print Context Variables
on: [push]
jobs:
display_info:
runs-on: ubuntu-latest
steps:
- name: Show commit SHA
run: echo "Commit SHA: ${{ github.sha }}"
- name: Show branch/tag ref
run: echo "Ref: ${{ github.ref }}"ตัวแปรสภาพแวดล้อมที่กำหนดเอง: ขอบเขตของกระบวนการทำงาน
คุณสามารถกำหนดตัวแปรสภาพแวดล้อมของคุณเองได้ในระดับกระบวนการทำงานหรืองาน ตัวแปรที่กำหนดในระดับกระบวนการทำงานจะพร้อมใช้งานสำหรับงานและขั้นตอนทั้งหมดภายในกระบวนการทำงานนั้น
ใช้คีย์เวิร์ด env ในระดับบนสุดของไฟล์กระบวนการทำงานเพื่อกำหนดตัวแปรเหล่านี้
name: Workflow-level Env Var
on: [push]
env:
GREETING_MESSAGE: "Hello from Workflow!"
jobs:
my_job:
runs-on: ubuntu-latest
steps:
- name: Access workflow variable
run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
- name: Access workflow variable (shell)
env:
MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
run: echo "$MY_VAR_IN_SHELL" # Access as shell variableตัวแปรสภาพแวดล้อมที่กำหนดเอง: ขอบเขตของงานและขั้นตอน
สำหรับความต้องการที่เฉพาะเจาะจงยิ่งขึ้น ให้กำหนดตัวแปรสภาพแวดล้อมในระดับงานหรือขั้นตอน ตัวแปรที่กำหนดสำหรับงานจะพร้อมใช้งานในทุกขั้นตอนของงานนั้น ส่วนตัวแปรระดับขั้นตอนจะพร้อมใช้งานเฉพาะขั้นตอนนั้น
วิธีนี้ช่วยให้ควบคุมการตั้งค่าได้อย่างละเอียด
name: Job & Step-level Env Vars
on: [push]
jobs:
my_job:
runs-on: ubuntu-latest
env:
JOB_VAR: "Value for this job"
steps:
- name: Access Job-level variable
run: echo "Job Var: ${{ env.JOB_VAR }}"
- name: Step-specific variable
env:
STEP_VAR: "Value for this step"
run: echo "Step Var: ${{ env.STEP_VAR }}"
- name: Try to access step var in another step
run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be emptyแนะนำข้อมูลลับของ GitHub
ตัวแปรสภาพแวดล้อมเหมาะสำหรับข้อมูลที่ไม่สำคัญต่อความลับ แต่หากเป็นข้อมูลลับ เช่น คีย์สำหรับส่วนเชื่อมต่อโปรแกรมประยุกต์ รหัสผ่านฐานข้อมูล หรือโทเค็นส่วนตัว จะทำอย่างไร
นี่คือจุดที่ข้อมูลลับของ GitHubเข้ามามีบทบาท ข้อมูลลับช่วยให้คุณจัดเก็บข้อมูลสำคัญอย่างปลอดภัยและเข้าถึงข้อมูลดังกล่าวในกระบวนการทำงานได้ โดยไม่เปิดเผยข้อมูลนั้นในโค้ดหรือบันทึกการทำงานของคลังโครงการ
- เข้ารหัส: GitHub จัดเก็บไว้อย่างปลอดภัย
- ปกปิด: ซ่อนข้อมูลจากบันทึกการทำงานโดยอัตโนมัติ
- ควบคุมการเข้าถึง: เปิดให้ใช้ได้เฉพาะกระบวนการทำงานที่ระบุ
การสร้างข้อมูลลับของ GitHub
ข้อมูลลับจะถูกสร้างและจัดการผ่านการตั้งค่าคลังโครงการหรือองค์กรบน GitHub ไม่ใช่โดยตรงในไฟล์กระบวนการทำงาน
- ไปยังการตั้งค่าของคลังโครงการ
- ไปที่ ข้อมูลลับและตัวแปร > การทำงาน
- คลิก ข้อมูลลับใหม่ของคลังโครงการ (หรือข้อมูลลับระดับองค์กรหากต้องการใช้ในขอบเขตที่กว้างขึ้น)
- ระบุชื่อ เช่น
MY_API_KEYแล้ววางค่า
เมื่อบันทึกแล้ว คุณจะไม่สามารถดูค่าของข้อมูลลับนั้นได้อีก จะทำได้เพียงอัปเดตหรือลบข้อมูลลับ
การใช้ข้อมูลลับในกระบวนการทำงาน
หากต้องการใช้ข้อมูลลับ ให้อ้างอิงข้อมูลนั้นด้วยวัตถุบริบท secrets ในกระบวนการทำงาน เช่นเดียวกับการใช้ env สำหรับตัวแปรสภาพแวดล้อม
GitHub จะปกปิดข้อมูลลับจากบันทึกการทำงานโดยอัตโนมัติ โดยแทนที่ค่าของข้อมูลลับด้วย *** เพื่อป้องกันการเปิดเผยโดยไม่ได้ตั้งใจ
name: Use a Secret Demo
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Display a secret (redacted)
run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
# GitHub Actions automatically redacts the value in logs.
- name: Pass secret to an environment variable
env:
API_KEY_ENV: ${{ secrets.MY_API_KEY }}
run: echo "API Key in env: $API_KEY_ENV"แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของข้อมูลลับ
การจัดการข้อมูลลับอย่างปลอดภัยมีความสำคัญอย่างยิ่งต่อความถูกต้องสมบูรณ์ของกระบวนการผสานรวมและการนำส่งอย่างต่อเนื่อง ปฏิบัติตามแนวทางเหล่านี้เสมอ:
- สิทธิ์ขั้นต่ำ: ให้สิทธิ์เข้าถึงข้อมูลลับเฉพาะจุดที่จำเป็นอย่างยิ่งเท่านั้น
- ห้ามฝังค่าตายตัว: อย่าใส่ข้อมูลลับโดยตรงในไฟล์กระบวนการทำงานหรือโค้ดใด ๆ ของคลังโครงการ
- หลีกเลี่ยงการบันทึกข้อมูล: แม้ GitHub จะปกปิดข้อมูลลับ แต่ควรหลีกเลี่ยงคำสั่งแสดงข้อความที่กำหนดเองซึ่งอาจเปิดเผยบางส่วนของข้อมูลลับโดยไม่ได้ตั้งใจ
- เปลี่ยนหมุนเวียนเป็นประจำ: เปลี่ยนข้อมูลลับเป็นระยะเพื่อลดความเสี่ยงที่ข้อมูลจะถูกบุกรุก
- เฉพาะสภาพแวดล้อม: ใช้ข้อมูลลับที่แตกต่างกันสำหรับสภาพแวดล้อมการพัฒนา สภาพแวดล้อมเตรียมใช้งาน และระบบจริง
ตรวจสอบความเข้าใจอย่างรวดเร็ว: ตัวแปรสภาพแวดล้อมเทียบกับข้อมูลลับ
ข้อความใดอธิบายความแตกต่างหรือคุณลักษณะสำคัญของตัวแปรสภาพแวดล้อมและข้อมูลลับใน GitHub Actions ได้อย่างถูกต้อง
ทบทวน: การกำหนดค่าอย่างปลอดภัย
ยอดเยี่ยม! คุณได้เรียนรู้วิธีจัดการการกำหนดค่าในเวิร์กโฟลว์ GitHub Actions เรียบร้อยแล้ว
- ตัวแปรสภาพแวดล้อม ช่วยให้คุณเพิ่มข้อมูลแบบไดนามิกที่ไม่ละเอียดอ่อนลงในการทำงานของเวิร์กโฟลว์ โดยปรับใช้ได้ในระดับเวิร์กโฟลว์ งาน หรือขั้นตอน
- ข้อมูลลับ มีความสำคัญอย่างยิ่งต่อการจัดการข้อมูลละเอียดอ่อน เช่น คีย์ API อย่างปลอดภัย เพื่อให้ข้อมูลเหล่านั้นยังคงถูกเข้ารหัสและไม่ปรากฏในโค้ดสาธารณะของคุณ
- ปฏิบัติตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีเสมอเมื่อทำงานกับข้อมูลลับ เพื่อปกป้องการนำไปใช้งานจริงของคุณจากช่องโหว่
การทำความเข้าใจแนวคิดเหล่านี้ช่วยให้ไปป์ไลน์ CI/CD ของคุณมีทั้งความยืดหยุ่นและความปลอดภัย
คำถามที่พบบ่อย
บทเรียน “ตัวแปรสภาพแวดล้อมและข้อมูลลับ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวแปรสภาพแวดล้อมและข้อมูลลับ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรสภาพแวดล้อมและข้อมูลลับ”
เรียนรู้การจัดการข้อมูลละเอียดอ่อนและการกำหนดค่าเฉพาะสภาพแวดล้อมอย่างปลอดภัยภายใน GitHub Actions คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวแปรสภาพแวดล้อมและข้อมูลลับ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่การนำส่งอย่างต่อเนื่อง
- การนำไปใช้ในสภาพแวดล้อมทดสอบก่อนผลิต
- ตัวแปรสภาพแวดล้อมและข้อมูลลับ
- การนำไปใช้งานจริงด้วยด่านอนุมัติ