69 điểm kiểm tra AWS mà 6WAF quét tự động
39 điểm lãng phí chi phí · 24 điểm bảo mật · 6 điểm độ tin cậy. Mỗi mục có trang riêng giải thích ngưỡng phát hiện, nguồn dữ liệu và cách tự kiểm tra thủ công.
Gói Pro còn có Deep Scan (Prowler) với hàng trăm check bổ sung — không tính trong con số trên.
Chi phí — điểm lãng phí(39)
Tài nguyên idle, cấu hình dư, sai mô hình giá, kiến trúc tốn kém và rác tích lũy.
V1 — Idle: trả tiền cho thứ không dùng
EBS Volume không gắn instance
Unattached EBS Volume
EBS ở trạng thái available (detached) → $0.08–0.125/GB/tháng dù không dùng
NAT Gateway không có traffic
NAT Gateway with no traffic
BytesOutToDestination < 1 GB/ngày trong 14 ngày → phí cố định $0.045/giờ (~$32/tháng)
Lambda function 0 invocation
Lambda with 0 invocations
Lambda không được gọi lần nào trong 30 ngày — Provisioned Concurrency vẫn tính tiền
RDS instance không có kết nối
RDS instance with no connections
0 kết nối database trong 7 ngày liên tiếp → instance đang bị bỏ quên, tiết kiệm 100%
Kinesis Stream không có records
Kinesis Stream with no records
0 records trong 14 ngày → shard-hour charge $0.015/shard/giờ (~$11/shard/tháng)
EFS < 1 GB data
EFS with < 1 GB data
EFS $0.30/GB/tháng — 13× đắt hơn S3. File system nhỏ không dùng POSIX nên migrate sang S3
SageMaker endpoint 0 invocation
SageMaker endpoint with 0 invocations
Endpoint ML không được gọi trong 7 ngày — model vẫn ở S3, endpoint có thể xóa an toàn
VPN Connection không có traffic
VPN Connection with no traffic
Site-to-site VPN 0 bytes trong 14 ngày → $36.50/tháng phí cố định đang lãng phí
Route53 Health Check mồ côi
Orphaned Route53 Health Check
Health check không gắn với record set nào → $0.50–1.00/tháng mỗi check
Elastic IP không gắn instance
Elastic IP not attached to instance
EIP không attach vào running instance → AWS tính $0.005/giờ khi không sử dụng
Load Balancer không có target
Load Balancer with no healthy targets
ALB/NLB/Classic ELB không có target healthy → phí cố định $0.008–0.025/giờ
V2 — Oversize: trả nhiều hơn mức cần
EC2 Rightsizing
EC2 Rightsizing
avg CPU < 20% và peak < 40% trong 14 ngày → downsize 1 tier (CloudWatch CPUUtilization)
RDS Rightsizing
RDS Rightsizing
Kết nối tối đa < 10 trong 14 ngày → downsize 1 tier; Multi-AZ × 2
Redshift Rightsizing
Redshift Rightsizing
avg CPU < 20% và connections < 5 → đề xuất pause/resume off-hours (~50% tiết kiệm)
OpenSearch Rightsizing
OpenSearch Rightsizing
avg CPU < 20% và JVM < 60% trong 14 ngày → downsize instance type
ECS Fargate Rightsizing
ECS Fargate Rightsizing
avg CPU utilization < 25% (Container Insights) → giảm task CPU reservation (Fargate only)
ElastiCache Rightsizing
ElastiCache Rightsizing
Redis/Memcached node CPU < 20% và memory < 20% → downsize 1 tier
EBS io1/io2 IOPS thừa
Over-provisioned EBS io1/io2 IOPS
Peak consumed IOPS < 30% provisioned IOPS → migrate sang gp3 với custom IOPS (rẻ hơn nhiều)
RDS Multi-AZ cho Dev/Test
RDS Multi-AZ for Dev/Test
Instance có tag Environment=dev/test/staging bật Multi-AZ → 50% tiết kiệm khi tắt
DynamoDB Provisioned không hiệu quả
Inefficient DynamoDB Provisioned capacity
avg utilization < 20% RCU/WCU trong 14 ngày → chuyển sang PAY_PER_REQUEST
Lambda Memory Rightsizing
Lambda Memory Rightsizing
avg memory < 30% allocated (Lambda Insights required) → giảm memory, tiết kiệm GB-seconds
MSK Broker Rightsizing
MSK Broker Rightsizing
avg CPU < 20% trên brokers trong 14 ngày → downsize instance type hoặc giảm broker count
V3 — Wrong Model: On-Demand khi RI/SP rẻ hơn
ElastiCache Reserved Nodes
ElastiCache Reserved Nodes
Cache nodes chạy 90+ ngày On-Demand → Reserved Node 1 năm tiết kiệm ~30%
OpenSearch Reserved Instances
OpenSearch Reserved Instances
Domain chạy 90+ ngày → RI 1 năm tiết kiệm ~28%
Redshift Reserved Nodes
Redshift Reserved Nodes
Cluster chạy 90+ ngày On-Demand → Reserved Node tiết kiệm ~34%
RI/SP Over-commitment
RI/SP Over-commitment
RI hoặc SP utilization < 50% — đã trả tiền trước cho capacity không dùng đến
V4 — Architecture: xây sai cách khiến bill cao
Dev/Test chạy 24/7
Dev/Test running 24/7
EC2 tag Environment=dev/test/staging chạy liên tục → auto-stop tiết kiệm 64%
Thiếu VPC Endpoint cho S3/DynamoDB
Missing VPC Endpoint for S3/DynamoDB
Traffic đến S3/DDB qua NAT Gateway → trả $0.045/GB phí NAT; Gateway Endpoint MIỄN PHÍ
API Gateway REST → HTTP API
API Gateway REST → HTTP API
HTTP API (v2) $1.00/triệu request vs REST API $3.50/triệu — 71% rẻ hơn
S3 chưa dùng CloudFront
S3 without CloudFront
S3 bucket public > 1 GB/ngày không có CloudFront → lợi ích chính là độ trễ + giảm phí GET request (đơn giá egress/GB tương đương — informational)
Cơ hội dùng EC2 Spot
EC2 Spot opportunity
Instances tag dev/test/batch/worker chạy On-Demand → Spot tiết kiệm 60–90%
V5 — Accumulated: rác tích lũy theo thời gian
AMI & Snapshot không sử dụng
Unused AMI & Snapshot
AMI/snapshot > 90 ngày không gắn với instance đang chạy → $0.05/GB/tháng
S3 Intelligent Tiering
S3 Intelligent Tiering
Bucket > 1 GB Standard, không có lifecycle rule → tiết kiệm ~30% khi chuyển sang IA/Glacier
ECR Image cũ
Stale ECR Image
Container image > 90 ngày (không tagged 'latest') → tiết kiệm $0.10/GB/tháng
EBS gp2 → gp3
EBS gp2 → gp3 migration
gp2 $0.10/GB vs gp3 $0.08/GB — migrate sang gp3 tiết kiệm $0.02/GB/tháng (không cần downtime)
CloudWatch Logs không có retention
CloudWatch Logs without retention
Log group không có thời hạn xóa → $0.03/GB/tháng tích lũy không giới hạn
S3 Multipart Upload bỏ dở
Abandoned S3 Multipart Uploads
Multipart upload > 7 ngày chưa hoàn thành → phí storage cho parts chưa committed
S3 Versioning không có lifecycle
S3 Versioning without lifecycle
Bucket bật versioning nhưng không có NoncurrentVersionExpiration → ~50% storage là versions cũ
EC2 instance đã stop > 30 ngày
EC2 instance stopped > 30 days
Stopped instance không tính tiền CPU nhưng EBS volumes vẫn tính $0.08–0.125/GB/tháng
Bảo mật — Fast Scan(24)
Kiểm tra bằng AWS API (IAM, S3, mạng, CloudTrail, KMS), kết quả tất định, không dùng LLM để phát hiện.
Danh tính & truy cập (IAM)
Root account chưa bật MFA
CRITICALRoot account MFA not enabled
Root có toàn quyền và không thể bị giới hạn bằng IAM policy — thiếu MFA là rủi ro chiếm quyền cả tài khoản
Root account có access key đang hoạt động
CRITICALRoot account has active access keys
Access key của root là vector tấn công nguy hiểm nhất — không bao giờ dùng trong code hay automation
Chưa có IAM password policy
HIGHNo IAM password policy configured
Tài khoản chưa đặt chính sách mật khẩu, người dùng IAM có thể dùng mật khẩu yếu tùy ý
Mật khẩu IAM tối thiểu dưới 14 ký tự
MEDIUMIAM password minimum length below 14
Độ dài tối thiểu trong password policy nhỏ hơn 14 ký tự (ngưỡng khuyến nghị của 6WAF theo CIS)
Không chặn tái sử dụng mật khẩu
MEDIUMPassword reuse not prevented
Password policy không ngăn người dùng quay lại mật khẩu cũ
Mật khẩu IAM không có thời hạn hết hạn
LOWIAM password expiry not enforced
Password policy không đặt thời hạn (MaxPasswordAge), mật khẩu bị lộ có thể dùng vô thời hạn
Access key không dùng quá 90 ngày
MEDIUMAccess key unused for 90+ days
Access key của IAM user không được dùng trong hơn 90 ngày — nên vô hiệu hóa hoặc xóa
Chưa dùng IAM Identity Center (SSO)
MEDIUMIAM Identity Center (SSO) not configured
Có IAM user đăng nhập console bằng mật khẩu dài hạn thay vì SSO/federation tập trung
EC2 không gắn IAM role (instance profile)
MEDIUMEC2 instance has no IAM role attached
Instance không có instance profile, ứng dụng dễ phải nhúng access key tĩnh vào máy
Bảo vệ dữ liệu (S3, EBS, KMS)
S3 bucket thiếu hoặc chưa đủ Public Access Block
HIGHS3 bucket Public Access Block missing or incomplete
Bucket chưa bật đủ 4 cờ Public Access Block hoặc chưa có cấu hình nào — nguy cơ lộ dữ liệu công khai
S3 Public Access Block cấp account chưa đủ
HIGHS3 account-level Public Access Block not fully enabled
Chưa bật đủ Block Public Access ở cấp account, bucket mới tạo không được bảo vệ mặc định
S3 bucket mã hóa SSE-S3 thay vì SSE-KMS
LOWS3 bucket uses SSE-S3 instead of SSE-KMS
Bucket mã hóa bằng khóa do S3 quản lý, không có kiểm soát khóa và audit trail riêng của KMS
S3 bucket chưa có cấu hình mã hóa tường minh
LOWS3 bucket has no explicit encryption configuration
Bucket không khai báo mã hóa mặc định tường minh
EBS volume chưa mã hóa
MEDIUMEBS volume not encrypted
Volume không được mã hóa at-rest, snapshot sinh ra từ nó cũng không mã hóa
KMS key chưa bật tự động xoay
LOWKMS key automatic rotation not enabled
Khóa KMS do khách quản lý (đối xứng, đang Enabled) chưa bật key rotation; khóa AWS-managed và khóa bất đối xứng được bỏ qua
Mạng (Security Group, VPC)
Security Group mở toàn bộ traffic ra Internet
CRITICALSecurity Group open to all internet traffic
Rule inbound cho phép mọi giao thức từ 0.0.0.0/0 hoặc ::/0 — mọi port đều có thể truy cập
Port 22 (SSH) mở ra Internet
HIGHPort 22 (SSH) open to the internet
Security Group cho phép SSH từ 0.0.0.0/0 — dễ bị brute-force và credential stuffing
Port 3389 (RDP) mở ra Internet
HIGHPort 3389 (RDP) open to the internet
Security Group cho phép RDP từ 0.0.0.0/0 — dễ bị brute-force và credential stuffing
VPC chưa bật Flow Logs
MEDIUMVPC has no Flow Logs
Không có log lưu lượng mạng để điều tra sự cố hoặc phát hiện truy cập bất thường
Ghi log & kiểm toán (CloudTrail)
CloudTrail chưa được bật
HIGHCloudTrail not enabled
Không có trail nào — hoạt động quản trị trong account không được ghi lại để audit
CloudTrail trail đang bị tạm dừng
HIGHCloudTrail trail paused
Trail tồn tại nhưng đã dừng ghi log, tạo khoảng trống trong audit trail
Không có CloudTrail multi-region
MEDIUMNo CloudTrail multi-region trail
Không có trail ghi hoạt động ở mọi region, hoạt động ở region ít dùng có thể không được ghi lại
CloudTrail chưa bật log file validation
MEDIUMCloudTrail log file validation not enabled
Không thể chứng minh file log chưa bị sửa hoặc xóa sau khi ghi
CloudTrail chưa gửi log sang CloudWatch Logs
LOWCloudTrail not sending logs to CloudWatch Logs
Không thể đặt metric filter và cảnh báo theo thời gian thực trên sự kiện CloudTrail
Độ tin cậy — tài nguyên production(6)
Chỉ đánh giá resource gắn tag Environment=production hoặc prod; resource không gắn tag được ghi là chưa đánh giá, không tính là đạt.
Khả năng chịu lỗi & phục hồi
RDS production không bật Multi-AZ
MEDIUMProduction RDS instance is not Multi-AZ
Instance chạy một Availability Zone — sự cố AZ làm database ngừng cho tới khi khôi phục
DynamoDB production chưa bật point-in-time recovery
MEDIUMProduction DynamoDB table has no point-in-time recovery
Xóa nhầm hoặc ghi sai không thể rollback về một thời điểm trong 35 ngày gần nhất
Auto Scaling group production chỉ dùng một AZ
MEDIUMProduction Auto Scaling group uses a single Availability Zone
Toàn bộ instance nằm trong một AZ, mất AZ là mất toàn bộ năng lực phục vụ
Subnet production phụ thuộc NAT Gateway ở AZ khác
MEDIUMProduction subnets depend on a NAT gateway in another AZ
Subnet định tuyến qua NAT Gateway ở AZ khác — sự cố AZ đó cắt đường ra Internet của subnet còn lại (mức độ là phân loại của 6WAF, không có control Security Hub tương ứng)
Tài nguyên production chưa có recovery point trong AWS Backup
MEDIUM / LOWProduction resource has no AWS Backup recovery point
RDS, DynamoDB (mức Medium) và EBS volume đang dùng (mức Low) chưa nằm trong kế hoạch AWS Backup
S3 bucket production chưa bật versioning
LOWProduction S3 bucket has versioning disabled
Object bị ghi đè hoặc xóa nhầm không thể khôi phục về phiên bản trước
Kiểm tra thủ công cả 69 mục mất nhiều ngày. 6WAF quét trong ~10 phút.
Quét miễn phí account của bạn