Konfigurasi Akses EC2 instance menggunakan AWS System Manager (SSM) Session Manager

Achmad Zulfikar
NDID Engineering
Published in
5 min readMar 7, 2024

AWS System Manager (SSM) merupakan service yang disediakan oleh AWS sebagai operational hub untuk mengelola aplikasi dan resource yang berjalan di public cloud AWS. SSM menjamin keamanan akses end-to-end dalam mengelola aplikasi dan resource pada AWS serta mendukung implementasi hybrid dan multi-cloud. Diagram dibawah ini menggambarkan bagaimana AWS SSM bekerja:

System Manager Architecture

1. Akses SSM menggunakan AWS console, terdapat beberapa cara untuk mengakses SSM diantaranya adalah AWS console, AWS CLI, AWS SDK dan AWS IoT Greengrass V2 console.

2. Memilih fungsi yang didukung oleh SSM, pada diagram terdapat beberapa fungsi yang didukung oleh SSM yaitu State Manager, Inventory, Maintenance Windows, Patch Manager, Session Manager dan Fleet Manager. Terdapat fungsi-fungsi lainnya yang dapat didukung oleh SSM, pada diagram hanya disajikan beberapa fungsi yang sering digunakan oleh IT Administrator dan DevOps operator.

3. Verifikasi dan menjalankan proses, SSM akan melakukan verifikasi kepada user, group ataupun role yang akan digunakan untuk menjalankan fungsi-fungsi pada SSM. SSM akan memastikan bahwa proses dijalankan oleh user, group ataupun yang role yang memiliki otoritas. Setelah melakukan proses verifikasi maka selanjutnya SSM akan menjalankan proses sesuai dengan yang dipilih pada langkah sebelumnya.

4. Reporting, semua AWS services yang melakukan perubahan berdasarkan perintah dari SSM manager akan mengirimkan detail dari masing-masing perubahan ke AWS services yang lainnya (jika dilakukan konfigurasi).

5. System Manager Operation Management Capability, SSM menyediakan beberapa fungsi operation yang dapat digunakan diantaranya OpsCenter, Explorer dan Incident Manager. Fungsi-fungsi tersebut dapat digunakan dengan melakukan konfigurasi terlebih dahulu.

Pada artikel ini akan dilakukan konfigurasi SSM menggunakan fungsi Session Manager untuk melakukan koneksi ke EC2 instance pada public dan private subnet. High level diagram yang akan digunakan adalah sebagai berikut:

Hands On Architecture

Langkah untuk membuat environment diatas tidak akan dijelaskan pada artikel ini, pembuatan VPC, subnet, internet gateway dan NAT gateway dapat dilakukan secara mandiri.

Langkah 1: membuat SSM role akses yang akan digunakan untuk deployment EC2 instance

Membuat role baru dapat dilakukan melalui menu IAM users pada AWS console. Buat role baru dengan manambahkan policy AmazonSSMManagedInstanceCore kemudian simpan konfigurasi.

Permission of Role Configuration

Langkah 2: membuat security group yang akan digunakan untuk deployment EC2 instance

Membuat security group baru dapat dilakukan melalui menu EC2 pada AWS console. Buat security group baru dengan melakukan konfigurasi inbound rule dan outbound rule sesuai dengan gambar dibawah ini kemudian simpan konfigurasi.

Inbound Rules Configuration of Security Group
Outbound Rules Configuration of Security Group

Langkah 3: EC2 deployment pada public subnet

EC2 deployment dapat dilakukan melalui menu EC2 pada AWS console. Pilih menu launch instances untuk melakukan deployment EC2 baru kemudian lakukan beberapa konfigurasi sesuai dengan gambar dibawah ini. Beberapa konfigurasi yang tidak disebutkan pada artikel ini dapat menggunakan nilai default yang telah disediakan oleh AWS.

Konfigurasi pertama terkait dengan image yang akan digunakan pada EC2 baru yang akan dideploy. Pilih Amazon Linux Machine Image sesuai dengan gambar dibawah ini.

AMI Configuration of EC2 Instance

Konfigurasi kedua terkait dengan jaringan yang akan digunakan pada EC2 baru yang akan dideploy. Lakukan konfigurasi jaringan sesuai dengan gambar dibawah ini, pilih security group yang telah dibuat pada Langkah sebelumnya.

Network Configuration of EC2 Instance in Public Subnet

Konfigurasi ketiga terkait dengan instance profile yang akan digunakan pada EC2 instance baru yang akan dideploy. Pilih role yang telah dibuat sebelumnya sesuai dengan gambar dibawah ini.

Role Configuration of EC2 Instance

Setelah melakukan semua konfigurasi maka lanjutkan dengan memilih button launch instance untuk melakukan deployment EC2.

Langkah 4: EC2 deployment pada private subnet

EC2 deployment pada private subnet dapat menggunakan konfigurasi yang sama dengan EC2 deployment pada public subnet. Perbedaan konfigurasi terdapat pada konfigurasi jaringan, pilih private subnet pada konfigurasi jaringan sesuai dengan gambar dibawah ini.

Network Configuration of EC2 Instance in Private Subnet

Hal lain yang perlu diperhatikan untuk melakukan konfigurasi SSM Session Manager pada private subnet adalah EC2 instance membutuhkan NAT gateway untuk koneksi ke internet.

Langkah 5: Testing SSM Session Manager

Testing SSM Session Manager dapat dilakukan melalui menu EC2 pada AWS console (testing EC2 instance pada public dan private subnet). Pilih EC2 instance yang telah dideploy pada langkah sebelumnya, kemudian pilih connect.

Connect to EC2 instance via Session Manager

Pilih tab session manager kemudian pilih connect untuk melakukan koneksi ke EC2 instance menggunakan SSM Session Manager.

Connect to EC2 instance via Session Manager

Jika semua konfigurasi dilakukan dengan benar maka browser otomatis akan membuka tab baru sesuai dengan gambar dibawah ini.

Console of EC2 instance accessed via SSM Session Manager

Jika koneksi gagal dilakukan maka dapat dilakukan pengecekan pada route table masing-masing public dan private subnet. Berikut adalah referensi konfigurasi route table masing-masing subnet yang digunakan pada artikel ini.

Route Table Configuration of Public Subnet
Route Table Configuration of Private Subnet

Kesimpulan

SSM Session Manager merupakan salah satu solusi yang dapat dipilih untuk melakukan koneksi pada EC2 instances yang berjalan diatas environment AWS. SSM session manager menjamin koneksi yang aman (terenkripsi) dalam melakukan tugas-tugas development dan operasional serta tidak membutuhkan konfigurasi port tambahan pada security group inbound rule sehingga meminimalisir serangan yang dapat terjadi pada system.

--

--