Menggunakan Public NAT dengan Compute Engine
Halaman ini menunjukkan demonstrasi gateway Public NAT yang menyediakan layanan penafsiran alamat jaringan untuk instance VM Compute Engine. Sebelum Anda memulai, baca Ringkasan Public NAT.
Prasyarat
Anda harus melakukan hal berikut sebelum menyiapkan Public NAT.
Mendapatkan izin IAM
Peran roles/compute.networkAdmin memberi Anda izin untuk membuat gateway NAT di Cloud Router, memesan dan menetapkan alamat IP NAT, serta menentukan subnetwork (subnet) yang traffic-nya harus menggunakan penafsiran alamat jaringan oleh gateway NAT.
Menyiapkan Cloud de Confiance by S3NS
Sebelum memulai, siapkan item berikut di Cloud de Confiance.
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Contoh
Berikut adalah contoh end-to-end yang menunjukkan contoh gateway Public NAT dan contoh VM Compute Engine yang menggunakan gateway Public NAT.
Langkah 1: Buat jaringan dan subnet VPC
Jika sudah memiliki jaringan dan subnet, Anda dapat melewati langkah ini.
Konsol
Di konsol Cloud de Confiance , buka halaman Jaringan VPC.
Klik Buat jaringan VPC.
Masukkan Nama
custom-network1.Di bagian Subnets, tetapkan Subnet creation mode ke Custom.
Di bagian New subnet, masukkan Name dari
subnet-us-east-192.Di Region, pilih us-east4.
Masukkan rentang alamat IP
192.168.1.0/24.Klik Done, lalu klik Create.
gcloud
Buat jaringan VPC mode kustom baru di project Anda:
gcloud compute networks create custom-network1 \ --subnet-mode customTentukan awalan subnet untuk region pertama Anda. Dalam contoh ini, kita menetapkan
192.168.1.0/24ke regionus-east4.gcloud compute networks subnets create subnet-us-east-192 \ --network custom-network1 \ --region us-east4 \ --range 192.168.1.0/24
Terraform
Anda dapat menggunakan modul Terraform untuk membuat jaringan Virtual Private Cloud (VPC) dan subnet kustom.
Langkah 2: Buat instance VM tanpa alamat IP eksternal
Konsol
Di konsol Cloud de Confiance , buka halaman VM instances.
Klik Create instance.
Tentukan Name
nat-test-1untuk instance Anda.Tetapkan Region ke us-east4.
Tetapkan Zone ke us-east4-c.
Klik link Management, security, disks, networking, sole tenancy.
Klik tab Networking.
Di bagian Network interfaces, klik Edit untuk antarmuka default VM.
- Setel Network ke
custom-network1. - Tetapkan Subnetwork ke
subnet-us-east-192. - Tetapkan IP eksternal ke None.
- Klik Done.
- Setel Network ke
Untuk membuat dan memulai instance, klik Create.
gcloud
gcloud compute instances create nat-test-1 \
--image-family debian-9 \
--image-project debian-cloud \
--network custom-network1 \
--subnet subnet-us-east-192 \
--zone us-east4-c \
--no-addressTerraform
Anda dapat menggunakan resource Terraform untuk membuat instance VM.
Langkah 3: Buat aturan firewall yang mengizinkan koneksi SSH
Konsol
Di konsol Cloud de Confiance , buka halaman kebijakan firewall.
Klik Create firewall rule.
Masukkan Nama
allow-ssh.Tentukan Network
custom-network1.Tetapkan Direction of traffic ke Ingress.
Tetapkan Action on match ke Allow.
Tetapkan Targets ke All instances in the network.
Setel Source filter ke IPv4 ranges.
Tetapkan Source IP ranges ke
35.235.240.0/20.Tetapkan Protocols and ports ke Specified protocols and ports.
Pilih kotak centang tcp dan masukkan port
22.Klik Create.
gcloud
gcloud compute firewall-rules create allow-ssh \
--network custom-network1 \
--source-ranges 35.235.240.0/20 \
--allow tcp:22Terraform
Anda dapat menggunakan resource Terraform untuk membuat aturan firewall.
Langkah 4: Buat izin SSH IAP untuk instance pengujian Anda
Pada langkah berikutnya, gunakan Identity-Aware Proxy (IAP) untuk terhubung ke instance pengujian Anda.
Konsol
Di konsol Cloud de Confiance , buka halaman Identity-Aware Proxy.
Pilih tab SSH and TCP resources.
Untuk memperbarui izin anggota pada resource, centang kotak di samping All Tunnel Resources > us-east4-c > nat-test-1.
Di panel kanan, klik Add member.
Untuk memberi pengguna, grup, atau akun layanan akses ke resource, di kolom Anggota baru, tentukan alamat email mereka.
Jika Anda hanya menguji fitur ini, Anda dapat memasukkan alamat email Anda sendiri.
Untuk memberikan akses anggota ke resource melalui fitur penerusan TCP Cloud IAP, di daftar drop-down Role, pilih Cloud IAP > IAP-secured Tunnel User.
Klik Simpan.
gcloud
Perintah ini memberikan akses SSH menggunakan IAP ke semua instance VM di project Anda. Jika Anda ingin memberikan akses SSH menggunakan IAP ke VM individual, gunakan petunjuk konsol Cloud de Confiance .
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=MEMBER_INFO \
--role=roles/iap.tunnelResourceAccessorGanti kode berikut:
PROJECT_ID: project ID AndaMEMBER_INFO: daftar pasangantype:emailanggota yang dipisahkan koma. Contoh:- Untuk pengguna perorangan:
user:test-user@example.com - Untuk grup:
group:admins@example.com - Untuk akun layanan:
serviceAccount:test123@example.domain.com
- Untuk pengguna perorangan:
Terraform
Anda dapat menggunakan resource Terraform untuk membuat izin SSH IAP bagi instance pengujian Anda.
Langkah 5: Login ke nat-test-1 dan konfirmasi bahwa VM tersebut tidak dapat menjangkau internet
Konsol
Di konsol Cloud de Confiance , buka halaman VM instances.
Untuk
nat-test-1, di kolom Connect, klik panah drop-down SSH, lalu pilih Open in browser window.Di command prompt VM, masukkan
curl example.com, lalu tekan Enter.Anda tidak akan mendapatkan hasil apa pun. Jika ya, Anda mungkin telah membuat
nat-test-1dengan alamat IP eksternal, atau ada masalah lain. Untuk memecahkan masalah, lihat VM dapat menjangkau internet secara tidak terduga tanpa Cloud NAT.Untuk mengakhiri perintah, Anda mungkin harus memasukkan
Ctrl+C.
gcloud
Tambahkan kunci SSH Compute Engine ke host lokal Anda:
ssh-add ~/.ssh/google_compute_engine
Hubungkan ke
nat-test-1dan jalankan perintah:gcloud compute ssh nat-test-1 \ --zone us-east4-c \ --command "curl example.com" \ --tunnel-through-iapAnda tidak akan mendapatkan hasil apa pun. Jika demikian, Anda mungkin telah membuat
nat-test-1dengan alamat IP eksternal, atau mungkin ada masalah lain. Untuk memecahkan masalah, lihat VM dapat mengakses internet secara tidak terduga tanpa Cloud NAT.Untuk mengakhiri perintah, Anda mungkin harus memasukkan
Ctrl+C.
Langkah 6: Buat konfigurasi NAT menggunakan Cloud Router
Anda harus membuat Cloud Router di region yang sama dengan instance yang menggunakan Public NAT. Cloud Router hanya digunakan untuk menempatkan informasi NAT ke VM. Alamat ini tidak digunakan sebagai bagian dari gateway NAT yang sebenarnya.
Dengan konfigurasi ini, semua instance di region tersebut dapat menggunakan NAT Publik untuk semua rentang IP primer dan alias. Cloud Router juga otomatis mengalokasikan alamat IP eksternal untuk gateway NAT. Untuk mengetahui opsi lainnya, lihat dokumentasi Google Cloud CLI.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud NAT.
Klik Mulai atau Create Cloud NAT gateway.
Masukkan Gateway name
nat-config.Tetapkan VPC network ke
custom-network1.Tetapkan Region ke us-east4.
Di bagian Cloud Router, pilih Create new router.
- Masukkan Nama
nat-router. - Klik Create.
- Masukkan Nama
Klik Create.
gcloud
Membuat cloud router
gcloud compute routers create nat-router \ --network custom-network1 \ --region us-east4Tambahkan konfigurasi ke router:
gcloud compute routers nats create nat-config \ --router-region us-east4 \ --router nat-router \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
Terraform
Anda dapat menggunakan resource Terraform untuk membuat Cloud Router.
Anda dapat menggunakan modul Terraform untuk membuat konfigurasi NAT.
Langkah 7: Coba hubungkan ke internet lagi
Mungkin diperlukan waktu hingga tiga menit agar konfigurasi NAT diterapkan ke VM, jadi tunggu minimal satu menit sebelum mencoba mengakses internet lagi.
Konsol
Di konsol Cloud de Confiance , buka halaman VM instances.
Untuk
nat-test-1, di kolom Connect, klik panah drop-down SSH, lalu pilih Open in browser window.Di command prompt VM, masukkan
curl example.com, lalu tekan Enter.
gcloud
Hubungkan ke nat-test-1 dan jalankan perintah:
gcloud compute ssh nat-test-1 \
--zone us-east4-c \
--command "curl example.com" \
--tunnel-through-iap
Anda akan melihat output yang berisi konten berikut:
<html>
<head>
<title>Example Domain</title>
...
...
...
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is established to be used for illustrative examples in documents. You can use this
domain in examples without prior coordination or asking for permission.</p>
<p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>