Merancang network cloud yang tangguh: desain VPC dengan subnet publik dan privat, perbedaan security groups vs NACL, segmentasi antar-tier, egress control untuk membatasi lalu lintas keluar, private endpoint, serta praktik network hardening yang membuat lateral movement menjadi sangat sulit bagi penyerang

Setelah di episode 3 kita mengunci identitas — users, roles, policies, dan least privilege — sekarang kita naik ke lapisan kedua: network. Identitas menentukan siapa boleh; network menentukan dari mana dan ke mana. Keduanya harus kuat, karena penyerang yang mencuri kredensial tetap butuh jalur jaringan untuk sampai ke target.
Mengapa network security cloud penting? Karena kesalahan konfigurasinya paling murah dibuat dan paling mahal akibatnya: satu security group 0.0.0.0/0 pada port manajemen sudah cukup untuk membuka seluruh fleet. Dan berbeda dengan datacenter fisik, di cloud kalian bisa mendesain ulang jaringan sepenuhnya lewat kode dalam hitungan jam.
Fondasi segmentasi cloud adalah pemisahan subnet:
| Jenis Subnet | Karakteristik | Isi yang Layak |
|---|---|---|
| Publik | Route ke Internet Gateway | Hanya load balancer / bastion minimal |
| Privat | Tanpa route internet langsung | App server, database, cache |
| Privat + egress terkontrol | NAT/egress proxy selektif | Workload yang butuh update & API eksternal |
Prinsip desain yang benar: tidak ada workload tanpa alasan punya IP publik. Load balancer menerima trafik dari internet; semua instance di belakangnya tinggal di subnet privat tanpa public IP.
Diagram di atas adalah pola tiga tier klasik: hanya satu pintu masuk (ALB), app tier tidak bisa diakses langsung, database hanya menerima dari app tier, dan lalu lintas keluar melewati titik kontrol tunggal.
Dua mekanisme filter di AWS yang sering tertukar:
| Aspek | Security Group (SG) | NACL |
|---|---|---|
| Level | Instance/ENI | Subnet |
| Stateful | Ya — return traffic otomatis | Tidak — return harus dibuka manual |
| Aturan | Hanya Allow | Allow dan Deny |
| Evaluasi | Semua aturan dinilai | Nomor urut, first match |
Aturan praktis: SG sebagai kontrol utama, NACL sebagai seat belt kasar (misal blok IP berbahaya secara eksplisit). Kekuatan sesungguhnya SG adalah kemampuannya mereferensi SG lain — aturan "boleh diakses oleh SG app-tier" membuat aturan firewall mengikuti dinamika autoscaling tanpa perlu tahu IP-nya.
Contoh Terraform dua SG yang saling merujuk:
resource "aws_security_group" "alb" {
name = "alb-sg"
vpc_id = aws_vpc.main.id
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = [aws_subnet.app.cidr_block]
}
}
resource "aws_security_group" "app" {
name = "app-sg"
vpc_id = aws_vpc.main.id
ingress {
from_port = 8080
to_port = 8080
protocol = "tcp"
security_groups = [aws_security_group.alb.id]
}
}Baris security_groups = [...] adalah inti pola ini: app hanya bisa dijangkau oleh trafik yang datang dari ALB. Tidak ada CIDR yang perlu dipelihara saat instance scale up/down.
Segmentasi menjawab pertanyaan: jika satu workload dikompromikan, seberapa jauh penyerang bisa bergerak? Prinsip-prinsipnya:
Tip
Uji segmentasi kalian secara berkala dari dalam: jalankan nc -zv <host-db> 5432 dari pod app yang tidak seharusnya mengakses DB. Jika berhasil connect, ada aturan yang bocor — temukan dan tutup sebelum penyerang yang menemukannya.
Mayoritas engineer rajin mengatur inbound tapi melupakan outbound. Padahal egress adalah jalur exfiltrasi data dan C2 (command and control). Pola egress control yang pragmatis:
Contoh SG dengan egress ketat:
resource "aws_security_group" "worker" {
name = "worker-sg"
vpc_id = aws_vpc.main.id
ingress {
from_port = 0
to_port = 0
protocol = "-1"
security_groups = [aws_security_group.alb.id]
}
egress {
from_port = 443
to_port = 443
protocol = "tcp"
security_groups = [aws_security_group.egress_proxy.id]
}
}Kombinasi endpoint policy pada VPC endpoint S3 juga layak dipakai: meski kredensial bocor, akses dibatasi hanya ke bucket tertentu.
Tiga komponen yang wajib kalian kenal:
aws ec2 create-vpc-endpoint \
--vpc-id vpc-0abc123 \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.ap-southeast-1.secretsmanager \
--subnet-ids subnet-0a1b2c3d \
--security-group-ids sg-secretsclientSetelah endpoint ini aktif, GetSecretValue dari dalam VPC tidak lagi memerlukan NAT Gateway maupun internet — permukaan serangan menyusut sekaligus biaya turun.
0.0.0.0/0 pada port manajemen (22, 3389) — klasik nomor satu di setiap CSPM report.Inti yang harus dibawa pulang:
Di episode 5 selanjutnya kita masuk ke workload security — hardening compute (EC2/VM), golden image, IMDSv2 untuk melindungi metadata, dan mengapa SSRF ke metadata service pernah menghasilkan salah satu breach terbesar sejarah. Sampai jumpa!