# Open Policy Agent (OPA) 2026: คู่มือ Policy as Code สำหรับ SME ไทย
ในยุคที่ระบบ Cloud Native, Microservices และ Kubernetes กลายเป็นมาตรฐานใหม่ของ SME ไทย ปัญหาที่หลายองค์กรเจอคือ "rule กระจายอยู่หลายที่" — บาง rule อยู่ใน application code, บางส่วนอยู่ใน API Gateway, บางส่วนเขียนเป็น YAML ใน Kubernetes ทำให้ตรวจสอบและ audit ยากมาก
Open Policy Agent (OPA) คือ open-source policy engine ของ CNCF (Graduated Project ตั้งแต่ปี 2021) ที่แก้ปัญหานี้โดยรวม policy ทั้งหมดมาอยู่ที่เดียว เขียนด้วยภาษา Rego — เป็น declarative language ที่ออกแบบมาเฉพาะสำหรับ policy decision
บทความนี้จะอธิบายว่า OPA และ Rego คืออะไร, ทำงานอย่างไร, ใช้ตอนไหน, และเริ่มต้นใช้งานจริงสำหรับ SME ไทย
OPA และ Rego คืออะไร?
OPA คือ "general-purpose policy engine" ที่แยกการตัดสินใจเรื่อง authorization/policy ออกจาก application code โดยมีหลักการสำคัญ 3 อย่าง:
| คุณสมบัติ | คำอธิบาย |
|----------|----------|
| Decoupled Policy | แยก policy ออกจาก code application — แก้ policy ไม่ต้อง redeploy app |
| Unified Language | ใช้ Rego เพียงภาษาเดียวสำหรับทุก use case |
| Declarative | บอก "อะไรอนุญาต" ไม่ใช่ "ทำอย่างไร" — อ่านเข้าใจง่าย audit ได้ |
Rego เป็นภาษาคล้าย Datalog ที่ทำงานบน JSON input → คืน JSON decision ออกมา ใช้สำหรับ "ตอบคำถามว่าอนุญาตหรือไม่" เป็นหลัก
ทำไม SME ไทยต้องสนใจ OPA ในปี 2026?
ในยุค Cloud Native, SME ไทยที่ใช้ AWS/GCP/Azure หรือมี Kubernetes Cluster ของตัวเองต้องเจอกับโจทย์เหล่านี้:
OPA คือคำตอบเดียวที่ใช้ได้กับทุก use case ข้างต้น — เขียน Rego ครั้งเดียว reuse ได้ทุกที่
สถาปัตยกรรม OPA แบบเข้าใจง่าย
OPA ทำงานเป็น decision engine ที่ตอบคำถาม:
```
Input (JSON) → OPA + Rego Policy → Decision (allow/deny + reason)
```
มี deployment patterns หลัก 3 แบบ:
ใน Kubernetes มี wrapper ที่ทำให้ใช้งานง่ายขึ้น เช่น Gatekeeper (OPA + CRD) สำหรับ admission control
ขั้นตอนการเริ่มใช้งาน OPA สำหรับ SME ไทย
Step 1: ติดตั้ง OPA Binary
```bash
curl -L -o opa https://openpolicyagent.org/downloads/latest/opa_linux_amd64_static
chmod +x opa
./opa version
```
หรือใช้ Docker:
```bash
docker run -p 8181:8181 openpolicyagent/opa:latest run --server
```
Step 2: เขียน Rego Policy แรก
ตัวอย่าง policy สำหรับ API Authorization — อนุญาตเฉพาะ admin หรือเจ้าของ resource เท่านั้น:
```rego
package httpapi.authz
default allow := false
allow if {
input.user.role == "admin"
}
allow if {
input.method == "GET"
input.user.id == input.resource.owner_id
}
```
ทดสอบด้วย OPA CLI:
```bash
echo '{"user":{"id":"u1","role":"admin"},"method":"DELETE","resource":{"owner_id":"u2"}}' \
| opa eval -d policy.rego "data.httpapi.authz.allow"
```
Step 3: Integrate กับ Application
ทางเลือกการเรียก OPA จาก application:
Step 4: Use Case สำคัญ — Kubernetes Admission Control
ติดตั้ง Gatekeeper (OPA สำหรับ Kubernetes):
```bash
kubectl apply -f https://raw.githubusercontent.com/open-policy-agent/gatekeeper/master/deploy/gatekeeper.yaml
```
ตัวอย่าง constraint ที่บังคับให้ทุก Pod ต้องมี resource limits:
```yaml
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredResources
metadata:
name: pod-must-have-limits
spec:
match:
kinds:
kinds: ["Pod"]
parameters:
limits: ["cpu", "memory"]
```
ผลลัพธ์: ใครก็ตามที่ deploy Pod โดยไม่มี resource limits จะถูก reject ตั้งแต่ admission
เปรียบเทียบ OPA vs Cedar vs Casbin
| ความสามารถ | OPA / Rego | Cedar (AWS) | Casbin |
|-----------|------------|-------------|--------|
| License | Apache 2.0 (CNCF Graduated) | Apache 2.0 | Apache 2.0 |
| Language | Rego (Datalog-like) | Cedar | Multiple (built-in) |
| Use Cases | All-purpose | Authorization-focused | Authorization-focused |
| Kubernetes Integration | ⭐⭐⭐⭐⭐ (Gatekeeper) | ⭐⭐ | ⭐⭐ |
| Learning Curve | สูง (Rego มี mental model ใหม่) | กลาง | ต่ำ |
| Ecosystem | ใหญ่สุด — Envoy, Istio, Terraform, Kafka | กลาง | กลาง |
| Performance | กลาง-สูง (Go in-process) | สูง (Rust) | สูง |
| ดีที่สุดสำหรับ | Cloud Native multi-use case | AWS-centric application | Single-app authorization |
สรุปการเลือก:
Best Practices สำหรับ SME ไทย
ความท้าทายที่ต้องเตรียมรับมือ
สรุป + CTA
Open Policy Agent คือเครื่องมือสำคัญสำหรับ SME ไทยที่กำลังเข้าสู่ยุค Cloud Native — มันช่วยรวมศูนย์การจัดการ policy, ลดการกระจัดกระจายของ rule, และทำให้ compliance audit ง่ายขึ้นมาก
Key Takeaways:
หาก SME ของคุณกำลังพิจารณาเรื่อง Cloud Native security, Kubernetes hardening หรือต้องการที่ปรึกษาด้าน Policy as Code ทีม ADS FIT พร้อมช่วยออกแบบและ implement ติดต่อทีมเราเพื่อ consultation ฟรีได้เลย หรืออ่านบทความที่เกี่ยวข้องอื่นๆ ในหมวด Network & Security ของเรา