Halaman ini menjelaskan cara menyiapkan dan menggunakan penerusan TCP Identity-Aware Proxy (IAP) dengan alamat IP atau nama host di lingkungan Google Cloud Google Cloud atau non-Google Cloud Google Cloud.
Ringkasan
Anda dapat menggunakan Google Cloud CLI untuk membuat tunnel ke resource menggunakan alamat IP pribadi atau nama host resource. Jika memiliki resource eksternal di lingkungan non-Google Cloud Google Cloud yang terhubung ke Google Cloud Google Cloud melalui Cloud Interconnect atau VPN, Anda dapat menggunakan penerusan TCP IAP dengan resource tersebut.
Sebelum memulai
Jika perlu membuat tunnel ke resource di luar Google Cloud Google Cloud, Anda harus mengonfigurasi konektivitas hybrid. Konektivitas hybrid diperlukan untuk menghubungkan resource non-Google Cloud eksternal Anda ke Google Cloud.Google Cloud Untuk mengetahui informasi selengkapnya, lihat dokumentasi Cloud Interconnect atau Cloud VPN.
Cloud Router Anda harus mengiklankan rentang IP IAP-TCP 35.235.240.0/20, sehingga tujuan mengirim traffic respons kembali melalui Cloud VPN atau Cloud Interconnect, bukan melalui internet. Jika tidak memiliki konfigurasi ini, Anda tidak dapat membuat tunnel ke resource di luar
project Anda Google Cloud .
Untuk mengonfigurasi Cloud Router agar mengiklankan rentang IP IAP-TCP 35.235.240.0/20, ikuti petunjuk di Mengiklankan rentang IP kustom.
Prosedur berikut memberikan contoh Google Cloud CLI untuk menyelesaikan tugas. Untuk mengetahui informasi tentang cara berinteraksi dengan grup tujuan menggunakan API, lihat Resource REST: projects.iap_tunnel.locations.destGroups.
Membuat grup tujuan tunnel
Saat mengonfigurasi tunnel, Anda menentukan grup tujuan tunnel yang akan digunakan untuk pemeriksaan izin. Grup tujuan tunnel mewakili resource yang memiliki batasan akses tunnel yang sama. Anda dapat membuat grup tujuan dalam jumlah berapa pun, masing-masing dengan rentang IP atau nama domain yang sepenuhnya memenuhi syarat (FQDN) dalam jumlah berapa pun. Grup tujuan dapat tumpang-tindih untuk fleksibilitas yang lebih besar.
Saat membuat grup tujuan, Anda harus menentukan region. Untuk mendapatkan hasil terbaik, region yang Anda tentukan harus cocok dengan lokasi resource tujuan. Misalnya, jika resource terhubung melalui VPN, Anda harus menggunakan region gateway VPN.
Untuk membuat grup tujuan, Anda harus memiliki izin iap.tunnelDestGroups.create, yang dapat Anda berikan melalui peran iap.tunnelDestGroupEditor. Untuk memberikan satu
peran, lihat Memberikan satu peran
dalam dokumentasi IAM.
Konsol
Buka halaman IAP dan pilih project jika belum dipilih.
Di tab SSH and TCP resources, klik Create destination group.
Masukkan nama untuk nama grup Anda. Nama grup hanya boleh berisi huruf kecil (a-z) dan tanda hubung (-).
Dari daftar dropdown, pilih region tempat grup tujuan akan dibuat.
Di bagian IP address, klik Add row, lalu masukkan alamat IP atau FQDN resource.
Rentang IP terdiri dari rentang yang dipisahkan koma menggunakan notasi CIDR, seperti
10.1.2.0/24,172.0.0.0/8.Daftar FQDN adalah daftar nama host yang dipisahkan koma, seperti
*.internal.company.com. Anda dapat menggunakan karakter pengganti dengan entri FQDN.Klik Create destination group.
gcloud
gcloud iap tcp dest-groups createYOUR_GROUP_NAME\ --region=REGION\ --ip-range-list=IP_RANGE_LIST\ --fqdn-list=FQDN_LIST
Ganti kode berikut:
YOUR_GROUP_NAME: nama grup Anda. Nama grup hanya boleh berisi huruf kecil (a-z) dan tanda hubung (-).REGION: region tempat grup tujuan akan dibuat, sepertius-central1.IP_RANGE_LIST: opsional. Daftar rentang IP, yang terdiri dari rentang yang dipisahkan koma menggunakan notasi CIDR, seperti10.1.2.0/24,172.0.0.0/8.FQDN_LIST: opsional. Daftar FQDN adalah daftar nama host yang dipisahkan koma, seperti*.internal.company.com. Jika entri FQDN memiliki awalan karakter pengganti, entri tersebut akan cocok dengan nama host yang memiliki akhiran yang ditentukan. Jika tidak, entri tersebut memerlukan kecocokan yang sama persis. Jika permintaan cocok dengan rentang IP atau FQDN, permintaan tersebut dianggap cocok.
Jika tidak yakin dengan grup yang sudah ada, jalankan perintah berikut untuk mencantumkan grup:
gcloud iap tcp dest-groups list \
--region=REGION
Mengelola grup tujuan tunnel
Anda dapat melihat detail grup tujuan, mengubah grup tujuan, dan menghapusnya.
Konsol
Buka halaman IAP dan klik tab SSH and TCP resources.
Untuk melihat detail grup tujuan, klik nama grup tujuan.
Untuk mengubah grup tujuan, pilih grup tujuan, lalu klik ikon pensil untuk membuka panel Edit destination group. Anda juga dapat menghapus grup tujuan dari panel ini.
Untuk menghapus grup tujuan, pilih grup tujuan, lalu klik ikon tempat sampah.
gcloud
Untuk mengetahui detail tentang cara mengelola grup tujuan menggunakan gcloud CLI, lihat perintah gcloud grup tujuan.
Mengonfigurasi izin tunnel
Untuk membuat tunnel, Anda harus memiliki izin iap.tunnelDestGroups.accessViaIAP pada grup tujuan yang relevan. Anda dapat memberikan izin melalui peran iap.tunnelResourceAccessor.
Untuk mengonfigurasi izin pada grup tujuan, Anda harus memiliki izin iap.tunnelDestGroups.setIamPolicy, yang dapat Anda berikan melalui peran iap.admin.
Konsol
Buka halaman IAP.
Di tab SSH and TCP resources, pilih grup tujuan yang izinnya ingin Anda konfigurasi.
Di panel yang terbuka, klik Add principal dan masukkan alamat email untuk pengguna.
Di bagian Assign roles, pilih peran yang akan ditetapkan ke akun utama.
Klik Save.
gcloud
gcloud iap tcp dest-groups add-iam-policy-binding \ --member=MEMBER \ --role=ROLE \ --dest-group=GROUP_NAME \ --region=REGION
Ganti kode berikut:
MEMBER: alamat email untuk pengguna, seperti
user:exampleuser@company.com.ROLE: peran IAP yang diperlukan,
roles/iap.tunnelResourceAccessor.GROUP_NAME: nama grup tujuan.
REGION: nama region, seperti
us-central1.
Memahami penggunaan tunnel
Ada tiga perintah gcloud CLI yang dapat Anda gunakan saat menggunakan IAP-TCP: start-iap-tunnel, ssh, dan scp.
Perintah IAP-TCP telah diupdate untuk mendukung tunneling berbasis IP dan FQDN. Untuk beralih ke alamat IP atau FQDN, lakukan hal berikut saat menggunakan perintah:
- Tentukan alamat IP atau FQDN, bukan nama instance.
- Gunakan
--region, bukan--zone. - Gunakan
--dest-groupuntuk menentukan grup tujuan yang akan digunakan. - Gunakan
--networkuntuk menentukan nama jaringan VPC yang akan digunakan.
Alamat IP yang Anda tentukan harus berupa alamat IP pribadi tujuan.
Anda tidak dapat menggunakan IAP-TCP dengan alamat IP publik. Jika Anda menggunakan FQDN, FQDN tersebut harus di-resolve ke alamat IP pribadi tujuan. Perhatikan bahwa resolusi nama dilakukan dari dalam jaringan VPC yang Anda tentukan, bukan dari jaringan klien. Misalnya, jika Anda mencoba membuat tunnel ke vm.corp.company.com, langkah yang mengonversi vm.corp.company.com ke alamat IP terjadi dalam konteks jaringan VPC.
Region yang Anda tentukan harus cocok dengan region grup tujuan.
Jaringan yang Anda tentukan harus cocok dengan nama jaringan VPC yang memiliki akses ke tujuan. Nama jaringan yang umum adalah default. Anda dapat melihat daftar nama jaringan di halaman jaringan VPC di konsol, atau Anda dapat mengambil daftar nama jaringan dengan menjalankan perintah berikut: Google Cloud
gcloud compute networks list --format='value(name)'
Contoh
Contoh berikut menggunakan contoh alamat IP 172.16.1.2. Setiap perintah juga dapat menggunakan FQDN (misalnya, example.internal.company.com) sebagai pengganti alamat IP.
Contoh SSH
Untuk memulai sesi SSH ke 172.16.1.2, jalankan perintah berikut:
gcloud compute ssh 172.16.1.2 \
--region=us-central1 \
--dest-group=DESTINATION_GROUP_NAME \
--network=default \
--tunnel-through-iap
Ganti DESTINATION_GROUP_NAME dengan nama grup tujuan.
Perhatikan bahwa --plain tersirat, sehingga tidak ada upaya untuk mengelola dan mengirim kunci SSH secara otomatis saat menggunakan alamat IP.
Jika Anda menerima error Permission denied (publickey), perintah tersebut tidak menemukan file yang berisi kunci SSH. Untuk mengatasi masalah ini, tambahkan jalur ke file yang berisi kunci pribadi SSH sebagai parameter untuk perintah SSH, seperti yang ditunjukkan dalam contoh berikut:
gcloud compute ssh 172.16.1.2 \
--region=us-central1 \
--dest-group=DESTINATION_GROUP_NAME \
--network=default \
--tunnel-through-iap \
-- -i ~/.ssh/google_compute_engine
Ganti DESTINATION_GROUP_NAME dengan nama grup tujuan.
Jika ingin login sebagai pengguna tertentu, gunakan format USER@IP, bukan hanya menentukan IP:
gcloud compute ssh user@172.16.1.2 \
--region=us-central1 \
--dest-group=DESTINATION_GROUP_NAME \
--network=default \
--tunnel-through-iap
Jika akun dilindungi sandi, Anda harus memasukkan sandi. Jika akun dilindungi oleh pasangan kunci SSH pribadi atau publik, Anda harus menentukannya menggunakan flag -- -i seperti yang ditentukan di atas.
Contoh tunnel
Untuk membuat tunnel ke port TCP lain, gunakan perintah start-iap-tunnel.
Untuk membuat tunnel dari localhost:8022 ke port 172.16.1.2:8085, jalankan perintah berikut:
gcloud compute start-iap-tunnel 172.16.1.2 8085 \
--local-host-port=localhost:8022 \
--region=us-central1 \
--dest-group=DESTINATION_GROUP_NAME \
--network=default
Perhatikan bahwa mesin tujuan harus memproses port 8085 dalam contoh ini.
Setelah membuat tunnel, Anda dapat menggunakan alat apa pun, seperti PuTTY, untuk membuat koneksi.
Contoh SCP
Untuk menyalin file ke 172.16.1.2 menggunakan SCP, jalankan perintah berikut:
gcloud compute scp file.txt 172.16.1.2:~/ \
--region=us-central1 \
--dest-group=DESTINATION_GROUP_NAME \
--network=default \
--tunnel-through-iap
Perhatikan bahwa --plain tersirat, sehingga tidak ada upaya untuk mengelola dan mengirim kunci SSH secara otomatis saat menggunakan alamat IP.
Contoh ProxyCommand SSH
Untuk menggunakan perintah sebagai ProxyCommand yang selalu membuat tunnel ke 172.16.1.2, tambahkan entri ke konfigurasi ~/.ssh/config atau yang setara, seperti yang ditunjukkan dalam contoh berikut:
Host example
ProxyCommand gcloud compute start-iap-tunnel 172.16.1.2 '%p' --region=us-central1 --dest-group=DESTINATION_GROUP_NAME --network=default --verbosity=warning
ProxyCommand akan berlaku saat Anda menjalankan perintah berikut: ssh example
Anda juga dapat menyiapkan ProxyCommand untuk menangani banyak nama host, seperti yang ditunjukkan dalam contoh berikut:
Host *.internal.company.com
ProxyCommand gcloud compute start-iap-tunnel '%h' '%p' --region=us-central1 --dest-group=DESTINATION_GROUP_NAME --network=default --verbosity=warning
ProxyCommand akan berlaku saat Anda menjalankan perintah berikut: ssh example.internal.company.com