DevOps Bootcamp · บทเรียน

นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด

เพิ่มชั้นป้องกันให้กลยุทธ์การทดสอบด้วยการสแกนแผน Terraform เพื่อค้นหาการละเมิดความปลอดภัยและข้อกำหนด ก่อนเข้าสู่ระบบจริง

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

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

การทดสอบไม่ได้มีแค่การทำงาน

การทดสอบหน่วยและการทดสอบการผสานรวมยืนยันว่าโครงสร้างพื้นฐานของคุณ ทำงานได้ ส่วน Policy as code ยืนยันว่าโครงสร้างพื้นฐานนั้น ได้รับอนุญาต: ไม่มีบัคเก็ต S3 แบบสาธารณะ ใช้เฉพาะประเภทอินสแตนซ์ที่อนุมัติ และมีแท็กที่จำเป็นครบถ้วน การตรวจสอบเหล่านี้จะทำงานโดยอัตโนมัติกับทุกการเปลี่ยนแปลง

ตำแหน่งของการตรวจสอบนโยบาย

การตรวจสอบนโยบายจะอยู่ระหว่าง plan และ apply ระบบจะวิเคราะห์เอาต์พุตของแผน และหากพบการละเมิดจะบล็อกการ apply เช่นเดียวกับที่การทดสอบที่ไม่ผ่านจะบล็อกการผสาน

การสแกนแบบสถิตด้วย tfsec

tfsec สแกน HCL เพื่อค้นหาการกำหนดค่าที่ผิดพลาดซึ่งเป็นที่รู้จัก โดยไม่ต้องใช้ข้อมูลรับรองระบบคลาวด์ รวดเร็วเพียงพอที่จะเรียกใช้ได้ทุกครั้งที่คอมมิต

tfsec .

การอ่านเอาต์พุตของ Scanner

Scanner จะแจ้ง ID ของกฎ ระดับความรุนแรง และทรัพยากรที่ก่อปัญหา ใช้ ID เพื่อค้นหาแนวทางแก้ไข หรือปิดการแจ้งเตือนความเสี่ยงที่ยอมรับแล้ว

Result: aws-s3-enable-bucket-encryption
Severity: HIGH
Resource: aws_s3_bucket.data

Checkov สำหรับการสแกนหลายเฟรมเวิร์ก

Checkov รองรับ Terraform รวมถึงรูปแบบ IaC อื่น ๆ และจับคู่สิ่งที่ค้นพบกับเฟรมเวิร์กด้านการปฏิบัติตามข้อกำหนด เช่น CIS และ SOC2

checkov -d . --framework terraform

สแกนแผน ไม่ใช่แค่โค้ด

หากต้องการตรวจจับปัญหาที่ปรากฏเฉพาะหลังการแทนค่าตัวแปร ให้ส่งออกแผนเป็น JSON แล้วสแกนสิ่งที่ส่งออกนั้น

terraform plan -out=tfplan.binary
terraform show -json tfplan.binary > plan.json
checkov -f plan.json

Open Policy Agent และ Conftest

สำหรับกฎเฉพาะขององค์กร OPA ร่วมกับ conftest ช่วยให้คุณเขียนนโยบายด้วยภาษา Rego และทดสอบนโยบายเหล่านั้นกับ JSON ของแผนได้

conftest test plan.json --policy policy/

นโยบาย Rego อย่างง่าย

กฎ Rego นี้ปฏิเสธบัคเก็ต S3 ที่มีการตั้งค่า ACL เป็น public-read Conftest จะทำให้การทำงานไม่ผ่านหากกฎนี้ตรงกับข้อมูล

package main

deny[msg] {
  r := input.resource_changes[_]
  r.type == "aws_s3_bucket"
  r.change.after.acl == "public-read"
  msg := "S3 buckets must not be public-read"
}

การปิดการแจ้งเตือนความเสี่ยงที่ยอมรับแล้ว

บางครั้งสิ่งที่ค้นพบเป็นข้อยกเว้นที่ทราบอยู่แล้ว ความคิดเห็นในบรรทัดช่วยให้ข้ามกฎที่ระบุได้ พร้อมเก็บร่องรอยการตรวจสอบ แทนการปิดการสแกนทั้งหมด

resource "aws_s3_bucket" "logs" {
  # tfsec:ignore:aws-s3-enable-bucket-encryption
  bucket = "public-logs"
}

ทำให้การสร้างไม่ผ่าน

ใน CI เครื่องมือเหล่านี้จะคืนรหัสออกที่ไม่ใช่ศูนย์เมื่อพบการละเมิด ซึ่งทำให้ไปป์ไลน์ไม่ผ่านและป้องกันไม่ให้การ apply ที่ไม่เป็นไปตามข้อกำหนดดำเนินต่อ

tfsec . --soft-fail=false

การจัดลำดับการตรวจสอบเป็นชั้น

ไปป์ไลน์ที่成熟จะเรียกใช้ fmt และ validate ก่อน จากนั้นจึงสแกนนโยบายแบบสถิต (tfsec/checkov) ต่อด้วยกฎ OPA ที่กำหนดเอง และสุดท้ายจึงเรียกใช้ชุดการทดสอบ Terratest เชิงฟังก์ชัน แต่ละชั้นตรวจจับปัญหาคนละประเภท

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับนโยบายในรูปแบบโค้ดของคุณ

ทบทวน: เกราะป้องกันสำหรับโครงสร้างพื้นฐาน

คุณได้เพิ่มชั้นการปฏิบัติตามข้อกำหนดให้กับการทดสอบ:

  • tfsec และ Checkov สำหรับสแกนการกำหนดค่าที่ผิดพลาดซึ่งเป็นที่รู้จัก
  • OPA/conftest ร่วมกับ Rego สำหรับกฎเฉพาะขององค์กร
  • สแกน JSON ของแผนเพื่อจับปัญหาที่เกิดจากค่าหลังการแทนค่า
  • รหัสออกที่ไม่ใช่ศูนย์จะบล็อกการ apply ที่ไม่เป็นไปตามข้อกำหนดใน CI
เริ่มต้นได้ฟรี

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

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

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

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

บทเรียน “นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด”

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

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

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

บทเรียน “นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. `validate` และ `fmt` ของ Terraform
  2. การทดสอบหน่วยด้วย Terratest
  3. การทดสอบการผสานรวมทรัพยากรคลาวด์
  4. นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด
← กลับไปที่ DevOps Bootcamp