Beberapa grup keamanan EC2 - permisif atau restriktif?

27

Apa yang terjadi ketika saya menetapkan beberapa grup keamanan ke sebuah instance? Apakah permisif dalam arti bahwa lalu lintas diizinkan masuk jika salah satu dari kelompok keamanan mengizinkannya. ATAU apakah ini membatasi dalam arti bahwa setiap kelompok keamanan harus mengizinkan lalu lintas masuk untuk dilewati?

Misalnya, katakan saya memiliki kelas instance yang hanya akan berbicara dengan instance lain di akun yang sama. Saya juga memiliki kelas instance yang hanya akan menerima lalu lintas melalui HTTP (port 80).

Apakah mungkin untuk membatasi akses ke instance internal dan hanya melalui HTTP dengan membuat dan menerapkan dua grup keamanan:

  1. Grup keamanan "internal". Izinkan semua lalu lintas masuk dari anggota lain dari grup keamanan itu di semua port untuk semua transport (TCP, UDP, ICMP)
  2. Buat grup keamanan "http". Izinkan semua lalu lintas ke port 80 melalui TCP dari sumber apa pun.

ATAU apakah saya terpaksa membuat grup keamanan tunggal yang memungkinkan lalu lintas dari port 80 di mana sumbernya sendiri?

SFun28
sumber

Jawaban:

5

Jika sebuah instance memiliki beberapa grup keamanan, ia memiliki jumlah semua aturan dalam berbagai grup.

Misalnya, katakan saya memiliki kelas instance yang hanya akan berbicara dengan instance lain di akun yang sama. Saya juga memiliki kelas instance yang hanya akan menerima lalu lintas melalui http (port 80).

Ini adalah situasi yang sempurna untuk AWS Virtual Private Cloud. Masukkan instance internal dalam subnet pribadi, dan instance yang menghadap publik dalam subnet publik.

ceejayoz
sumber
ceejayoz - Jadi ini kasus "restriktif"? Berarti solusi dua kelompok keamanan akan bekerja? Setuju tentang solusi VPC; contoh saya lebih untuk memahami cara kerja beberapa grup. Di mana Anda menemukan jawabannya?
SFun28
Anda ingin satu grup keamanan untuk instance internal, dan lainnya untuk instance publik. Menambahkan grup 80: 0.0.0.0/0 yang menghadap publik ke instance internal akan membuatnya tersedia untuk internet publik.
ceejayoz
1
Untuk menjadi sangat jelas, Anda mengatakan bahwa lalu lintas dibiarkan masuk jika ada kelompok keamanan individu yang mengizinkannya? Saya terlempar oleh komentar Anda tentang "jumlah semua aturan" karena ketika saya memikirkan jumlah, saya berpikir DAN bukannya ATAU.
SFun28
2
Ya, jika ada grup yang menerapkan instance memungkinkan, itu diizinkan. Aturan grup ORed bersama, bukan ANDed.
ceejayoz
7
mengapa orang tidak bisa hanya menjawab pertanyaan yang diajukan alih-alih menyisipkan ide mereka tentang apa yang harus dilakukan. Jika Anda akan melakukannya, paling tidak jawablah pertanyaan dengan benar terlebih dahulu. Astaga
Bill Rosmus
28

Permisif.

Menurut AWS di sini: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules

Jika ada lebih dari satu aturan untuk port tertentu, kami menerapkan aturan yang paling permisif. Misalnya, jika Anda memiliki aturan yang memungkinkan akses ke port TCP 22 (SSH) dari alamat IP 203.0.113.1 dan aturan lain yang memungkinkan akses ke port TCP 22 dari semua orang, semua orang memiliki akses ke port TCP 22.

euphoria83
sumber
3

Inilah tanggapan dari dukungan dokumentasi AWS. Mereka mengatakan akan memperbarui dokumentasi:

Saya menemukan beberapa posting forum diskusi yang membahas masalah serupa dengan aturan yang saling bertentangan dalam satu atau beberapa grup keamanan:

https://forums.aws.amazon.com/thread.jspa?messageID=221768

https://forums.aws.amazon.com/thread.jspa?messageID=349244吼

Ketika beberapa grup keamanan diterapkan pada instance, aturan digabungkan untuk membuat satu set besar aturan. Di EC2, aturan grup keamanan hanya diizinkan, dengan kata lain, Anda tidak bisa menambahkan aturan DENY. Artinya, aturan yang paling permisif akan selalu berlaku. Misalnya, jika Anda memiliki grup keamanan yang memungkinkan akses ke port 22 dari alamat IP 10.10.10.10, dan grup keamanan lain yang memungkinkan akses ke port 22 dari semua orang, semua orang akan memiliki akses ke port 22 pada instance.

SFun28
sumber
0

Saat Anda menentukan grup keamanan sebagai sumber atau tujuan untuk aturan, aturan tersebut memengaruhi semua instance yang terkait dengan grup keamanan. Lalu lintas masuk diizinkan berdasarkan alamat IP pribadi dari instance yang terkait dengan grup keamanan sumber (dan bukan IP publik atau alamat IP elastis). Untuk informasi lebih lanjut tentang alamat IP, lihat Amazon EC2 Instance IP Addressing. Jika aturan grup keamanan Anda merujuk grup keamanan di VPC peer, dan grup keamanan referensi atau koneksi peeling VPC dihapus, aturan ditandai sebagai basi. Untuk informasi lebih lanjut, lihat Bekerja dengan Aturan Grup Keamanan Basi di Panduan Vering Amazon VPC.

Jika ada lebih dari satu aturan untuk port tertentu, kami menerapkan aturan yang paling permisif. Misalnya, jika Anda memiliki aturan yang memungkinkan akses ke port TCP 22 (SSH) dari alamat IP 203.0.113.1 dan aturan lain yang memungkinkan akses ke port TCP 22 dari semua orang, semua orang memiliki akses ke port TCP 22.

Saat Anda mengaitkan beberapa grup keamanan dengan instance, aturan dari masing-masing grup keamanan dikumpulkan secara efektif untuk membuat satu set aturan. Kami menggunakan serangkaian aturan ini untuk menentukan apakah akan mengizinkan akses.

Perhatian Karena Anda dapat menetapkan beberapa grup keamanan ke sebuah instance, sebuah instance dapat memiliki ratusan aturan yang berlaku. Ini dapat menyebabkan masalah saat Anda mengakses instance. Karena itu, kami menyarankan Anda untuk menyingkat peraturan Anda sebanyak mungkin.

pengguna377934
sumber