Blog

Sử dụng Bastion Host trong AWS

Sử dụng Bastion Host trong AWS

1. Giới thiệu

Bastion Host là kỹ thuật giúp ta kết nối SSH một cách bảo mật vào các server nằm trong private subnet không có public IP.

Bối cảnh là bạn có private subnet chứa các private server, các private server này không thể truy cập từ ngoài internet và chúng cũng không có public IP. Bạn cần một phương pháp để kết nối SSH vào các server đó một cách bảo mật nhất.

Một trong những cách làm là sử dụng Bastion Host, bastion host là một server nằm trong public subnet, nhận kết nối SSH từ bên ngoài và làm trung gian kết nối với các server trong private subnet:

Bastion Host trong AWS

2. Tạo Bastion Host trong public subnet và private instace trong private subnet

Xem thêm về cách tạo public subnet và private subnet tại https://blog.daovanhung.com/post/tao-vpc-va-subnetting-trong-aws

2.1. Tạo Bastion Host trong public subnet

  • Bastion Host này sẽ nằm trong public subnet và có public IP:
Bastion host trong public subnet
  • Bastion Host phải cho phép kết nối SSH từ IP của máy muốn kết nối tới (để cho đơn giản mình dùng 0.0.0.0/0 là khắp nơi ngoài internet, bạn có thể thay thế bằng dải IP của máy bạn hoặc của công ty):
Tạo Bastion Host trong public subnet

Bạn cũng cần phải chú ý tới cấu hình cho Network ACL (xem thêm ở bài https://blog.daovanhung.com/post/tao-vpc-va-subnetting-trong-aws#2.5.-Tạo-Network-Access-Control-List-(Network-ACL)-cho-subnet)

2.2. Tạo private instance trong private subnet

  • Private Instance mình tạo sẽ không có public IP (chỉ có private IP) và không được kết nối từ internet:
Tạo private instance trong private subnet
  • Private Instance phải cho phép kết nối SSH từ và chỉ từ Bastion Host (IP mình khoanh đỏ là IP của Bastion Host):
Tạo private instance với bastion host

3. Kết nối tới private instance từ local

Từ local, để kết nối tới bastion host hay private instance, bạn cần private key của chúng, private key là pem file bạn tải về khi tạo EC2 instance.

Vì thế bastion host muốn kết nối SSH tới private instance thì bastion host cần phải có private key của private instance. Ta sẽ không lưu trữ private key của private instance trên bastion host mà sẽ dùng kỹ thuật ssh agent forwarding.

SSH agent forwarding giúp chúng ta kết nối SSH tới private instace thông qua bastion host mà không cần phải đặt private key lên bastion host.

Giả sử private key của mình là hungdv.pem file: 

3.1. Ở local máy bạn

Những câu lệnh dưới đây mình chạy trên Mac:

  • Thêm pem file vào session ssh:
$ ssh-add -K ~/.ssh/hungdv.pem
Identity added: /.ssh/hungdv.pem (/.ssh/hungdv.pem)

Ruby

  • Kiểm tra xem đã thêm thành công chưa:
$ ssh-add -L
ssh-rsa abcxyz /.ssh/hungdv.pem

Ruby

  • Kết nối tới bastion host và mang theo pem file:
$ ssh -A ec2-user@52.68.4.175
Last login: Tue Mar  2 14:38:12 2021 from ...

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-31-5-239 ~]$

Ruby

3.2. Ở bastion host

Những câu lệnh dưới đây mình chạy trên linux (vì bastion host của mình là linux)

  • Kiểm tra xem private key có được mang lên từ local hay không:
[ec2-user@ip-172-31-5-239 ~]$ ssh-add -L
error fetching identities for protocol 1: agent refused operation
ssh-rsa abcxyz /.ssh/hungdv.pem
[ec2-user@ip-172-31-5-239 ~]$

Ruby

Dòng báo lỗi error fetching identities for protocol 1: agent refused operation bạn có thể bỏ qua.

  • Kết nối tới private instance từ bastion host:
[ec2-user@ip-172-31-5-239 ~]$ ssh ec2-user@172.31.17.29
Last login: Tue Mar  2 14:42:28 2021 from ip-172-31-5-239.ap-northeast-1.compute.internal

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-31-17-29 ~]$

Ruby

Như bạn thấy, ta không cần phải tạo public IP cho private subnet cũng không cần mở cổng 22 cho internet mà vẫn có thể kết nối tới nó nhờ sử dụng Bastion host.

4. Một số lời khuyên khi sử dụng Bastion Host

  • Bastion Host là kỹ thuật chỉ sử dụng với kết nối SSH nên không cài đặt những thứ khác trên bastion host.
  • Không đặt private key trên bastion host mà nên sử dụng ssh agent forwarding.
  • Chú ý chịu tải cho bastion host.

Trên đây mình đã trình bày giải pháp sử dụng Bastion host để kết nối tới private server trong private subnet.

Thay vì sử dụng bastion host, bạn nên sử dụng system manager trong AWS. Với việc sử dụng system manager, bạn vẫn có thể kết nối tới private server mà không cần phải tạo server nằm giữa như bastion host, không cần mở cổng 22, cũng không cần phải quản lý private key.

Nguồn: Internet

>> Đọc thêm:

KHOÁ HỌC TRUY VẤN VÀ THAO TÁC DỮ LIỆU SQL TỪ CƠ BẢN ĐẾN NÂNG CAO

KHÓA HỌC DATA WAREHOUSE : TỔNG HỢP, CHUẨN HÓA VÀ XÂY DỰNG KHO DỮ LIỆU TRONG DOANH NGHIỆP

KHÓA HỌC DATA MODEL – THIẾT KẾ MÔ HÌNH DỮ LIỆU TRONG DOANH NGHIỆP

LỘ TRÌNH TRỞ THÀNH DATA ENGINEER CHO NGƯỜI MỚI BẮT ĐẦU

Leave a Reply

Your email address will not be published. Required fields are marked *

Data Pola Mahjong Ways Terhadap Frekuensi Scatter yang Bisa Jadi Acuan Dinamika Tempo Permainan Terhadap Probabilitas Dan Pengambilan Keputusan Mengenal Pola Olympus Gate Tanpa Banyak Teori Efektivitas Keputusan Bermain Berdasarkan Jejak Statistik Pola Setiap Sesi Adaptasi Strategi Pemain Menghadapi Pergeseran Ritma Perilaku Elemen Digital Dinamika Distribusi Simbol Mengukur Potensi Siklus Pola Putaran Yang Makin Menarik Evaluasi Pergeseran Algoritma RNG Membentuk Peluang Putaran Persentase Teoritis Kajian Perilaku Kompetitif Pemain yang Membuat Putaran Berulang Membentuk Momentum Transisi Panduan Pemula Masuk Dunia Kasino Online Terbaru Setelah Update Pendekatan Statistik dalam Sesi Bermain Kasino Online Merespons Perubahan Formasi Reel Analisis Kemunculan Multiplier Sweet Bonanza Melalui Pendekatan Ritme Dinamis Starlight Princess Sajikan Scatter Ketika Fenomena Pola yang Sering Berubah-ubah Formasi Black Scatter Fitur Mahjong Wins 3 Mengukur Potensi Kemenangan Besar Pengelolaan Ritme Reel Membuka Peluang Strategis Dalam Meningkatkan Efektivitas Keputusan Pemain Menilai Efektivitas Kasino Online Terhadap Responsivitas Fitur Putaran Otomatis Mahjong Ways Evolusi Visual Integrasi Animasi Tradisional ke Distribusi Winrate Stabil Mengenal Pola Kartu Baccarat Kasino Online Tanpa Banyak Teori Analisis Pengaruh Ritme Pola Gates Of Olympus Terhadap Peluang Turunnya Multiplier Mengukur Efektivitas RNG Mahjong Wins Dalam Membaca Pergeseran Algoritma Cai Shen Wins Yang Menawarkan Hujan Koin Beri Dampak Terhadap Tingkat Retensi Pengguna Dinamika Pergeseran Simbol Starlight Princess Saat Tempo Mulai Dipercepat Secara Berkala Mengenal Black Scatter Mahjong Wins 3 Tanpa Pola Ribet Panduan Visual Membaca Pergerakan Formasi Mahjong Ways Tanpa Harus Bergantung Pada Teori Rumit Pemetaan Pola Dinamis dalam Membaca Perubahan Struktur Interaksi Digital Strategi Mengelola Momentum Taruhan Menggunakan Fitur Putaran Otomatis Yang Lebih Stabil Black Scatter RTP Yang Menawarkan Hasil Optimal Serta Peluang Jangka Panjang Distribusi Probabilitas Perkembangan Teknologi Bawa Baccarat ke Algoritma Sistem Otomatis Evaluasi Efektivitas Interaksi Digital Kemunculan Black Scatter Secara Beruntun Mengenal Pola Gold Scatter Starlight Princess Tanpa Banyak Teori Transformasi Mekanisme Sistem Dalam Stabilitas Persentase Peluang Kemenangan Pemain bujangjp slotsensa slot88 slot4d slot4d slot4d sv388 slot88 suhubet demo slot slot4d demo slot https://fabritec.pe/asesor.php suhubet bujangjp https://kibf.pk/ slotsensa buku303 slot4d sbobet slot gacor slot gacor slot gacor totogacor slot thailand https://www.jms.ac.in/admission-procedure/ slot gacor slot luar negeri slot gacor 4d totogacor slotsensa slot gacor slot gacor slotsensa https://adibintanpermata.com/ slot dana slot dana https://united-mgroup.com/ https://cliffcrestinn.com/ slot resmi demo slot totogacor totogacor demo slot slot 4d totogacor totogacor demo slot totogacor slot thailand totogacor bujangjp situs gacor 4D situs gacor Situs Gacor 4D Thailand Situs Gacor 4D SLOT4D bujangjp