นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด
เพิ่มชั้นป้องกันให้กลยุทธ์การทดสอบด้วยการสแกนแผน Terraform เพื่อค้นหาการละเมิดความปลอดภัยและข้อกำหนด ก่อนเข้าสู่ระบบจริง
นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด เป็นบทเรียน 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.dataCheckov สำหรับการสแกนหลายเฟรมเวิร์ก
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.jsonOpen 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- `validate` และ `fmt` ของ Terraform
- การทดสอบหน่วยด้วย Terratest
- การทดสอบการผสานรวมทรัพยากรคลาวด์
- นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด