Anda dapat menetapkan alamat IP eksternal statis ke instance virtual machine (VM) dan bare metal. Anda juga dapat mengubah, mencantumkan, dan merilis alamat IP statis untuk instance Anda. Untuk mencadangkan alamat IP eksternal statis, lihat Mencadangkan alamat IP eksternal statis.
Alamat IP eksternal dapat bersifat statis atau sementara. Jika instance memerlukan alamat IP eksternal tetap yang tidak berubah, lakukan hal berikut:
- Dapatkan alamat IP eksternal statis. Anda dapat mencadangkan alamat IP eksternal baru atau mempromosikan alamat IP eksternal sementara yang sudah ada.
- Tetapkan alamat IP yang dicadangkan ke instance yang ada, atau tetapkan saat membuat instance baru.
Jika Anda memerlukan alamat IP statis di jaringan Compute Engine internal, lihat Mencadangkan alamat IP internal statis.
Untuk mengetahui informasi tentang mencadangkan alamat IP eksternal statis atau membuat alamat IP eksternal global, lihat Mencadangkan alamat IP eksternal statis.
Sebelum memulai
- Baca tentang alamat IP.
- Baca kuota dan batas untuk alamat IP eksternal statis.
- Baca tentang harga alamat IP eksternal.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan region dan zona default.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengonfigurasi dan mengelola alamat IP statis, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
-
Untuk membuat dan memperbarui instance:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) -
Untuk menetapkan batasan kebijakan bagi organisasi:
Administrator Kebijakan Organisasi (
roles/orgpolicy.policyAdmin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk mengonfigurasi dan mengelola alamat IP statis. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengonfigurasi dan mengelola alamat IP statis:
-
compute.instances.update -
compute.instances.updateNetworkInterface -
compute.instances.addAccessConfig -
compute.instances.deleteAccessConfig -
compute.networks.list -
compute.subnetworks.use -
compute.subnetworks.list -
Untuk membuat instance:
compute.instances.createpada project- Untuk menggunakan image kustom guna membuat VM:
compute.images.useReadOnlypada image - Untuk menggunakan snapshot guna membuat VM:
compute.snapshots.useReadOnlypada snapshot - Untuk menggunakan template instance guna membuat VM:
compute.instanceTemplates.useReadOnlydi template instance - Untuk menetapkan jaringan lama ke VM:
compute.networks.usepada project - Untuk menentukan alamat IP statis untuk VM:
compute.addresses.usedi project - Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIpdi project - Untuk menentukan subnet bagi VM:
compute.subnetworks.usepada project atau pada subnet yang dipilih - Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIpdi project atau di subnet yang dipilih - Untuk menetapkan metadata instance VM untuk VM:
compute.instances.setMetadatadi project - Untuk menyetel tag untuk VM:
compute.instances.setTagsdi VM - Untuk menyetel label VM:
compute.instances.setLabelsdi VM - Untuk menyetel akun layanan yang akan digunakan VM:
compute.instances.setServiceAccountdi VM - Untuk membuat disk baru untuk VM:
compute.disks.createdi project - Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis:
compute.disks.usepada disk - Untuk memasang disk yang ada dalam mode hanya baca:
compute.disks.useReadOnlypada disk
-
Untuk mengedit kebijakan organisasi:
-
orgpolicy.policy.get -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.update
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Batasan
Hanya satu resource dalam satu waktu yang dapat menggunakan alamat IP eksternal statis.
Setiap instance komputasi dapat memiliki beberapa antarmuka jaringan, dan setiap antarmuka dapat memiliki alamat IP berikut yang ditetapkan sesuai dengan jenis stack-nya:
- Antarmuka khusus IPv4:
- Alamat IPv4 internal (wajib)
- Alamat IPv4 eksternal (opsional)
- Antarmuka stack ganda (IPv4 dan IPv6):
- Alamat IPv4 internal (wajib)
- Alamat IPv4 eksternal (opsional)
- Rentang alamat IPv6
/96, baik internal maupun eksternal, tetapi tidak keduanya (wajib)
- Antarmuka khusus IPv6:
- Rentang alamat IPv6
/96, baik internal maupun eksternal, tetapi tidak keduanya (wajib)
- Rentang alamat IPv6
- Antarmuka khusus IPv4:
Anda tidak dapat membatalkan penetapan atau mengubah alamat IPv6 eksternal instance komputasi dengan antarmuka jaringan khusus IPv6. Namun, Anda dapat mempromosikan alamat IP eksternal sementara dari sebuah resource menjadi alamat IP eksternal statis, sehingga alamat tersebut tetap dipertahankan bahkan setelah resource dihapus.
Anda tidak dapat mengubah nama alamat IP statis.
Catatan: Antarmuka jaringan dapat menerima traffic dari beberapa
aturan penerusan, yang mungkin menyalurkan alamat IP eksternal lainnya. Sejumlah
alamat IP eksternal dapat mereferensikan antarmuka jaringan melalui
aturan penerusan ini, tetapi setiap antarmuka jaringan hanya dapat ditetapkan satu
alamat IPv4 eksternal dan satu rentang alamat IPv6 /96 eksternal.
Untuk mengetahui informasi selengkapnya tentang aturan penerusan dan load balancing, baca dokumentasi load balancing.
Melihat alamat IP eksternal statis yang tersedia
Untuk mencantumkan alamat IP eksternal statis yang telah dicadangkan untuk project Anda, ikuti langkah-langkah berikut.
Konsol
Di konsol Google Cloud , buka halaman IP addresses.
Klik Alamat IP eksternal.
gcloud
Gunakan perintah gcloud compute addresses list:
Untuk menampilkan semua alamat IP, gunakan perintah berikut:
gcloud compute addresses list
Untuk menampilkan daftar semua alamat IP global, gunakan perintah berikut:
gcloud compute addresses list --global
Untuk menampilkan daftar semua alamat IP regional di region tertentu, gunakan perintah berikut:
gcloud compute addresses list \ --regions=REGIONGanti
REGIONdengan region yang alamatnya ingin Anda cantumkan. Anda dapat mencantumkan alamat beberapa region dengan menentukan nama region yang dipisahkan koma:gcloud compute addresses list \ --regions=REGION1,REGION2,..REGION_n_
API
Untuk mencantumkan alamat IPv4 atau IPv6 regional, panggil metode
addresses.list:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Ganti kode berikut:
PROJECT_ID: project ID untuk permintaan iniREGION: nama region untuk permintaan ini
Untuk menampilkan daftar semua alamat di semua region, panggil metode
addresses.aggregatedList:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
Untuk mencantumkan alamat IPv4 atau IPv6 global, panggil metode
globalAddresses.list:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
Ganti kode berikut:
PROJECT_ID: project ID untuk permintaan ini
Go
Java
Python
Mengonfigurasi alamat IP eksternal statis
Bagian berikut menjelaskan cara mengonfigurasi alamat IP eksternal statis untuk instance Anda.
Membuat instance yang menggunakan alamat IP eksternal statis
Setelah mencadangkan alamat IP eksternal statis, Anda dapat menetapkannya ke instance.
Konsol
Di konsol Google Cloud , buka halaman Create an instance.
Untuk menetapkan alamat IP eksternal statis ke instance, lakukan hal berikut:
Di menu navigasi, klik Networking.
Di bagian Network interfaces, tentukan antarmuka jaringan yang Anda inginkan untuk instance menggunakan opsi berikut:
Untuk menambahkan antarmuka jaringan, klik Add a network interface. Kemudian, dalam daftar Network, pilih jaringan.
Untuk menghapus antarmuka jaringan, klik Hapus.
Pilih salah satu opsi berikut:
Untuk menetapkan alamat IPv4 eksternal statis, lakukan hal berikut:
- Perluas antarmuka jaringan.
- Pilih alamat IP dari daftar External IPv4 address.
Untuk menetapkan alamat IPv6 eksternal statis, lakukan hal berikut:
- Luaskan antarmuka jaringan yang berisi subnet dengan rentang alamat IPv6 eksternal.
- Pilih subnet tersebut dari daftar Subnetwork.
- Untuk IP stack type, pilih IPv4 and IPv6 (dual-stack) atau IPv6 (single-stack).
- Pilih alamat IPv6 eksternal yang baru dicadangkan dari daftar External IPv6 address. Atau, pilih Reserve static external IPv6 address dan cadangkan alamat IPv6 eksternal statis baru.
- Untuk Network Service Tier, pilih Premium.
Untuk menyelesaikan modifikasi antarmuka jaringan, klik Done.
Lanjutkan proses pembuatan instance.
gcloud
Anda dapat membuat instance dan menetapkan alamat IP eksternal regional statis yang telah dicadangkan.
Untuk menetapkan alamat IPv4 eksternal statis, lakukan hal berikut:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --address=IPV4_ADDRESSUntuk menetapkan alamat IPv6 eksternal statis, lakukan hal berikut:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --subnet=SUBNET \ --stack-type=STACK_TYPE \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --ipv6-network-tier=PREMIUMGanti kode berikut:
INSTANCE_NAME: nama instance compute.ZONE: zona tempat instance dibuatIPV4_ADDRESS: alamat IPv4 yang akan ditetapkan ke instance. Gunakan alamat IP eksternal statis yang dicadangkan, bukan nama alamat.SUBNET: subnet yang berisi alamat IPv6 eksternalSTACK_TYPE: jenis stack untuk instance,IPV4_IPV6(stack ganda) atauIPV6_ONLYIPV6_ADDRESS: alamat IPv6 yang akan ditetapkan ke instance. Gunakan alamat IP eksternal statis yang dicadangkan, bukan nama alamat.
Terraform
Anda dapat menggunakan resource google_compute_instance
untuk menetapkan alamat IP eksternal.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Untuk menetapkan alamat IPv4 eksternal statis ke instance komputasi baru, lakukan hal berikut:
Dalam permintaan Anda untuk membuat instance baru, berikan properti
networkInterfaces[].accessConfigs[].natIPdan alamat IPv4 eksternal yang ingin Anda gunakan secara eksplisit, misalnya:{ "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "IPV4_ADDRESS" }], "network": "global/networks/default" }], "disks": [{ "autoDelete": "true", "boot": "true", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" } }] }Ganti kode berikut:
INSTANCE_NAME: nama instance computeZONE: zona tempat instance dibuatMACHINE_TYPE: Opsional: URL lengkap atau sebagian resource jenis mesin yang akan digunakan saat membuat instance, dalam format:zones/ZONE/machineTypes/MACHINE_TYPEIPV4_ADDRESS: alamat IPv4 yang akan ditetapkan ke instance. Gunakan alamat IP eksternal statis yang dicadangkan, bukan nama alamat.SOURCE_IMAGE: versi tertentu dari image publik, sepertiprojects/debian-cloud/global/images/debian-10-buster-v20200309atau kelompok image, sepertiprojects/debian-cloud/global/images/family/debian-10
Untuk menetapkan alamat IPv6 eksternal statis ke instance baru, lakukan hal berikut:
Dalam permintaan Anda untuk membuat instance baru, secara eksplisit berikan properti
networkInterfaces[].ipv6AccessConfigs[].externalIpv6dan alamat IPv6 eksternal yang ingin Anda gunakan, misalnya:{ "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "ipv6AccessConfigs": [{ "externalIpv6": "IPV6_ADDRESS", "externalIpv6PrefixLength": 96, "name": "external-ipv6-access-config", "networkTier": "PREMIUM", "type": "DIRECT_IPV6" }], "stackType": "STACK_TYPE", "subnetwork":"SUBNETWORK" }], "disks": [{ "autoDelete": "true", "boot": "true", "mode": "READ_WRITE", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, }], }Ganti kode berikut:
INSTANCE_NAME: nama instance computeZONE: zona tempat instance dibuatMACHINE_TYPE: Opsional: URL lengkap atau sebagian dari resource jenis mesin yang akan digunakan saat membuat instance, dalam format:zones/ZONE/machineTypes/MACHINE_TYPEIPV6_ADDRESS: alamat IPv6 yang akan ditetapkan ke instance. Gunakan alamat IP eksternal statis yang dicadangkan, bukan nama alamat.STACK_TYPE: jenis stack untuk instance, baikIPV4_IPV6(stack ganda) atauIPV6_ONLYSUBNET: subnet yang berisi alamat IPv6 eksternalSOURCE_IMAGE: versi tertentu dari image publik, seperti"projects/debian-cloud/global/images/debian-10-buster-v20200309"atau kelompok image, seperti"projects/debian-cloud/global/images/family/debian-10"
Go
Java
Python
Mengubah atau menetapkan alamat IP eksternal ke instance yang ada
Anda dapat mengubah atau menetapkan alamat IP eksternal, baik sementara maupun statis, ke instance dual-stack atau khusus IPv4 yang sudah ada. Prosedur ini tidak didukung untuk instance khusus IPv6.
Instance komputasi dapat memiliki beberapa antarmuka. Antarmuka stack tunggal dapat memiliki satu alamat IP eksternal. Antarmuka dual-stack dapat memiliki satu alamat IPv4 eksternal dan satu alamat IPv6 eksternal. Jika instance sudah memiliki alamat IP eksternal, Anda harus menghapus alamat tersebut terlebih dahulu. Kemudian, Anda dapat menetapkan alamat IP eksternal baru ke instance yang ada.
Konsol
Di konsol Google Cloud , buka halaman VM instances.
Klik nama instance yang ingin Anda tetapkan IP eksternal. Halaman Detail instance akan ditampilkan.
Dari halaman Instance details, selesaikan langkah-langkah berikut:
- Klik Edit.
- Perluas Antarmuka jaringan.
- Pilih alamat IP eksternal yang diperlukan untuk ditetapkan ke instance.
Jika instance hanya IPv4 dan Anda ingin menetapkan alamat IPv6, Anda harus mengubah jenis stack menjadi stack ganda terlebih dahulu.
- Untuk External IPv4 address, pilih Ephemeral atau alamat IPv4 eksternal statis.
- Untuk External IPv6 address, pilih Ephemeral (Automatic), Ephemeral (Custom), atau alamat IPv6 eksternal statis.
- Klik Done.
Klik Save.
gcloud
Opsional: Cadangkan alamat IP eksternal statis.
Jika ingin menetapkan alamat IP eksternal statis, Anda harus mencadangkan alamat dan memastikan alamat tersebut tidak digunakan oleh resource lain. Jika perlu, ikuti petunjuk untuk memesan alamat IP eksternal statis baru atau untuk membatalkan penetapan alamat IP eksternal statis.
Jika ingin menggunakan alamat IP eksternal sementara, Anda dapat melewati langkah ini, dan Compute Engine akan secara acak menetapkan alamat IP eksternal sementara.
Hapus penetapan alamat IP yang ada, seperti yang dijelaskan dalam Membatalkan penetapan alamat IP eksternal statis.
Tetapkan alamat IP eksternal baru.
Untuk menetapkan alamat IPv4, gunakan sub-perintah
instances add-access-config:Catatan: Jangan gantiIP_ADDRESSdengan nama alamat IP statis. Anda harus menggunakan alamat IP yang sebenarnya.gcloud compute instances add-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
Ganti kode berikut:
INSTANCE_NAME: nama instance.ACCESS_CONFIG_NAME: nama untuk memanggil konfigurasi akses ini. Pastikan untuk menyertakan nama lengkap di antara tanda kutip.IP_ADDRESS: alamat IP yang akan ditambahkan.
Jika Anda ingin Compute Engine menetapkan alamat IP eksternal sementara dan bukan menggunakan alamat IP eksternal statis, hapus properti
--address IP_ADDRESS:gcloud compute instances add-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Untuk mengubah instance menjadi dual-stack dan menetapkan alamat IPv6, gunakan sub-perintah
instance network-interfaces update:gcloud compute instances network-interfaces update INSTANCE_NAME \ --network-interface=NIC \ --ipv6-network-tier=PREMIUM \ --stack-type=STACK_TYPE \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --zone=ZONE
Ganti kode berikut:
INSTANCE_NAME: nama instance.NIC: nama antarmuka jaringan.STACK_TYPE: jenis stack untuk instance, yang harus berupaIPV4_IPV6. Anda tidak dapat mengubah jenis stack menjadi IPV6_ONLY.IPV6_ADDRESS: alamat IPv6 yang akan ditetapkan ke instance. Tentukan alamat IPv6 pertama dalam rentang/96.ZONE: zona instance.
REST
Anda dapat mengubah alamat IPv4 atau IPv6 eksternal instance dengan menambahkan konfigurasi akses baru untuk instance tersebut.
Hapus penetapan alamat IP yang ada, seperti yang dijelaskan dalam Membatalkan penetapan alamat IP eksternal statis.
Hapus konfigurasi akses yang ada dengan membuat permintaan
POSTke metodeinstances.deleteAccessConfig.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/deleteAccessConfig
Tambahkan konfigurasi akses baru ke antarmuka jaringan instance dengan membuat permintaan
POSTke metodeinstances.addAccessConfig.Untuk alamat IPv4, buat permintaan berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }Untuk alamat IPv6, perbarui
stackTypeantarmuka jaringan menjadiIPV4_IPV6dan perbarui propertinetworkInterfaces[].ipv6AccessConfigs[].externalIpv6serta alamat IPv6 eksternal yang ingin Anda gunakan.Untuk mengetahui informasi selengkapnya, lihat Menetapkan alamat IP eksternal statis ke instance baru.
Go
Java
Python
Membatasi alamat IP eksternal ke instance tertentu
Untuk workload tertentu, Anda mungkin memiliki persyaratan penting yang mencakup keamanan dan pembatasan jaringan. Misalnya, Anda mungkin ingin membatasi alamat IP eksternal sehingga hanya instance Compute Engine tertentu yang dapat menggunakannya. Opsi ini dapat membantu mencegah pemindahan data yang tidak sah atau mempertahankan isolasi jaringan.
Dengan menggunakan Kebijakan Organisasi, Anda dapat membatasi alamat IP eksternal ke instance tertentu dengan batasan untuk mengontrol penggunaan alamat IP eksternal untuk instance Anda dalam suatu organisasi atau sebuah proyek.
Batasan untuk mengontrol alamat IP eksternal pada instance adalah:
constraints/compute.vmExternalIpAccess
Jika Anda tidak menentukan kebijakan organisasi untuk alamat IP eksternal, maka alamat IP eksternal diizinkan untuk semua instance. Untuk menggunakan batasan, Anda menentukan kebijakan organisasi dengan salah satu konfigurasi berikut:
- Tentukan daftar
allowedValueskosong, sehingga semua instance komputasi dicegah memiliki alamat IP eksternal. - Tentukan daftar
allowedValuesinstance komputasi yang dapat memiliki alamat IP eksternal.- Hanya instance komputasi yang tercantum dalam daftar
allowedValuesyang dapat diberi alamat IP eksternal, baik sementara maupun statis. - Semua instance komputasi lainnya di organisasi atau project yang tidak ditentukan secara eksplisit dalam kebijakan dilarang memiliki alamat IP eksternal.
- Hanya instance komputasi yang tercantum dalam daftar
- Atau, tentukan daftar
deniedValuesuntuk mencegah hanya instance komputasi yang ditetapkan memiliki alamat IP eksternal. Gunakan pendekatan ini dengan hati-hati, terutama jika batasan kebijakan organisasi berlaku untuk project yang menggantikan batasan yang diterapkan di folder atau organisasi induk. Karena hanya instance komputasi yang ditentukan dalam daftardeniedValuesyang dicegah memiliki alamat IP eksternal, setiap instance komputasi yang baru dibuat dalam project dapat memiliki alamat IP eksternal.
Instance diidentifikasi dalam daftar yang diizinkan dan ditolak menggunakan URI instance:
projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Spesifikasi untuk membatasi alamat IP eksternal
- Anda hanya dapat menerapkan batasan daftar
compute.vmExternalIpAccesske instance komputasi. - Anda tidak dapat menerapkan batasan secara surut. Semua instance komputasi yang memiliki alamat IP eksternal sebelum Anda mengaktifkan kebijakan akan mempertahankan alamat IP eksternalnya.
- Batasan ini menerima daftar
allowedValuesataudeniedValues, tetapi tidak keduanya dalam kebijakan yang sama. - Pengelolaan dan pemeliharaan siklus proses dan integritas instance komputasi bergantung pada Anda atau administrator yang memiliki izin yang diperlukan. Batasan hanya memverifikasi URI instance, dan tidak mencegah instance dalam daftar yang diizinkan untuk diubah, dihapus, atau dibuat ulang.
Panduan untuk membatasi alamat IP eksternal
Gunakan panduan berikut untuk mengizinkan atau menolak alamat IP eksternal untuk instance komputasi:
Jika tujuan keamanan Anda adalah mengizinkan pembuatan hanya beberapa instance komputasi dengan alamat IP eksternal, tetapi mencegah pembuatan instance lain dengan alamat IP eksternal, perhatikan hal berikut saat menggunakan daftar
allowedValuesatau daftardeniedValuesdalam batasan kebijakan organisasiconstraints/compute.vmExternalIpAccess:Pastikan batasan kebijakan organisasi
constraints/compute.vmExternalIpAccesstidak diganti oleh batasan kebijakan organisasiconstraints/compute.vmExternalIpAccessyang ditentukan pada resource turunan.Direkomendasikan: Gunakan daftar
allowedValuesdalam batasan kebijakan organisasiconstraints/compute.vmExternalIpAccessuntuk menentukan hanya instance Compute yang diizinkan untuk memiliki alamat IP eksternal. Setiap instance yang baru dibuat dalam project akan otomatis dikecualikan dari memiliki alamat IP eksternal karena tidak tercantum dalam daftarallowedValuesdalam batasan kebijakan organisasi. Sebagai contoh, lihat Menetapkan kebijakan di level project.
Anda dapat mengecualikan project tertentu dalam hierarki resource dari batasan kebijakan organisasi
constraints/compute.vmExternalIpAccessdengan menggunakan metodesetOrgPolicydan menentukanrestoreDefault.Saat menggunakan VPC Bersama, penerapan batasan kebijakan organisasi
constraints/compute.vmExternalIpAccesske project host VPC Bersama hanya berlaku untuk instance komputasi yang benar-benar berada di project host itu sendiri. Instance yang berada di project layanan tidak terpengaruh kecuali jika Anda menerapkan batasan kebijakan organisasiconstraints/compute.vmExternalIpAccesske setiap project layanan.Gunakan kebijakan organisasi bersama dengan peran IAM untuk mengontrol lingkungan Anda dengan lebih baik. Kebijakan ini hanya berlaku untuk instance komputasi. Untuk mengontrol dan membatasi alamat IP eksternal dengan lebih baik pada perangkat jaringan, Anda dapat memberikan peran
compute.networkAdminhanya kepada pihak yang sesuai.
Menggunakan kebijakan organisasi alamat IP eksternal dengan layanan terkelola
Batasan kebijakan organisasi constraints/compute.vmExternalIpAccess berlaku untuk instance komputasi yang baru dibuat dan berada dalam project yang tercakup dalam batasan kebijakan organisasi. Instance yang terpengaruh mencakup node Google Kubernetes Engine, instance Dataflow, dan instance Managed Service untuk Apache Spark jika dibuat di project Anda dan jika project Anda berada dalam cakupan untuk batasan kebijakan organisasi ini.
Layanan terkelola berbasis instance yang menggunakan akses layanan pribadi
didukung oleh instance komputasi yang berada di project produsen layanan yang
terpisah dari project Anda. Instance komputasi untuk layanan terkelola memiliki antarmuka
jaringan di jaringan produsen layanan yang melakukan peering dengan
jaringan VPC Anda. Jika batasan kebijakan organisasi constraints/compute.vmExternalIpAccess
berlaku untuk project Anda (project yang berisi jaringan VPC Anda), maka batasan kebijakan organisasi tidak akan memengaruhi instance komputasi untuk layanan terkelola di luar project Anda.
Beberapa layanan terkelola menawarkan batasan kebijakan organisasi mereka sendiri yang memberikan kemampuan serupa; misalnya, Cloud SQL memiliki constraints/sql.restrictPublicIp.
Izin diperlukan untuk membatasi alamat IP eksternal
Untuk menetapkan batasan di level project atau organisasi, Anda harus
telah diberi peran orgpolicy.policyAdmin di organisasi.
Menetapkan batasan kebijakan di tingkat organisasi
Konsol
- Buka halaman Kebijakan Organisasi.
- Jika perlu, pilih organisasi yang diperlukan dari menu drop-down project.
Di menu Filter, masukkan teks
Define allowed.Anda akan melihat dua baris ditampilkan di tabel Kebijakan.
Pilih kebijakan Tentukan IP eksternal yang diizinkan untuk instance VM dengan mengklik nama kebijakan di kolom Nama pada tabel.
Di halaman detail kebijakan, klik Kelola kebijakan untuk mengedit kebijakan IP eksternal. Jika Anda tidak dapat mengakses link Kelola kebijakan, berarti Anda tidak memiliki izin yang tepat.
Klik Manage policy.
Halaman Edit kebijakan akan terbuka.
Untuk Berlaku untuk, pilih Ganti kebijakan induk.
Untuk Penerapan kebijakan, pilih Gabungkan dengan induk.
Klik Add a rule.
Untuk Nilai kebijakan, pilih Kustom.
Untuk Jenis kebijakan, pilih apakah nilai yang diberikan harus diterima atau ditolak oleh kebijakan organisasi.
Di kolom Nilai kustom, masukkan URI untuk instance. URI harus dalam format berikut:
projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Untuk menambahkan instance komputasi lainnya, klik Tambahkan nilai, lalu masukkan URI untuk instance tambahan.
Untuk menerapkan kebijakan, klik Set policy.
gcloud
Untuk menetapkan batasan bagi akses IP eksternal, Anda memerlukan ID organisasi
terlebih dahulu. Anda dapat menemukan ID organisasi dengan menjalankan
perintah organizations list dan
mencari ID numerik dalam respons:
gcloud organizations list
Gcloud CLI menampilkan daftar organisasi dalam format berikut:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Gunakan
perintah gcloud resource-manager org-policies set-policy
untuk menetapkan kebijakan. Anda harus menyediakan kebijakan Anda sebagai file JSON.
Buat file JSON dalam format berikut:
{
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
"allowedValues": [
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
]
}
}
Ganti kode berikut:
PROJECT_ID: project ID untuk permintaan ini, sepertiexample-project. Perhatikan bahwa hal ini berbeda dengan menyiapkan kebijakan organisasi, yang memerlukan ID numerik organisasi.ZONE: zona instanceINSTANCE_NAME: nama instance
Atau, Anda dapat menentukan daftar deniedValues untuk menunjukkan instance yang secara eksplisit ingin Anda larang memiliki alamat IP eksternal.
Setiap instance yang tidak ada dalam daftar akan secara implisit diizinkan memiliki
alamat IP eksternal. Anda hanya dapat menentukan salah satu dari allowedValues atau
deniedValues, tetapi tidak keduanya.
Kemudian, teruskan file dengan permintaan Anda:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID
Ganti ORGANIZATION_ID dengan ID numerik
organisasi.
Jika tidak ingin instance mana pun memiliki akses IP eksternal, Anda dapat menetapkan kebijakan dengan allValues ditetapkan ke DENY:
{
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
"allValues": "DENY"
}
}
REST
Gunakan
setOrgPolicy() API
untuk menentukan batasan Anda. Instance dalam daftar allowedValues yang Anda tentukan diizinkan memiliki alamat IP eksternal. Atau, Anda dapat menentukan daftar deniedValues untuk menyatakan instance yang secara eksplisit ingin Anda larang memiliki alamat IP eksternal. Setiap instance yang tidak ada dalam daftar akan secara implisit diizinkan memiliki alamat IP eksternal. Anda hanya dapat menentukan allowedValues atau deniedValues, tetapi tidak keduanya.
Misalnya, berikut adalah permintaan untuk menerapkan
batasan compute.vmExternalIpAccess ke organisasi tempat instance
dari project tertentu dalam organisasi diizinkan untuk memiliki
alamat IP eksternal:
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy
dengan ORGANIZATION_ID adalah ID numerik
organisasi.
Sekarang, di isi permintaan, berikan kebijakan untuk batasan ini:
{
"policy": {
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
"allowedValues": [
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
]
}
}
}Jika tidak ingin instance mana pun memiliki akses IP eksternal, Anda dapat menetapkan kebijakan dengan allValues ditetapkan ke DENY:
{
"policy": {
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
"allValues": "DENY"
}
}
}Menetapkan kebijakan di level project
Menetapkan kebijakan di level project akan menggantikan kebijakan di level organisasi. Misalnya, jika tingkat organisasi memiliki example-vm-1 pada daftar allowedValues, tetapi kebijakan di level project memiliki instance yang sama di daftar deniedValues, instance tidak akan diizinkan memiliki alamat IP
eksternal.
Konsol
Ikuti proses yang sama seperti yang didokumentasikan di bagian Menetapkan batasan kebijakan di tingkat organisasi, tetapi pilih project Anda dari pemilih project, bukan organisasi.
gcloud
Gunakan
perintah gcloud resource-manager org-policies set-policy
untuk menetapkan kebijakan. Anda harus menyediakan kebijakan Anda sebagai file JSON. Buat file JSON dalam format berikut:
{
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
"allowedValues": [
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
]
}
}Ganti kode berikut:
PROJECT_ID: project ID untuk permintaan ini, sepertiexample-project. Perhatikan bahwa hal ini berbeda dengan menyiapkan kebijakan organisasi, yang memerlukan ID numerik organisasi.ZONE: zona instance.INSTANCE_NAME: nama instance.
Atau, Anda dapat menentukan daftar deniedValues instance yang
secara eksplisit ingin Anda larang memiliki alamat IP eksternal. Setiap instance
yang tidak ada dalam daftar akan secara implisit diizinkan memiliki alamat IP eksternal.
Anda hanya dapat menentukan salah satu dari allowedValues atau deniedValues, tetapi tidak keduanya.
Kemudian, teruskan file dengan permintaan Anda:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project
REST
Gunakan
setOrgPolicy API
untuk menentukan batasan Anda. Instance dalam daftar allowedValues yang Anda tentukan diizinkan memiliki alamat IP eksternal. Atau, Anda dapat menentukan daftar deniedValues untuk menyatakan instance yang secara eksplisit ingin Anda larang memiliki alamat IP eksternal. Setiap instance yang tidak ada dalam daftar secara implisit diizinkan untuk memiliki alamat IP eksternal. Anda hanya dapat menentukan
allowedValues atau deniedValues, tetapi tidak keduanya.
Misalnya, berikut adalah permintaan untuk menetapkan batasan compute.vmExternalIpAccess pada project untuk mengizinkan instance tertentu memiliki alamat IP eksternal:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setOrgPolicy
Ganti PROJECT_ID dengan project ID untuk permintaan ini.
Isi permintaan berisi kebijakan untuk batasan ini:
{
"policy": {
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
"allowedValues": [
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
]
}
}
}
Mengelola alamat IP eksternal statis
Bagian berikut menjelaskan cara mengelola alamat IP eksternal statis untuk instance Anda.
Menentukan apakah alamat IP eksternal bersifat sementara atau statis
Alamat IP eksternal statis dan sementara berperilaku dan tampak sama dalam sebagian besar konteks. Namun, dengan alamat IP eksternal statis, Anda dapat menggunakan alamat IP yang sama untuk resource yang sama meskipun Anda menghapus dan membuat ulang resource.Secara umum, alamat IP sementara akan dirilis jika Anda menghentikan atau menghapus resource.
Untuk menentukan apakah alamat bersifat statis atau sementara, lakukan hal berikut:
Di konsol Google Cloud , buka halaman IP addresses.
Temukan alamat dalam daftar dan periksa kolom Jenis untuk mengetahui jenis alamat IP.
Membatalkan penetapan alamat IP eksternal statis
Membatalkan penetapan alamat IP akan menghapusnya dari resource, tetapi mempertahankan alamat IP tetap dicadangkan. Setelah penetapan alamat IP dibatalkan, Anda dapat menetapkan ulang alamat IP ke resource lain. Prosedur ini didukung untuk instance stack ganda, tetapi tidak untuk instance khusus IPv6.
Anda juga dapat membatalkan penetapan alamat IPv4 atau IPv6 dengan menghapus instance.
Konsol
Di konsol Google Cloud , buka halaman IP addresses.
Klik Alamat IP eksternal.
Pilih alamat IP statis yang ingin Anda batalkan penetapannya.
Klik Lihat tindakan, lalu pilih opsi Tetapkan ulang ke resource lain.
Dari menu drop-down Lampirkan ke, pilih Tidak ada.
Klik Oke.
gcloud
Periksa apakah alamat IP statis sedang digunakan dengan menggunakan perintah
gcloud compute addresses list:gcloud compute addresses list
Outputnya mirip dengan yang berikut ini:
NAME REGION ADDRESS STATUS example-address-ipv4 REGION 198.51.100.1 RESERVED example-address-new-ipv4 REGION 203.0.113.1 IN_USE example-address-ipv6 REGION 2001:db8:1:1:1:1:1:1 RESERVED example-address-new-ipv6 REGION 2001:db8:4:4:4:4:4:4 IN_USE
- Jika alamat IP tidak digunakan, statusnya adalah
RESERVED. - Jika alamat IP sedang digunakan, statusnya adalah
IN_USE.
- Jika alamat IP tidak digunakan, statusnya adalah
Ambil nama instance yang menggunakan alamat IP:
gcloud compute addresses describe ADDRESS_NAME \ --region=REGION
Ganti kode berikut:
ADDRESS_NAME: nama resource alamat IPv6.REGION: region resource alamat IPv6.
Outputnya mirip dengan hal berikut ini:
address: IP_ADDRESS addressType: EXTERNAL ... region: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/addresses/ADDRESS_NAME status: IN_USE subnetwork: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET users: - https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/INSTANCE_NAME
Kolom
usersmenampilkan nama instance yang menggunakan alamat IP.Batalkan penetapan alamat IP dari instance.
Untuk membatalkan penetapan alamat IPv4, hapus file konfigurasi akses instance:
Mendapatkan nama konfigurasi akses yang akan dihapus. Untuk mendapatkan nama, gunakan perintah
gcloud compute instances describe. GantiINSTANCE_NAMEdengan nama instance.gcloud compute instances describe INSTANCE_NAME
Konfigurasi akses muncul dalam format berikut:
networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 203.0.113.1 type: ONE_TO_ONE_NATHapus konfigurasi akses menggunakan perintah
gcloud compute instances delete-access-config:gcloud compute instances delete-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Ganti kode berikut:
INSTANCE_NAME: nama instance.ACCESS_CONFIG_NAME: nama konfigurasi akses yang akan dihapus. Pastikan untuk menyertakan nama lengkap di antara tanda kutip.
Untuk membatalkan penetapan rentang alamat IPv6, gunakan perintah
instance network-interfaces update:gcloud compute instances network-interfaces update INSTANCE_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
Ganti kode berikut:
INSTANCE_NAME: nama instance yang menggunakan alamat IP tersebut.ZONE: zona instance.
Pastikan alamat IP eksternal statis Anda kini tersedia dan ditandai sebagai
RESERVED, bukanIN_USE.gcloud compute addresses list \ --filter="ADDRESS_NAME AND region=REGION"
Ganti kode berikut:
ADDRESS_NAME: nama resource alamat IP.REGION: region resource alamat IP.
Setelah alamat IP eksternal statis tersedia, Anda dapat memilih untuk menetapkannya ke instance lain.
REST
Untuk membatalkan penetapan alamat IPv4 atau IPv6 eksternal statis, lakukan langkah-langkah berikut:
Untuk alamat IPv4, hapus konfigurasi akses yang terpasang ke instance yang menggunakan alamat tersebut.
Untuk memeriksa detail konfigurasi akses instance, buat permintaan
GETke metodeinstances.get.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Hapus konfigurasi akses yang ada dengan membuat permintaan
POSTke metodeinstances.deleteAccessConfig.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/deleteAccessConfig
Ganti kode berikut:
PROJECT_ID: project ID untuk permintaan iniZONE: zona tempat instance beradaINSTANCE_NAME: nama instance
Untuk alamat IPv6, update jenis stack antarmuka jaringan untuk instance tempat alamat IPv6 terpasang.
Buat permintaan
PATCHke metodeinstances.updateNetworkInterface.Dalam isi permintaan, perbarui nilai kolom
stackTypemenjadiIPV4_ONLY.Contoh:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
Java
Python
Merilis alamat IP eksternal statis
Jika tidak lagi memerlukan alamat IPv4 atau IPv6 eksternal statis, Anda dapat melepas alamat IP dengan menghapus resource alamat IP. Menghapus instance tidak akan merilis alamat IP eksternal statis secara otomatis. Anda harus melepaskan alamat IP eksternal statis secara manual jika tidak lagi memerlukannya.
Untuk merilis alamat IP eksternal statis, lihat Merilis alamat IP eksternal statis dalam dokumentasi VPC.
Langkah berikutnya
- Pelajari alamat IP lebih lanjut.
- Pelajari jaringan dan firewall lebih lanjut.
- Pelajari cara menangani instance Compute Engine menggunakan DNS internal.
- Tinjau harga VPC.