Membuat arsitektur di AWS dengan Bastion Host
Bastion Host atau biasa disebut juga Jump box merupakan suatu server yang ditempatkan di network sebagai entry point yang aman untuk masuk ke infrastruktur cloud atau jaringan pribadi. Fungsinya adalah untuk melindungi dan mengamankan host host lain yang berada di sekelilingnya. Menggunakan host merupakan praktek keamanan yang umum di arsitektur cloud, khususnya dalam lingkungan yang terisolasi atau private.
Selanjutnya kita akan membuat sebuah bastion host yang akan dijadikan sebagai entry point untuk masuk ke dalam suatu web server. Dalam kasus ini sebuah web server sudah dibuat, kemudian akan kita buat bastion host sebagai entry point untuk ke web server tersebut lewat ssh.
Berikut adalah web server yang telah dibuat dengan nama instance Misconfigured Web Server.
Untuk membuat web server bisa dibaca tulisan yang lain di link berikut.
https://medium.com/@zackstam/membuat-web-server-di-aws-14baf3950d90
Membuat Bastion Host
Di bagian management console, search ec2-instance, kemudian pilih EC2.
Di tampilan page, klik instance kemudian klik Launch instances
Akan ditampilkan form untuk konfigurasi ec2 instance yang akan kita buat.
Di bagian tab Name and tags isikan nama instance dari bastion host.
Isikan jenis OS yang akan kita gunakan dalam ec2-instance, kali ini saya menggunakan OS Amazon Linux 2 AMI (HVM).
Selanjutnya kita pilih jenis instance yang kita pakai di ec2-instance. Pilih jenis instance t3-micro.
Di bagian Key pair, klick Create new key pair untuk membuat key yang bisa dipake buat login ke bastion host via ssh
Klik Create key pair, file bastion.pem akan terdownload simpan file ini karena akan kita pakai untuk masuk ke bastion host via ssh.
klik reload di bagian list pilih bastion
Menentukan vpc yang akan dipakai untuk bastion host, tentukan vpc dan subnet yang dipakai. Untuk subnet pilih yang public subnet agar kita bisa masuk ke bastion host via ssh.
Firewall (Security groups) pilih Create security group,
Security group name: Bastion security group
Description: Bastion security group
di inbound security group rules, kita menentukan hak akses untuk bastion host. Tambahkan tipe akses ssh dengan protokol tcp dan port 22. Akses ini digunakan agar kita bisa ssh ke bastion host.
klik Launch instance
tunggu proses inisialiasasi instance bastion hingga status menjadi 2/2checks passed.
Selanjutnya kita akan membuat web server dengan menambahkan akses ssh dari bastion host
Membuat Web Server
Buat instance baru untuk web server dengan cara yang sama seperti buat bastion host. Isikan sebagai berikut
Name and tags : Web Server
Amazon Machine Image: Amazon Linux 2 AMI
Instance type: t3.micro
Bikin key pair baru untuk akses ssh ke web server caranya sama seperti saat bikin key pair bastion. Simpan file ini karena akan kita pakai untuk masuk ke web server via ssh.
Network settings
Tentukan VPC yang sama seperti bastion host, di bagian subnet tentukan subnet untuk instancenya, untuk subnet bisa ditaruh di public subnet maupun private subnet.
Di bagian security group kita memberikan akses agar web server bisa diakses via ssh dari bastion host. Jika security group nya belum dibikin kita bisa membuat seperti saat membuat Bastion Security group. Di sini security groupnya sudah dibkin, jadi tinggal kita tambahin ada dengan memilih Select existing security group.
Berikut adalah rules akses dari web security group.
User data
Tambahkan text berikut untuk install apache web server.
#!/bin/bash
# Install Apache Web Server
yum install -y httpd
# Turn on web server
systemctl enable httpd.service
systemctl start httpd.service
# Download App files
wget https://aws-tc-largeobjects.s3.amazonaws.com/CUR-TF-100-RESTRT-1/171-lab-%5BJAWS%5D-create-ec2/dashboard-app.zip
unzip dashboard-app.zip -d /var/www/html/
Klik Launch Instance
Tunggu proses inisiasi instance selesai.
SSH Bastion Host
Kali ini kita mencoba masuk ke bastion host dengan ssh, masuk ke terminal kemudian akses dengan command berikut.
ssh -i bastion.pem ec2-user@<ipPublicBastionHost>
SSH ke web server via SSH passthrough
Di komputer tersimpan dua key pair, bastion.pem dan webserver.pem. Kita dapat menggunakan sekaligus keduanya untuk akses ssh ke bastion host kemudian ssh webserver. Buka terminal kemudian masukkan command berikut.
ssh-add -K webserver.pem bastion.pem
ssh-add -L
ssh -A ec2-user@<ipPublicBastionHost>
setelah kita masuk ke bastion host kita bisa langsung masuk ke web server via ssh dengan command berikut
ssh ec2-user@<ipPrivateWebServer>
Dengan menggunakan Jumpbox atau Bastion Host, kita dapat meningkatkan keamanan infrastruktur cloud kita dengan memberikan layer keamanan tambahan dan mengelola akses pengguna secara efektif. Praktik ini penting terutama dalam skenario di mana infrastruktur cloud memiliki sifat terdistribusi dan dapat diakses dari berbagai lokasi atau perangkat.