Anda dapat menetapkan alamat IP eksternal statis ke instance virtual machine (VM). Anda juga dapat mengubah, mencantumkan, dan merilis alamat IP statis untuk VM. Untuk mencadangkan alamat IP eksternal statis, lihat Mencadangkan alamat IP eksternal statis.
Alamat IP eksternal dapat bersifat statis atau sementara. Jika VM 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 VM yang ada, atau tetapkan saat membuat VM baru.
Jika Anda memerlukan alamat IP statis pada jaringan Compute Engine internal, lihat Mencadangkan alamat IP internal 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 adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan 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, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna mengonfigurasi dan mengelola alamat IP statis, minta administrator Anda untuk memberi Anda peran IAM berikut pada project Anda:
-
Untuk membuat dan mengupdate VM:
Admin Instance Compute (v1) (
roles/compute.instanceAdmin.v1
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Peran yang telah ditetapkan 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
pada instance VM -
compute.instances.updateNetworkInterface
pada instance VM -
compute.instances.addAccessConfig
pada instance VM -
compute.instances.deleteAccessConfig
pada instance VM -
compute.networks.list
di jaringan -
compute.subnetworks.use
di subnet -
compute.subnetworks.list
di subnet -
Untuk membuat VM:
compute.instances.create
pada project- Untuk menggunakan image kustom guna membuat VM:
compute.images.useReadOnly
pada image - Untuk menggunakan snapshot guna membuat VM:
compute.snapshots.useReadOnly
di snapshot - Untuk menggunakan template instance untuk membuat VM:
compute.instanceTemplates.useReadOnly
pada template instance - Untuk menetapkan jaringan lama ke VM:
compute.networks.use
di project - Untuk menentukan alamat IP statis untuk VM:
compute.addresses.use
di project - Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIp
di project - Untuk menentukan subnet VM:
compute.subnetworks.use
di project atau subnet yang dipilih - Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIp
di project atau di subnet yang dipilih - Untuk menetapkan metadata instance VM untuk VM:
compute.instances.setMetadata
di project - Untuk menetapkan tag untuk VM:
compute.instances.setTags
di VM - Untuk menetapkan label VM:
compute.instances.setLabels
di VM - Untuk menetapkan akun layanan agar VM dapat menggunakan:
compute.instances.setServiceAccount
di VM - Untuk membuat disk baru bagi VM:
compute.disks.create
di project - Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis:
compute.disks.use
di disk - Untuk memasang disk yang ada dalam mode hanya baca:
compute.disks.useReadOnly
pada disk
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Batasan
Hanya satu resource dalam satu waktu yang dapat menggunakan alamat IP eksternal statis.
Tidak ada cara untuk memeriksa apakah alamat IP bersifat statis atau sementara setelah ditetapkan ke resource. Anda dapat membandingkan alamat IP dengan daftar alamat IP eksternal statis yang dicadangkan untuk project tersebut. Gunakan sub-perintah
gcloud compute addresses list
untuk melihat daftar alamat IP eksternal statis yang tersedia untuk project.Setiap VM dapat memiliki beberapa antarmuka jaringan, dan setiap antarmuka dapat memiliki alamat IP berikut yang ditetapkan:
- Alamat IPv4 internal (wajib)
- Alamat IPv4 eksternal
- Rentang alamat IPv6, baik internal atau eksternal, tetapi tidak keduanya
Anda tidak dapat mengubah nama alamat IP statis.
Alamat IP eksternal yang ditetapkan berada di host fisik yang sama dengan VM dan berada di region yang sama dengan VM untuk semua tujuan, termasuk perutean, latensi, dan harga. Hal ini benar terlepas dari informasi pencarian geolokasi internet.
Catatan: Antarmuka jaringan dapat menerima traffic dari beberapa aturan penerusan, yang mungkin menyalurkan alamat IP eksternal lainnya. Berapa pun jumlah 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 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=REGION
Ganti
REGION
dengan wilayah yang alamatnya ingin Anda cantumkan. Anda dapat mencantumkan alamat beberapa wilayah dengan menentukan nama wilayah 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 wilayah 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
Mengonfigurasi alamat IP eksternal statis
Bagian berikut ini menjelaskan cara mengonfigurasi alamat IP eksternal statis untuk VM Anda.
Membuat VM yang menggunakan alamat IP eksternal statis
Setelah memesan alamat IP eksternal statis, Anda dapat menetapkannya ke VM.
Konsol
Di konsol Google Cloud, buka halaman Create an instance.
Tentukan detail VM.
Luaskan bagian Advanced options.
Luaskan bagian Networking.
Di bagian Network interfaces, luaskan antarmuka jaringan untuk mengeditnya.
Untuk menetapkan alamat IPv4, lakukan hal berikut:
- Pilih jaringan.
- Pilih alamat IP dari daftar External IPv4 address.
Untuk menetapkan alamat IPv6, lakukan hal berikut:
- Pilih jaringan yang berisi subnet IPv6.
- Pilih subnet dual-stack dari daftar Subnetwork.
- Untuk IP stack type, pilih IPv4 and IPv6 (dual-stack).
- Pilih alamat IPv6 eksternal yang baru dicadangkan dari daftar External IPv6 address. Atau, pilih CREATE IP ADDRESS dan cadangkan alamat IPv6 eksternal statis baru.
- Untuk Network Service Tier, pilih Premium.
Untuk menyelesaikan modifikasi antarmuka jaringan default, klik Selesai.
Lanjutkan dengan proses pembuatan VM.
gcloud
Anda dapat membuat VM dan menetapkan alamat IP eksternal regional statis yang telah dicadangkan.
Untuk menetapkan alamat IPv4 eksternal statis, lakukan hal berikut:
gcloud compute instances create VM_NAME --address=IP_ADDRESS
Ganti kode berikut:
VM_NAME
: nama VM.IP_ADDRESS
: alamat IP yang akan ditetapkan ke VM. Gunakan alamat IP eksternal statis yang dicadangkan, bukan nama alamat.
Untuk menetapkan alamat IPv6 eksternal statis, lakukan hal berikut:
gcloud compute instances create VM_NAME \ --subnet=SUBNET \ --stack-type=IPV4_IPV6 \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --ipv6-network-tier=PREMIUM \ --zone=ZONE
Terraform
Anda dapat menggunakan resource google_compute_instance
untuk menetapkan alamat IP eksternal.
REST
Untuk menetapkan alamat IPv4 eksternal statis ke VM baru, lakukan hal berikut:
Dalam permintaan Anda untuk membuat VM baru, berikan properti networkInterfaces[].accessConfigs[].natIP
dan alamat IPv4 eksternal yang ingin Anda gunakan secara eksplisit. Contoh:
{ "name": "VM_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" } }] }
Untuk menetapkan alamat IPv6 eksternal statis ke VM baru, lakukan hal berikut:
Dalam permintaan Anda untuk membuat VM baru, berikan properti networkInterfaces[].ipv6AccessConfigs[].externalIpv6
dan alamat IPv6 eksternal yang ingin Anda gunakan secara eksplisit. Contoh:
{ "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "accessConfigs": [{ "name": "external-nat", "type": "ONE_TO_ONE_NAT" }], "ipv6AccessConfigs": [{ "externalIpv6": "IOV6_ADDRESS", "externalIpv6PrefixLength": 96, "name": "external-ipv6-access-config", "networkTier": "PREMIUM", "type": "DIRECT_IPV6" }], "stackType": "IPV4_IPV6", "subnetwork":"SUBNETWORK }], "disks": [{ "autoDelete": "true", "boot": "true", "mode": "READ_WRITE", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, }], }
Mengubah atau menetapkan alamat IP eksternal ke VM yang sudah ada
Anda dapat mengubah atau menetapkan alamat IP eksternal, baik sementara maupun statis, ke VM yang sudah ada.
VM dapat memiliki beberapa antarmuka dan setiap antarmuka dapat memiliki alamat IP eksternal. Jika VM sudah memiliki alamat IP eksternal, Anda harus menghapus alamat tersebut terlebih dahulu. Kemudian, Anda dapat menetapkan alamat IP eksternal baru ke VM yang ada.
Konsol
- Di konsol Google Cloud, buka halaman Instance VM.
- Klik nama VM yang ingin Anda tetapkan sebagai 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 VM:
- Untuk External IPv4 address, pilih Ephemeral atau alamat IPv4 eksternal statis.
- Untuk External IPv6 address, pilih Ephemeral 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 semua 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_ADDRESS
dengan nama alamat IP statis. Anda harus menggunakan alamat IP yang sebenarnya.gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
Ganti kode berikut:
VM_NAME
: nama VM.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 VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Untuk menetapkan rentang alamat IPv6, gunakan sub-perintah
instance network-interfaces update
:gcloud compute instances network-interfaces update VM_NAME \ --network-interface==NIC \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV4_IPV6 \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --zone=ZONE
Ganti kode berikut:
VM_NAME
: nama VM.NIC
: nama antarmuka jaringan.IPV6_ADDRESS
: alamat IPv6 yang akan ditetapkan ke VM. Tentukan alamat IPv6 pertama di rentang/96
.ZONE
: zona VM.
REST
Anda dapat mengubah alamat IPv4 atau IPv6 eksternal VM dengan menambahkan konfigurasi akses baru untuk VM tersebut.
Hapus semua penetapan alamat IP yang ada, seperti yang dijelaskan dalam Membatalkan penetapan alamat IP eksternal statis.
Hapus konfigurasi akses yang ada dengan membuat permintaan
POST
ke metodeinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Tambahkan konfigurasi akses baru ke antarmuka jaringan VM dengan membuat permintaan
POST
ke metodeinstances.addAccessConfig
.Untuk alamat IPv4, buat permintaan berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
Untuk alamat IPv6, perbarui properti
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
dan alamat IPv6 eksternal yang ingin Anda gunakan.
Membatasi alamat IP eksternal ke VM 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 VM 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 VM tertentu dengan batasan untuk mengontrol penggunaan alamat IP eksternal untuk VM Anda dalam suatu organisasi atau project.
Batasan untuk mengontrol alamat IP eksternal pada VM adalah:
constraints/compute.vmExternalIpAccess
Untuk menggunakan batasan ini, tentukan kebijakan dengan allowedList
VM yang
dapat memiliki alamat IP eksternal. Jika Anda tidak menentukan kebijakan, semua alamat IP eksternal diizinkan untuk semua VM. Saat kebijakan ini diterapkan, hanya VM yang tercantum dalam daftar allowedValues
yang dapat diberi alamat IP eksternal, baik sementara maupun statis, dan VM Compute Engine lainnya di organisasi atau project yang tidak ditentukan secara eksplisit dalam kebijakan
dilarang menggunakan alamat IP eksternal.
VM diidentifikasi dalam daftar yang diizinkan dan ditolak menggunakan URI VM:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Spesifikasi untuk membatasi alamat IP eksternal
- Anda hanya dapat menerapkan batasan daftar ini untuk VM.
- Anda tidak dapat menerapkan batasan secara surut. Semua VM yang memiliki alamat IP eksternal sebelum Anda mengaktifkan kebijakan akan mempertahankan alamat IP eksternalnya.
- Batasan ini menerima
allowedList
ataudeniedList
, tetapi tidak keduanya dalam kebijakan yang sama. - Anda atau administrator yang memiliki izin yang diperlukan untuk mengelola dan memelihara siklus proses dan integritas VM berada di tangan Anda. Batasan ini hanya memverifikasi URI VM, dan tidak mencegah VM dalam daftar yang diizinkan diubah, dihapus, atau dibuat ulang.
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.
- Klik Menentukan IP eksternal yang diizinkan untuk instance VM.
- Klik Edit untuk mengedit kebijakan IP eksternal. Jika tidak dapat mengakses alat Edit, berarti Anda tidak memiliki izin yang benar.
Pilih Customize untuk menetapkan kebijakan organisasi untuk VM tertentu.
Pilih Penegakan kebijakan dan Jenis kebijakan yang diperlukan.
Untuk Nilai kebijakan, pilih Kustom.
Masukkan URI untuk VM dan tekan enter. URI harus dalam format berikut:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Klik New policy value dan masukkan URI untuk VM sesuai kebutuhan.
Klik Simpan untuk menerapkan batasan.
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/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_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 VMVM_NAME
: nama VM
Atau, Anda dapat menentukan daftar deniedValues
untuk menunjukkan VM yang
secara eksplisit ingin Anda cegah memiliki alamat IP eksternal.
Setiap VM yang tidak ada dalam daftar secara implisit akan 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 VM 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. VM dalam daftar allowedValue
yang Anda tentukan diizinkan memiliki alamat IP eksternal. Atau, Anda dapat menentukan daftar deniedValues
untuk menyatakan VM yang secara eksplisit ingin Anda larang memiliki alamat IP eksternal. Setiap VM yang tidak ada dalam daftar secara implisit akan 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 VM 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.
Selanjutnya, dalam isi permintaan Anda, sediakan kebijakan untuk batasan ini:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } } }
Jika tidak ingin VM apa 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
di daftar allowedValues
, tetapi kebijakan di level project memiliki VM yang sama di daftar deniedValues
, VM tidak akan diizinkan memiliki alamat IP eksternal.
Konsol
Ikuti proses yang sama dengan 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/VM_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 VM.VM_NAME
: nama VM.
Atau, Anda dapat menentukan daftar deniedValues
VM yang
secara eksplisit ingin Anda larang memiliki alamat IP eksternal. Setiap VM yang tidak ada dalam daftar secara implisit akan 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. VM dalam daftar allowedValue
yang Anda tentukan diizinkan memiliki alamat IP eksternal. Atau, Anda dapat menentukan
daftar deniedValues
untuk menyatakan VM yang secara eksplisit ingin Anda larang
memiliki alamat IP eksternal. Setiap VM 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 VM 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/VM_NAME" ] } } }
Praktik terbaik untuk membatasi alamat IP eksternal
Hindari penggunaan daftar
deniedValues
dengan batasan ini. Jika Anda menentukan nilai dalam daftardeniedValues
, berarti hanya VM dalam daftardeniedValues
yang dibatasi untuk menggunakan alamat IP eksternal. Hal ini bisa menjadi masalah keamanan jika Anda ingin mengontrol secara pasti VM mana yang dapat memiliki alamat IP eksternal. Jika Anda ingin menghapus VM tertentu dari daftarallowedValues
, perbarui kebijakan yang ada untuk menghapus VM dariallowedList
, bukan memasukkan VM ke dalam daftardeniedValues
pada hierarki yang lebih rendah.Jika Anda ingin menetapkan kebijakan pada sebagian besar hierarki resource tetapi mengecualikan project tertentu, pulihkan kebijakan default menggunakan metode
setOrgPolicy
dengan menentukan objekrestoreDefault
untuk mengizinkan semua VM di project dikaitkan dengan alamat IP eksternal. Kebijakan saat ini untuk project tidak terpengaruh oleh setelan default.Gunakan kebijakan organisasi bersama dengan peran IAM untuk mengontrol lingkungan Anda dengan lebih baik. Kebijakan ini hanya berlaku untuk VM, tetapi jika Anda ingin mengontrol dan membatasi alamat IP eksternal dengan lebih baik pada perangkat jaringan, Anda dapat memberikan peran
compute.networkAdmin
kepada pihak yang sesuai.Setiap layanan dan produk yang berjalan di Compute Engine dalam organisasi atau project yang mengaktifkan kebijakan tersebut tunduk pada kebijakan organisasi ini. Secara khusus, layanan seperti Google Kubernetes Engine, Dataflow, Dataproc, dan Cloud SQL terpengaruh oleh kebijakan ini. Jika ini menjadi masalah, Google merekomendasikan agar Anda menyiapkan layanan dan produk lain di project lain yang tidak menerapkan kebijakan organisasi, dan menggunakan VPC Bersama, jika diperlukan.
Mengelola alamat IP eksternal statis
Bagian berikut menjelaskan cara mengelola alamat IP eksternal statis untuk VM Anda.
Menentukan apakah alamat IP internal bersifat sementara atau statis
Alamat IP internal statis dan sementara berperilaku dan tampak sama dalam sebagian besar konteks. Namun, dengan alamat IP internal statis, Anda dapat menggunakan alamat IP yang sama untuk resource yang sama sekalipun 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.
Anda juga dapat membatalkan penetapan alamat IPv4 atau IPv6 dengan menghapus VM.
Konsol
Di Konsol Google Cloud, buka halaman IP addresses.
Klik Alamat IP eksternal.
Pilih alamat IP statis yang ingin Anda batalkan penetapannya.
Klik Ubah untuk membuka dialog Lampirkan alamat IP.
Dari menu drop-down Lampirkan ke, pilih Tidak ada.
Klik OK.
gcloud
Periksa apakah alamat IP statis sedang digunakan dengan menggunakan perintah
gcloud compute addresses list
:gcloud compute addresses list
Outputnya mirip dengan hal 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 VM 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/VM_NAME
Kolom
users
menampilkan nama VM yang menggunakan alamat IP.Batalkan penetapan alamat IP dari VM.
Untuk membatalkan penetapan alamat IPv4, hapus file konfigurasi akses VM:
Mendapatkan nama konfigurasi akses yang akan dihapus. Untuk mendapatkan nama tersebut, gunakan perintah
gcloud compute instances describe
. GantiVM_NAME
dengan nama VM.gcloud compute instances describe VM_NAME
Konfigurasi akses muncul dalam format berikut:
networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 203.0.113.1 type: ONE_TO_ONE_NAT
Hapus konfigurasi akses menggunakan perintah
gcloud compute instances delete-access-config
:gcloud compute instances delete-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Ganti kode berikut:
VM_NAME
: nama VM.ACCESS_CONFIG_NAME
: nama konfigurasi akses yang akan dihapus. Pastikan untuk mencantumkan nama lengkap di antara tanda kutip.
Untuk membatalkan penetapan rentang alamat IPv6, gunakan perintah
instance network-interfaces update
:gcloud compute instances network-interfaces update VM_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
Ganti kode berikut:
VM_NAME
: nama VM yang menggunakan alamat IP.ZONE
: zona VM.
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 VM lain.
REST
Untuk membatalkan penetapan alamat IPv4 atau IPv6 eksternal statis, lakukan langkah-langkah berikut:
Untuk alamat IPv4, hapus konfigurasi akses yang terpasang ke VM yang menggunakan alamat tersebut.
Untuk memeriksa detail konfigurasi akses VM, buat permintaan
GET
ke metodeinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Hapus konfigurasi akses yang ada dengan membuat permintaan
POST
ke metodeinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Ganti kode berikut:
PROJECT_ID
: project ID untuk permintaan iniZONE
: zona tempat VM beradaVM_NAME
: nama VM
Untuk alamat IPv6, perbarui jenis stack antarmuka jaringan untuk VM tempat alamat IPv6 terpasang.
Buat permintaan
PATCH
ke metodeinstances.updateNetworkInterface
.Dalam isi permintaan, perbarui nilai kolom
stackType
menjadiIPV4_ONLY
.Contoh:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
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 VM tidak akan otomatis merilis alamat IP eksternal statis. Anda harus merilis alamat IP eksternal statis secara manual jika tidak lagi memerlukannya.
Untuk melepaskan alamat IP eksternal statis, baca bagian Merilis alamat IP eksternal statis dalam dokumentasi VPC.
Langkah selanjutnya
- Pelajari alamat IP lebih lanjut.
- Pelajari jaringan dan firewall lebih lanjut.
- Pelajari cara menangani VM menggunakan DNS internal.
- Tinjau harga VPC.