
ที่มาภาพ: Unknown Source
วิธีตั้งค่า Snyk เพื่อตรวจสอบช่องโหว่ของ Dependencies อัตโนมัติใน GitHub Actions อย่างปลอดภัย
⚡ สรุป 30 วิ
Snyk เป็นเครื่องมือสแกนช่องโหว่ของ dependencies ที่ทำงานอัตโนมัติบน GitHub Actions ช่วยให้ทีมพัฒนาเห็นและจัดการความเสี่ยงได้ทันที บทความนี้จะอธิบายขั้นตอนตั้งค่า Snyก เพื่อสแกนอัตโนมัติในทุก push หรือ…
ภาพรวม — Overview
Snyk เป็นเครื่องมือสแกนช่องโหว่ของ dependencies ที่ทำงานอัตโนมัติบน GitHub Actions ช่วยให้ทีมพัฒนาเห็นและจัดการความเสี่ยงได้ทันที บทความนี้จะอธิบายขั้นตอนตั้งค่า Snyก เพื่อสแกนอัตโนมัติในทุก push หรือ pull request โดยปลอดภัย
- ทำไมต้องใช้ Snyk: ตรวจจับช่องโหว่รุ่นล่าสุด, มีฐานข้อมูลที่อัปเดตบ่อย, ผสานกับ GitHub อย่างราบรื่น
- ผลลัพธ์ที่คาดหวัง: รายงานความเสี่ยงใน PR, ปิดการทำงานของ workflow หากพบระดับความเสี่ยงสูง
ความต้องการเบื้องต้น — Prerequisites
ก่อนเริ่มเราต้องเตรียมสิ่งต่อไปนี้เพื่อให้ขั้นตอนดำเนินได้โดยไม่มีอุปสรรค
- บัญชี GitHub พร้อม repository ที่ใช้ GitHub Actions
- สิทธิ์ Admin บน repository เพื่อเพิ่ม secret และแก้ workflow file
- สมัครบัญชี Snyk และสร้าง API token
สร้าง Snyk API Token — Generate Snyk Token
Token จะถูกเก็บเป็น secret ใน GitHub เพื่อให้ workflow สามารถเรียกใช้ Snyk ได้อย่างปลอดภัย
- ไปที่หน้า https://app.snyk.io/account/api
- คลิก Create token, ตั้งชื่อเช่น `github-actions-token` แล้วคัดลอกค่าไว้
- กลับไปที่ GitHub repository, เลือก Settings Secrets and variables Actions
- สร้าง secret ใหม่ชื่อ `SNYK_TOKEN` และวางค่าที่คัดลอกมา
**Tip: อย่าแชร์ token นี้ในโค้ดหรือไฟล์ config ใด ๆ; ใช้ secret เท่านั้น
เพิ่ม Workflow ของ Snyk ลงใน GitHub Actions — Add Snyk Workflow
สร้างไฟล์ workflow ใหม่ที่สแกน dependencies ทุกครั้งที่มีการเปลี่ยนแปลง
- สร้างไฟล์ `.github/workflows/snyk.yml` ใน repository
- ใส่โค้ดต่อไปนี้ (ปรับ `node-version` หรือ language ที่ใช้)
```yaml name: Snyk Scan
on: push: branches: [ main ] pull_request: types: [ opened, synchronize ]
jobs: snyk: runs-on: ubuntu-latest steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3 with: node-version: '18'
- name: Install dependencies
run: npm ci
- name: Run Snyk test
env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} run: | npm install -g snyk snyk auth $SNYK_TOKEN snyk test --severity-threshold=high ```
- `--severity-threshold` กำหนดระดับความรุนแรงที่จะทำให้ workflow ล้มเหลว
ปรับการแจ้งเตือนและบล็อกโค้ดที่มีช่องโหว่ — Configure Alerts & Blocking
เพื่อให้ทีมพัฒนาไม่ละเลยผลลัพธ์ เราตั้งค่าให้ PR แสดงสัญลักษณ์สีแดงเมื่อพบความเสี่ยงระดับสูง
- เพิ่มขั้นตอน `snyk monitor` เพื่ออัปโหลดข้อมูลไปยัง Snyk dashboard
```yaml
- name: Monitor project in Snyk
env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} run: snyk monitor ```
- เปิดใช้งาน Snyk Pull Request comments ในหน้า Settings Security & analysis ของ repository เพื่อให้ Snyk แสดงความคิดเห็นใน PR โดยอัตโนมัติ
**Tip: หากต้องการบล็อก merge อย่างจริงจัง ให้เปิด “Require status checks to pass before merging” และเลือก `Snyk Scan` เป็นหนึ่งในเช็คที่จำเป็น
ตรวจสอบผลลัพธ์และแก้ไขช่องโหว่ — Review Results & Fix
หลัง workflow รันเสร็จ คุณจะเห็นสองส่วนสำคัญ
- Actions tab: แสดงสถานะ Success/Failure ของการสแกน พร้อม log รายละเอียด
- Snyk dashboard: สรุปรายการ vulnerabilities, ให้คำแนะนำวิธีอัปเดตหรือแพทช์
ขั้นตอนต่อไปคือ
- อัปเดต package ที่มีช่องโหว่โดยใช้ `npm update` หรือระบุเวอร์ชันใหม่ใน `package.json`
- รัน workflow อีกครั้งเพื่อยืนยันว่าปัญหาได้ถูกแก้ไข
เคล็ดลับเพิ่มความปลอดภัย — Security Tips
**Tip: ใช้ Snyk Enterprise หากต้องการฟีเจอร์เช่น custom policies, branch‑level scanning และ integration กับ Jira
- เก็บ token ไว้ใน secret เท่านั้น; อย่าใส่ค่าโดยตรงใน workflow file
- จำกัดสิทธิ์ของ GitHub Actions runner ให้ทำงานเฉพาะที่จำเป็น (เช่น ไม่ต้องใช้ `sudo`)
- เปิดใช้งาน Dependabot ร่วมกับ Snyk เพื่อรับการอัปเดตอัตโนมัติของ dependencies ที่ปลอดภัย
สรุป — Summary
ตั้งค่า Snyk บน GitHub Actions ทำให้กระบวนการตรวจสอบช่องโหว่ของ dependencies เป็นอัตโนมัติและปลอดภัย ช่วยลดความเสี่ยงจากซอฟต์แวร์ที่ล้าสมัย
- สร้าง SNYK_TOKEN เก็บเป็น secret
- เพิ่ม workflow `snyk.yml` ที่ทำการสแกนทุก push / PR
- กำหนด severity threshold เพื่อบล็อกโค้ดไม่ปลอดภัย
- ตรวจสอบผลใน Actions และ Snyk dashboard, แล้วอัปเดตแพ็กเกจตามคำแนะนำ
ด้วยขั้นตอนเหล่านี้ ทีมของคุณจะมีพื้นฐานความปลอดภัยที่แข็งแรงต่อการพัฒนาแบบ CI/CD บน GitHub.
แชร์บทความนี้:
ชอบบทความแบบนี้?
สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม
แหล่งข่าวต้นฉบับ
- ชื่อต้นฉบับ
- วิธีตั้งค่า Snyk เพื่อตรวจสอบช่องโหว่ของ Dependencies อัตโนมัติใน GitHub Actions อย่างปลอดภัย
- ผู้เขียน
- กองบรรณาธิการ Thai Tech News
- แหล่ง
- บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
- วันที่เผยแพร่
- 2 สิงหาคม 2569 เวลา 17:50



