Security group mengontrol lalu lintas inbound dan outbound instance ECS. Topik ini menjelaskan prinsip perencanaan security group dan menyediakan contoh konfigurasi aturan untuk kasus penggunaan umum, seperti layanan web, akses jarak jauh, akses database, dan komunikasi jaringan internal.
Security group guidelines
1. Rencanakan security group
Sebelum mengonfigurasi security group, identifikasi batasan layanan dan persyaratan keamanan Anda, seperti layanan mana yang terpapar ke internet publik dan mana yang dibatasi hanya untuk akses internal.
Gunakan security group berbeda untuk layanan yang menghadap publik dan layanan internal
Untuk layanan yang menghadap publik, buka hanya port yang diperlukan dan tutup semua port serta protokol lainnya guna mengurangi attack surface.
Deploy layanan internal, seperti database dan cache, pada instance ECS tanpa akses internet publik. Anda kemudian dapat memberikan akses internal dengan mengotorisasi security group lain.
Gunakan security group berbeda untuk aplikasi yang berbeda
Aplikasi yang berbeda biasanya memerlukan port yang berbeda. Tempatkan mereka dalam security group terpisah untuk mencegah aturan saling mengganggu.
Misalnya, instance Linux mungkin memerlukan port TCP 22 untuk akses SSH, sedangkan instance Windows mungkin memerlukan port TCP 3389 untuk akses Remote Desktop.
Bahkan jika instance menggunakan jenis image yang sama, tetapkan mereka ke security group berbeda jika menyediakan layanan berbeda dan tidak perlu berkomunikasi satu sama lain melalui jaringan internal. Praktik ini memfasilitasi decoupling dan perubahan di masa depan.
Saat merancang aplikasi Anda, Anda dapat menggunakan kombinasi segmen jaringan dan security group untuk menentukan batasan layanan.
Gunakan security group terpisah untuk lingkungan produksi dan pengujian
Gunakan security group berbeda untuk lingkungan produksi, pengujian, dan pengembangan agar aturan pengujian tidak memengaruhi layanan produksi.
Anda juga dapat menetapkan security group berbeda untuk beberapa lingkungan pengujian guna mengurangi interferensi di antara mereka.
Jangan tetapkan alamat IP publik ke sumber daya yang tidak memerlukan akses publik
Untuk meminimalkan eksposur publik, prioritaskan koneksi ke instance ECS menggunakan Workbench, Session Manager, atau jump server. Jika sebuah instance tidak memiliki alamat IP publik, Anda dapat menggunakan fitur port forwarding untuk mengakses layanannya. Untuk informasi selengkapnya, lihat Gunakan fitur port forwarding CLI Session Manager untuk mengakses instance tanpa alamat IP publik.
Dalam aplikasi terdistribusi, jangan tetapkan alamat IP publik ke instance ECS yang tidak menyediakan layanan publik. Jika beberapa server menyediakan layanan publik, kami merekomendasikan Anda menggunakan untuk mendistribusikan traffic dan menghindari single point of failure.
Jika instance ECS hanya memerlukan akses outbound ke internet, gunakan NAT gateway dan konfigurasikan aturan SNAT. Pendekatan ini mencegah eksposur layanan yang dapat terjadi saat Anda menetapkan alamat IP publik atau elastic IP address. Untuk informasi selengkapnya, lihat Buat dan kelola Entri SNAT.
Gunakan security group sebagai daftar putih
Perlakukan security group sebagai daftar putih. Artinya, secara default security group menolak semua akses, dan Anda hanya menambahkan aturan allow untuk port yang diperlukan dan sumber yang diotorisasi. Saat melakukan troubleshooting masalah produksi, jangan sementara menetapkan alamat IP publik atau mengasosiasikan elastic IP address karena hal ini dapat meningkatkan attack surface.
2. Konfigurasikan aturan security group
Saat mengonfigurasi aturan security group, buka hanya port yang dibutuhkan bisnis Anda dan batasi rentang alamat IP sumber sekecil mungkin.
Dalam VPC, satu aturan security group dapat mengontrol akses jaringan publik maupun internal.
Kebijakan default berbeda antara security group dasar dan advanced
Baik security group dasar maupun advanced secara default menolak semua lalu lintas inbound. Namun, kebijakan outbound default mereka berbeda: security group dasar mengizinkan semua lalu lintas outbound, sedangkan security group advanced menolaknya.
Konektivitas internal berbeda di berbagai security group dan tipe security group
Instance ECS dalam security group berbeda tidak dapat berkomunikasi satu sama lain melalui jaringan internal, meskipun milik akun yang sama. Secara default, instance dapat berkomunikasi dalam security group dasar yang sama tetapi terisolasi dalam security group advanced yang sama.
Tambahkan aturan security group berdasarkan prinsip least privilege
Misalnya, saat membuka port 22 pada instance Linux untuk login jarak jauh, izinkan akses hanya dari alamat IP tertentu.
PeringatanMengotorisasi 0.0.0.0/0 atau ::/0 mengizinkan akses dari semua alamat IP, konfigurasi berisiko tinggi. Gunakan ini hanya untuk layanan yang harus bersifat publik, dan buka hanya port yang diperlukan.
Konfigurasikan aturan dengan cakupan otorisasi seketat mungkin. Untuk informasi lebih lanjut tentang jenis objek otorisasi yang didukung oleh security group, lihat Aturan security group.
Gunakan prinsip least privilege untuk mengonfigurasi isolasi intra-group
Jika instance ECS dalam security group dasar tidak perlu berkomunikasi satu sama lain, ubah kebijakan akses internal grup tersebut agar mengisolasi mereka.
Pastikan tujuan aturan dalam satu security group konsisten
Atur aturan ke dalam beberapa security group berdasarkan tujuannya dan asosiasikan instance dengan security group yang relevan. Satu security group dengan terlalu banyak aturan akan meningkatkan kompleksitas manajemen.
Pilih objek otorisasi dengan hati-hati
Objek otorisasi untuk aturan security group dapat berupa alamat IP, security group lain, atau Blok CIDR.
Saat instance dalam security group berbeda perlu berkomunikasi melalui jaringan internal, berikan akses dengan mereferensikan ID security group. Metode ini lebih efisien daripada mengelola alamat IP atau Blok CIDR individual. Misalnya, jika tier web Anda menggunakan security group bernama
sg-webdan tier database Anda menggunakansg-database, Anda dapat menambahkan aturan kesg-databaseyang memberikan akses darisg-webke port MySQL (3306).Untuk akses jaringan internal, kami merekomendasikan Anda mengotorisasi security group sumber alih-alih Blok CIDR.
Port aplikasi umum
Banyak aplikasi berkomunikasi menggunakan port layanan standar. Untuk informasi selengkapnya, lihat Port umum.
3. Tinjau dan optimalkan aturan
Saat bisnis Anda berkembang, aturan security group yang ada mungkin menjadi usang. Tinjau dan sesuaikan secara berkala. Sebelum memodifikasi aturan di lingkungan produksi, klon security group tersebut dan verifikasi perubahan di lingkungan pengujian. Setelah memastikan aliran traffic berjalan dengan benar, terapkan perubahan ke lingkungan produksi untuk menghindari gangguan layanan.
Use cases
Kontrol lalu lintas inbound ke instance ECS
Lalu lintas inbound adalah traffic dari sumber eksternal ke instance ECS Anda. Secara default, security group menolak semua lalu lintas inbound, sehingga Anda hanya perlu menambahkan aturan untuk mengizinkan akses. Lihat kasus penggunaan berikut:
Kasus 1: Izinkan akses publik ke layanan web pada instance ECS
Kasus 2: Izinkan akses jarak jauh untuk pengguna tertentu ke instance ECS
Kasus 3: Konfigurasikan kebijakan keamanan untuk database pada instance ECS
Kasus 5: Aktifkan komunikasi internal antar instance dalam security group berbeda
Kontrol lalu lintas outbound dari instance ECS
Lalu lintas outbound adalah traffic dari instance ECS Anda ke sumber eksternal. Secara default, aturan outbound security group dasar mengizinkan semua akses. Anda dapat menambahkan aturan deny untuk membatasi akses instance ke sumber eksternal tertentu. Lihat kasus penggunaan berikut:
Kasus 1: Izinkan akses publik ke layanan web
Untuk website publik yang di-host pada instance ECS, buka hanya port TCP inbound 80 (HTTP) dan 443 (HTTPS). Tutup port layanan lainnya.
Tabel berikut menunjukkan contoh konfigurasi aturan security group ini.
Rule direction | Action | Priority | Protocol type | Port range | Authorization object |
inbound | Allow | 1 | Custom TCP | Port layanan:
| Source: 0.0.0.0/0 |
Jika Anda tidak dapat mengakses website setelah menambahkan aturan security group, periksa apakah port layanan berfungsi dengan benar. Untuk informasi selengkapnya, lihat Troubleshoot layanan yang tidak dapat diakses dari instance ECS.
Kasus 2: Izinkan akses jarak jauh untuk pengguna tertentu
Saat Anda perlu menghubungkan ke instance ECS secara jarak jauh, buka port login jarak jauh, seperti port TCP 22 (SSH) atau port SSH kustom, hanya untuk alamat IP administrator atau server tertentu guna mengurangi risiko serangan.
Tabel berikut menunjukkan contoh konfigurasi aturan security group ini.
Rule direction | Action | Priority | Protocol type | Port range | Authorization object |
inbound | Allow | 1 | Custom TCP |
| Source: 192.168.XX.XX Catatan Masukkan alamat IP publik atau Alamat IP pribadi pengguna atau server tertentu, tergantung metode koneksi. Anda dapat menggunakan website seperti whatismyip.com untuk menemukan alamat IP publik lokal Anda. |
Saat menggunakan Alibaba Cloud Workbench untuk menghubungkan ke instance secara jarak jauh, izinkan akses hanya dari objek otorisasi tertentu. Tabel berikut menunjukkan contoh aturan security group inbound.
Action | Priority | Protocol type | Port range | Authorization object |
Allow | 1 | Custom TCP |
|
|
Kasus 3: Konfigurasikan kebijakan keamanan database
Untuk layanan database, izinkan akses pada port tertentu hanya dari alamat IP tertentu atau dari security group yang berisi server aplikasi Anda. Hindari mengekspos database langsung ke internet publik.
Jika aturan inbound Anda mencakup aturan yang mengizinkan akses dari 0.0.0.0/0, periksa apakah akses publik diperlukan. Jika tidak, tambahkan aturan deny. Misalnya, karena port default MySQL 3306 seharusnya tidak diekspos ke internet publik, Anda dapat menambahkan aturan deny untuknya dan mengatur prioritasnya ke 100.
Tabel berikut menunjukkan contoh aturan security group untuk database umum yang menggunakan port default mereka.
Database type | Rule direction | Action | Priority | Protocol type | Port range | Authorization object |
MySQL | inbound | Allow | 1 | Custom TCP | Destination: 3306/3306 | Source: 172.16.XX.XX |
Oracle | inbound | Allow | 1 | Custom TCP | Destination: 1521/1521 | Source: 192.168.XX.XX |
MS SQL | inbound | Allow | 1 | Custom TCP | Destination: 1433/1433 | Source: 192.168.XX.XX/16 |
PostgreSQL | inbound | Allow | 1 | Custom TCP | Destination: 5432/5432 | Source: sg-bp1hv6wvmegs036**** |
Redis | inbound | Allow | 1 | Custom TCP | Destination: 6379/6379 | Source: 160998252992****/sg-bp174yoe2ib1sqj5**** |
Ganti alamat IP contoh, Blok CIDR, ID akun Alibaba Cloud, dan ID security group dengan nilai aktual Anda.
Kasus 4: Izinkan akses hanya untuk protokol tertentu
Untuk menguji konektivitas jaringan, izinkan traffic ICMP. Misalnya, Anda harus mengizinkan traffic ICMP sebelum dapat menjalankan perintah ping dari client. Tabel berikut menunjukkan contoh konfigurasi aturan security group ini.
Rule direction | Action | Priority | Protocol type | Port range | Authorization object |
inbound | Allow | 1 |
| Destination: -1/-1 | Alamat IP client Catatan Masukkan alamat IPv4 atau IPv6 berdasarkan lingkungan jaringan Anda. |
Kasus 5: Aktifkan komunikasi internal antar security group
Jika instance dalam security group berbeda tetapi dalam VPC yang sama perlu berkomunikasi, berikan akses dengan mengotorisasi security group sumber. Misalnya, untuk mengizinkan instance dalam security group A mengakses file pada instance dalam security group B melalui FTP, tambahkan aturan ke security group B yang mengotorisasi traffic dari security group A pada port FTP. Metode ini menghindari kebutuhan untuk mengelola alamat IP instance secara individual.
Security group saja tidak dapat mengaktifkan komunikasi internal antar instance dalam VPC berbeda.
Jika layanan Anda dapat dideploy dalam VPC yang sama, Anda dapat mengaktifkan komunikasi internal dalam VPC dengan mengubah VPC instance ECS.
Jika instance ECS Anda harus berada dalam VPC berbeda, Anda dapat menggunakan solusi seperti Koneksi peering VPC, PrivateLink, atau Cloud Enterprise Network. Untuk informasi selengkapnya, lihat Koneksi VPC.
Skenario 1: Security group dalam akun yang sama
Jika security group A dan security group B milik akun yang sama, tetapkan objek otorisasi ke ID security group sumber. Tabel berikut menunjukkan contoh konfigurasi aturan ini.
Rule direction
Action
Priority
Protocol type
Port range
Authorization object
inbound
Allow
1
Custom TCP
Destination: 21/21
Source: sg-bp1hv6wvmegs036****
CatatanGanti ID security group contoh dengan nilai aktual Anda.
Skenario 2: Security group dalam akun berbeda
Jika security group A dan security group B milik akun berbeda, tetapkan objek otorisasi ke ID akun Alibaba Cloud sumber dan ID security group.
Rule direction
Action
Priority
Protocol type
Port range
Authorization object
inbound
Allow
1
Custom TCP
Destination: 21/21
Source: 160998252992****/sg-bp174yoe2ib1sqj5****
CatatanGanti ID akun Alibaba Cloud dan ID security group contoh dengan nilai aktual Anda.
Kasus 6: Batasi akses ke website eksternal
Untuk mengizinkan instance hanya mengakses website tertentu, konfigurasikan aturan outbound sebagai daftar putih. Pertama, tolak semua lalu lintas outbound, lalu tambahkan aturan untuk mengizinkan akses hanya ke alamat IP website yang ditentukan.
Perhatikan hal berikut saat mengonfigurasi aturan security group ini:
Jika permintaan cocok dengan beberapa aturan, prioritas dan aksi aturan menentukan aturan mana yang berlaku. Sesi hanya dibuat jika aturan yang diterapkan adalah aturan allow.
Nilai prioritas yang lebih kecil menunjukkan prioritas yang lebih tinggi. Jika aturan memiliki prioritas yang sama, aturan deny didahulukan. Oleh karena itu, aturan yang menolak semua lalu lintas outbound harus memiliki prioritas lebih rendah (angka lebih besar) daripada aturan allow. Hal ini memastikan bahwa aturan allow untuk website tertentu dapat berlaku.
Tabel berikut menunjukkan contoh konfigurasi aturan security group ini.
Rule direction | Action | Priority | Protocol type | Port range | Authorization object |
outbound | Deny | 2 | All | Destination: -1/-1 | Destination: 0.0.0.0/0 |
outbound | Allow | 1 | Custom TCP | Destination: 80/80 | Destination: 47.96.XX.XX |
outbound | Allow | 1 | Custom TCP | Destination: 443/443 | Destination: 121.199.XX.XX |
Aturan ini mengizinkan instance dalam security group hanya mengakses 47.96.XX.XX pada port 80 dan 121.199.XX.XX pada port 443. Semua akses outbound lainnya ditolak.