Halaman ini menjelaskan cara mengonfigurasi host bastion di deployment yang terhubung ke Google Distributed Cloud Anda untuk memungkinkan engineer Google mengakses dan memecahkan masalah node di zona yang terhubung ke Distributed Cloud Anda melalui Secure Shell (SSH).
Google menyediakan kode sumber lengkap yang dapat Anda gunakan untuk membangun virtual machine host bastion yang disesuaikan berdasarkan persyaratan bisnis Anda.
Prasyarat
Bagian ini mencantumkan prasyarat untuk men-deploy solusi host bastion yang terhubung Distributed Cloud.
Aktifkan Persetujuan Akses
Fitur host bastion menggunakan fitur Persetujuan Akses dari Transparansi Akses untuk memungkinkan Google meminta akses ke data Anda. Anda harus mengaktifkan Transparansi Akses dan Access Approval di project Anda sebelum men-deploy virtual machine host bastion. Google Cloud Untuk mengetahui informasi selengkapnya, lihat halaman berikut:
Spesifikasi virtual machine
Solusi host bastion yang terhubung dengan Distributed Cloud memerlukan deployment OpenStack berukuran small yang setara dengan spesifikasi berikut:
- CPU: 1 vCPU
- RAM: 2 GB
- Disk: 20GB
Google merekomendasikan deployment virtual machine bastion host N+1 per Google Cloud region untuk meningkatkan keandalan.
Persyaratan jaringan
Solusi host bastion yang terhubung ke Distributed Cloud mengharuskan Anda mengonfigurasi sesi peering jaringan berikut untuk setiap mesin virtual host bastion:
- Arah utara. Menghubungkan virtual machine bastion host ke Internet. Memerlukan akses Internet dan harus mengizinkan koneksi di port 22 dari alamat IP tertentu yang disediakan Google sebagai bagian dari paket kode sumber dan image disk solusi host bastion.
- Menuju selatan. Menghubungkan virtual machine bastion host melalui port 22 ke zona yang terhubung Distributed Cloud yang sesuai di satu region Google Cloud .
- Pengelolaan. Menghubungkan mesin virtual bastion host ke jaringan lokal Anda untuk tujuan operasi dan pemeliharaan. Konfigurasi sesi peering ini sesuai dengan kebijakan keamanan organisasi Anda.
Praktik keamanan terbaik
Google sangat merekomendasikan agar Anda mengikuti praktik terbaik keamanan yang dijelaskan di bagian ini saat mengonfigurasi solusi host bastion pada deployment yang terhubung dengan Distributed Cloud selain kebijakan keamanan organisasi Anda:
- Ikuti aturan hak istimewa terendah dan pertahankan pemisahan tugas yang jelas untuk pengguna.
- Untuk semua akun pengguna selain Administrator, gunakan hanya autentikasi berbasis sertifikat; nonaktifkan autentikasi berbasis sandi dan akses root ke virtual machine bastion host.
- Menolak akses dari semua IP pada sesi peering northbound yang bukan bagian dari daftar alamat IP dukungan yang disediakan Google.
- Tutup semua port pada sesi peering southbound kecuali port 22 (SSH) dan izinkan hanya untuk alamat IP dalam daftar alamat IP dukungan yang disediakan Google.
- Selalu perbarui semua virtual machine host bastion. Google menyediakan paket kode sumber baru dengan setiap patch keamanan dan update versi.
- Konfigurasi solusi pemberitahuan dan audit yang memenuhi kebijakan keamanan organisasi Anda.
Mengaktifkan dukungan bastion host
Untuk mengaktifkan dukungan bastion host pada deployment Distributed Cloud yang terhubung, kirim permintaan.
Anda harus mengaktifkan dan mengonfigurasi dukungan host bastion satu per satu untuk setiap zona yang terhubung ke Distributed Cloud. Hal ini memungkinkan Anda men-deploy konfigurasi akses dan jaringan yang berbeda-beda yang paling sesuai dengan kebutuhan bisnis organisasi Anda untuk setiap zona yang terhubung ke Distributed Cloud.
Mendapatkan software bastion host
Paket software host bastion dikirimkan kepada Anda setelah Dukungan Google mengaktifkan fitur host bastion untuk deployment Google Distributed Cloud terhubung Anda. Paket berisi hal berikut:
- Kode sumber. Anda dapat menyesuaikan dan membuat image virtual machine host bastion sendiri berdasarkan persyaratan bisnis Anda.
- Dokumentasi. Dokumentasi tambahan untuk tugas seperti mengonfigurasi sertifikat.
Membangun image virtual machine bastion host
Bagian ini memberikan ringkasan langkah-langkah yang diperlukan untuk membuat image mesin virtual host bastion dari kode sumber yang disediakan oleh Google. Petunjuk lengkap diberikan
dalam file README yang disertakan dengan kode sumber.
Prasyarat
Anda memerlukan item berikut untuk membuat image virtual machine bastion host:
- Mesin yang menjalankan Debian 11.
- Image server cloud Debian terbaru.
- Software
qemu-img,qemu-system-x86_x64, dan GNUmtoolsyang diinstal di perangkat. - File bernama
host-user-key.pubyang berisi kunci SSH publik untuk login ke instance host bastion dan memulai sesihost-user. Kunci ini dapat digunakan untuk autentikasi langsung atau sebagai kunci penandatanganan certificate authority. Instance bastion host harus memercayai CA ini. - File bernama
admin-user-key.pubyang berisi kunci SSH publik untuk melakukan tugas administratif di instance host bastion target. Kunci ini dapat digunakan untuk autentikasi langsung atau sebagai kunci penandatanganan certificate authority. Instance bastion host harus memercayai CA ini. - File bernama
guest-user-key.pubyang berisi kunci penandatanganan certificate authority SSH publik yang disediakan oleh Google yang memungkinkan Dukungan Google melakukan autentikasi sebagaiguest-usersaat terhubung ke instance host bastion.
Bangun image mesin virtual
Ikuti petunjuk yang diberikan dalam file README yang disertakan dengan kode sumber untuk
mem-build image virtual machine bastion host dari kode sumber yang disediakan oleh Google. Contoh dalam panduan ini merujuk pada file gambar yang dihasilkan sebagai bastion-host.img.
Membangun paket HIBA
Bangun paket penginstalan Debian untuk lapisan software autentikasi Host Identity-Based Authorization for SSH (HIBA) sebagai berikut:
Instal dependensi yang diperlukan menggunakan perintah berikut:
sudo apt-get install autoconf autogen build-essential git libssl-dev libtool zlib1g-dev
Bangun paket penginstalan menggunakan perintah berikut:
./build-hiba.sh -j $(nproc) /tmp/hiba-build-workdir
Paket penginstalan disimpan di direktori /tmp/hiba-build-workdir dan diberi nama hiba_x.y-z_amd64.deb, dengan x, y, dan z menunjukkan nomor versi HIBA.
Buat konfigurasi cloud-init
Gunakan skrip generate-cloud-init.py untuk membuat konfigurasi cloud-init yang diperlukan.
Anda juga dapat membuat konfigurasi ini menggunakan alat Anda sendiri. Konfigurasi ini melakukan hal berikut:
- Buat akun pengguna yang diperlukan dalam image virtual machine bastion host dan konfigurasi akun tersebut dengan kunci SSH yang dijelaskan sebelumnya.
- Tambahkan skrip yang membatasi hak istimewa akun
guest-userhanya untuk bergabung ke sesi multiplexer terminal yang sudah dibuat. - Tambahkan skrip yang membuat dan mengelola sesi multiplexer terminal.
- Siapkan file konfigurasi HIBA.
Skrip generate-cloud-init.py memerlukan paket HIBA yang Anda buat sebelumnya, dan tiga file yang berisi kunci SSH yang diperlukan. Jalankan skrip sebagai berikut:
./generate-cloud-init.py \ --hiba-package="${WORK_DIR}/hiba_1.0-1_amd64.deb" \ --host-user-key="HOST_USER_KEY_FILE" \ --manager-user-key="ADMIN_USER_KEY_FILE" \ --guest-user-ca="GUEST_USER_KEY_FILE" \ "${WORK_DIR}/cloud-init/"
Ganti kode berikut:
HOST_USER_KEY_FILE: jalur dan nama lengkap filehost-user-key.pub.ADMIN_USER_KEY_FILE: jalur dan nama lengkap fileadmin-user-key.pub.GUEST_USER_KEY_FILE: jalur dan nama lengkap fileguest-user-key.pub.
Skrip akan menempatkan file cloud-init.img ke direktori cloud-init di dalam direktori kerja lokal Anda.
Terapkan konfigurasi cloud-init ke image virtual machine bastion host
Gunakan alat qemu-system-x86_64 untuk menerapkan konfigurasi cloud-init yang Anda buat sebelumnya ke file image virtual machine bastion host Anda sebagai berikut:
qemu-system-x86_64 \ -nographic \ -enable-kvm \ -smp 1 \ -m 1g \ -drive format=qcow2,index=0,file=${WORK_DIR}/bastion-host.img \ -drive format=raw,index=1,file=${WORK_DIR}/cloud-init/cloud-init.img \ -nic user,hostfwd=tcp::10022-:22
Jika perintah ini menampilkan error, Anda mungkin perlu mengubah ukuran disk di image mesin virtual host bastion.
Anda dapat memverifikasi bahwa konfigurasi telah berhasil diterapkan setelah Anda mem-booting virtual machine. Anda akan melihat output yang mirip dengan berikut ini di log auditd:
[ 52.659013] cloud-init[615]: Cloud-init v. 20.4.1 finished at Fri, 28 Apr 2023 18:53:55 +0000.
Anda juga dapat memeriksa akun pengguna dan konfigurasi sshd secara manual untuk memverifikasinya.
Mengimpor image virtual machine bastion host
Sebelum mengimpor image virtual machine bastion host yang telah dikonfigurasi sepenuhnya ke infrastruktur deployment, Anda harus membuat snapshot-nya menggunakan alat qemu-img sebagai berikut:
qemu-img snapshot -c installed bastion-image.img
Ikuti proses yang ditetapkan oleh organisasi Anda untuk mengimpor image mesin virtual host bastion ke infrastruktur deployment Anda.
Mengonfigurasi virtual machine bastion host
Ikuti langkah-langkah di bagian ini untuk mengonfigurasi virtual machine host bastion.
Mengonfigurasi akun pengguna yang diperlukan
Fitur host bastion Distributed Cloud yang terhubung memerlukan satu atau beberapa akun pengguna dalam setiap kategori berikut:
- Pengelolaan. Ini adalah akun administrator untuk virtual machine bastion host. Perangkat memiliki akses root.
- Pengguna host. Ini adalah akun engineer operasi. Dapat memulai dan mengelola sesi multiplexer terminal untuk Dukungan Google, tetapi tidak dapat memasukkan perintah apa pun ke dalam sesi tersebut.
- Pengguna tamu. Ini adalah akun engineer Dukungan Google. Hal ini dapat membuat koneksi SSH dalam sesi multiplexer terminal yang dibagikan dengan engineer operasi Anda di mesin virtual bastion host. Pengguna ini tidak memiliki hak istimewa lainnya.
- Pengguna gabungan. Akun ini membuat sesi multiplexer terminal di mesin virtual host bastion. Engineer operasi Anda dan engineer dukungan Google akan terhubung bersama ke sesi ini.
Mengonfigurasi sertifikat
Anda harus mengonfigurasi sertifikat yang memungkinkan akun yang dijelaskan di bagian sebelumnya
mengakses virtual machine host bastion. Paket software bastion host mencakup skrip bernama generate-cloud-init.py yang menghasilkan konfigurasi cloud-init yang diperlukan dengan akun, kunci SSH, dan sertifikat yang diperlukan untuk setiap akun.
Untuk mengetahui petunjuknya, lihat Membuat konfigurasi cloud-init.
Mengonfigurasi logging
Log host bastion tersedia secara real-time dan sesuai permintaan dari daemon audit.
Anda dapat mengelola konfigurasi logging melalui file auditd.conf. Anda
bertanggung jawab untuk merotasi dan mengekspor log dari virtual machine bastion host berdasarkan
persyaratan bisnis Anda. Anda juga harus menyediakan ruang disk yang cukup untuk menyimpannya di virtual machine.
Menguji konfigurasi Anda
Selesaikan langkah-langkah di bagian ini untuk menguji deployment virtual machine bastion host Anda, termasuk konektivitas dari kedua ujung, dan kontrol akses yang tepat untuk akun pengguna yang diperlukan. Sebaiknya Anda bekerja sama dengan Dukungan Google untuk melakukan pengujian langsung.
Menguji deployment Anda secara lokal
Pastikan Anda dapat membuat sesi SSH sebagai
host-userdengan virtual machine bastion host Anda. Jika gagal, periksa kunci dan sertifikat SSH Anda.Pastikan Anda dapat memulai sesi multiplexer terminal menggunakan perintah berikut:
./opt/create-shared-tmux-session
Pastikan deployment yang terhubung ke Distributed Cloud dapat dijangkau dari mesin virtual bastion host menggunakan perintah berikut:
ssh -vv bastion-user@TARGET_ADDRESS
Ganti
TARGET_ADDRESSdengan alamat IP target Distributed Cloud atau switch ToR.Permintaan akan ditolak oleh autentikasi SSH, tetapi permintaan autentikasi dan transport SSH harus tetap mencapai deployment yang terhubung ke Distributed Cloud Anda. Jika hal ini gagal, periksa konfigurasi firewall Anda.
Pastikan Transparansi Akses dan Access Approval telah diaktifkan di organisasi dan project target Anda seperti yang dijelaskan sebelumnya dalam panduan ini. Google Cloud
Menguji deployment Anda secara langsung dengan Dukungan Google
Setelah Anda berhasil menguji deployment host bastion secara lokal, hubungi Dukungan Google untuk menjadwalkan sesi pengujian langsung. Sebelum sesi dimulai, Dukungan Google akan mengirimkan permintaan Persetujuan Akses kepada Anda. Selama sesi pengujian langsung, Anda dan Google akan membahas hal berikut:
- Pembuatan dan persetujuan permintaan Persetujuan Akses.
- Alur kerja akses menyeluruh untuk deployment host bastion Anda.
- Log Persetujuan Akses dan Transparansi Akses.
- Cara memecahkan masalah skenario berikut:
- Google mencoba terhubung ke instance bastion host yang tidak ditentukan dalam permintaan Persetujuan Akses.
- Google mencoba terhubung ke instance bastion host saat Anda belum memulai sesi multiplexer terminal.
- Google mencoba terhubung ke instance host bastion setelah permintaan Persetujuan Akses yang sesuai ditolak atau dibatalkan.
- Anda memutuskan koneksi dari atau mengakhiri sesi multiplexer terminal.
Langkah berikutnya
- Men-deploy workload di Distributed Cloud terhubung
- Mengelola komputer
- Membuat dan mengelola cluster
- Membuat dan mengelola jaringan
- Membuat dan mengelola kumpulan node