Halaman ini menjelaskan cara mengonfigurasi akses layanan pribadi di jaringan VPC Anda.
Akses layanan pribadi diterapkan sebagai koneksi peering VPC antara jaringan VPC Anda dan jaringan VPC Google Cloud yang mendasari di tempat instance Cloud SQL berada. Koneksi pribadi memungkinkan instance VM di jaringan VPC Anda dan layanan yang diakses untuk berkomunikasi melalui alamat IP internal secara eksklusif. Instance VM tidak memerlukan akses internet atau alamat IP eksternal untuk menjangkau layanan yang tersedia melalui akses layanan pribadi.
Sebelum memulai
Cloud SQL memerlukan akses layanan pribadi untuk setiap jaringan VPC yang digunakan untuk koneksi IP pribadi. Untuk mengelola koneksi akses layanan pribadi, pengguna harus memiliki izin IAM berikut:
compute.networks.list
compute.addresses.create
compute.addresses.list
servicenetworking.services.addPeering
Jika tidak memiliki izin tersebut, maka Anda dapat mengalami error izin tidak memadai.
Jika Anda menggunakan Jaringan VPC bersama, maka Anda juga harus:
- Menambahkan pengguna Anda ke project host.
- Menetapkan empat izin yang sama untuk pengguna pada project host tersebut.
- Memberikan izin IAM
compute.globalAddresses.list
kepada pengguna.
Mengonfigurasi akses layanan pribadi untuk Cloud SQL
Terdapat dua bagian dalam proses konfigurasi akses layanan pribadi:
- Memilih yang ada atau mengalokasikan rentang alamat IP baru.
Anda juga memiliki opsi untuk mengizinkan Google mengalokasikan rentang tersebut untuk Anda. Dalam kasus ini, Google akan otomatis mengalokasikan rentang IP dengan panjang awalan /20 dan menggunakan nama default-ip-range.
Jika Anda akan membuat instance di beberapa region atau untuk jenis database yang berbeda, Anda harus memiliki rentang alamat IP minimum /24 yang tersedia untuk setiap region atau jenis database. Hal ini mencakup aplikasi lain seperti Filestore atau Memorystore. Untuk region atau jenis database baru, Cloud SQL harus memiliki rentang /24 yang tersedia.
- Membuat koneksi pribadi dari jaringan VPC Anda ke jaringan produsen layanan yang mendasarinya.
Mengalokasikan rentang alamat IP
Konsol
-
Di Konsol Google Cloud, buka halaman jaringan VPC.
- Pilih jaringan VPC yang ingin Anda gunakan.
- Pilih tab
Koneksi layanan pribadi . - Pilih tab
Rentang IP yang dialokasikan untuk layanan . - Klik
Alokasikan rentang IP . - Untuk
Nama rentang yang dialokasikan, tentukangoogle-managed-services-VPC_NETWORK_NAME
, di manaVPC_NETWORK_NAME
adalah nama jaringan VPC yang Anda sambungkan (misalnya,google-managed-services-default
).Deskripsi bersifat opsional. - Pilih opsi
Kustom , lalu masukkan rentang alamat IP yang akan dialokasikan, dalam notasi CIDR. - Klik
Alokasikan untuk membuat rentang yang dialokasikan.
gcloud
Lakukan salah satu tindakan berikut:
- Untuk menentukan rentang alamat IP dan panjang awalan (subnet mask), gunakan flag
addresses
danprefix-length
. Misalnya, untuk mengalokasikan blok CIDR192.168.0.0/16
, tentukan192.168.0.0
untuk alamat dan16
untuk panjang awalan. - Untuk hanya menentukan panjang awalan (subnet mask), gunakan flag
prefix-length
. Saat Anda menghilangkan rentang alamat IP, Google Cloud akan otomatis memilih rentang alamat IP yang tidak digunakan di jaringan VPC Anda. Contoh berikut ini memilih rentang alamat IP yang tidak digunakan dengan panjang awalan bit16
.
gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
Ganti VPC_NETWORK_NAME
dengan nama jaringan
VPC, seperti my-vpc-network
.
Contoh berikut ini mengalokasikan rentang IP yang memungkinkan resource dalam
jaringan VPC my-vpc-network
untuk terhubung ke instance
Cloud SQL menggunakan IP pribadi.
gcloud compute addresses create google-managed-services-my-vpc-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=projects/myprojectid/global/networks/myvpcnetwork \ --project=my-project
Terraform
Untuk mengalokasikan rentang alamat IP, gunakan resource Terraform.
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah
berikut dan masukkan yes
pada prompt:
terraform destroy
Membuat koneksi pribadi
Konsol
-
Di Konsol Google Cloud, buka halaman jaringan VPC.
- Pilih jaringan VPC yang ingin Anda gunakan.
- Pilih tab Koneksi layanan pribadi.
- Pilih tab Koneksi pribadi ke layanan.
- Klik Buat koneksi untuk membuat koneksi pribadi antara jaringan Anda dan produsen layanan.
- Untuk Alokasi yang ditetapkan, pilih salah satu atau beberapa rentang yang sudah dialokasikan dan tidak digunakan oleh produsen layanan lainnya.
- Klik Hubungkan untuk membuat koneksi.
gcloud
Membuat koneksi pribadi
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-VPC_NETWORK_NAME \ --network=VPC_NETWORK_NAME \ --project=PROJECT_ID
Perintah ini memulai operasi instance Cloud SQL yang berjalan lama, dan mengembalikan ID operasi.
Periksa apakah operasi tersebut berhasil.
gcloud services vpc-peerings operations describe \ --name=OPERATION_ID
Anda dapat menentukan lebih dari satu rentang IP yang dialokasikan saat membuat koneksi pribadi. Misalnya, jika rentang sudah habis, Anda dapat menetapkan rentang tambahan yang dialokasikan. Layanan tersebut menggunakan alamat IP dari semua rentang yang tersedia sesuai urutan yang Anda tetapkan.
Terraform
Gunakan resource Terraform untuk membuat koneksi pribadi.
Akun layanan dalam format service-HOST_PROJECT_NUMBER@service-networking.
diberikan peran servicenetworking.serviceAgent
saat koneksi pribadi dibuat karena akun tersebut disediakan tepat waktu (JIT).
Jika Anda mengalami error terkait izin compute.globalAddresses.list
atau
izin compute.projects.get
untuk project, jalankan perintah gcloud
berikut:
gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \ --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking. \ --role=roles/servicenetworking.serviceAgent
Mengubah konfigurasi akses layanan pribadi
Anda dapat mengubah rentang alamat IP yang dialokasikan untuk koneksi layanan pribadi tanpa mengubah instance Cloud SQL yang sudah ada. Untuk mengubah alamat IP pribadi dari instance Cloud SQL yang sudah ada, ikuti langkah-langkah ini.
Untuk mengubah rentang alamat IP yang dialokasikan:
Konsol
-
Di Konsol Google Cloud, buka halaman jaringan VPC.
- Pilih jaringan VPC yang ingin Anda gunakan.
- Pilih tab Koneksi layanan pribadi.
- Pilih tab Rentang IP yang dialokasikan untuk layanan.
Pilih nama rentang yang ingin dihapus.
Klik Lepaskan.
Klik Alokasikan rentang IP.
Buat rentang baru dengan nama dan rentang yang sama
Nama tersebut penting karena koneksi pribadi telah ditetapkan menggunakan nama alamat tersebut.
gcloud services vpc-peerings update \ --network=VPC_NETWORK_NAME \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force
Mengubah alamat IP pribadi dari instance Cloud SQL yang sudah ada.
Untuk mengubah alamat IP pribadi instance Cloud SQL yang ada, pindahkan instance dari jaringan aslinya ke jaringan VPC sementara. Kemudian, ubah konfigurasi akses layanan pribadi dari jaringan asli instance tersebut dan pindahkan kembali instance Cloud SQL ke jaringan asli.
Untuk berpindah ke jaringan VPC yang berbeda, ikuti semua langkah kecuali langkah terakhir
(memindahkan instance kembali) dalam prosedur berikut. Dalam hal ini,
TEMPORARY_VPC_NETWORK_NAME
adalah jaringan VPC baru. Selain itu,
hapus
koneksi pribadi yang lama.
Diperlukan waktu beberapa hari agar koneksi pribadi yang sudah dihapus dapat hilang dari
konsol Google Cloud.
Jika instance Cloud SQL dihosting pada jaringan VPC Bersama,
variabel VPC_NETWORK_NAME
yang digunakan dalam petunjuk berikut harus berupa nama jaringan
VPC project host. Untuk menentukan sebuah jaringan dengan jaringan VPC
Bersama, gunakan URL lengkap dari jaringan
tersebut—misalnya projects/HOST_PROJECT/global/networks/NETWORK_NAME
.
Konsol
-
Di Konsol Google Cloud, buka halaman jaringan VPC.
- Buat jaringan VPC sementara.
- Buat alokasi IP di jaringan VPC sementara.
- Buat koneksi pribadi dalam jaringan VPC sementara.
Pindahkan instance Cloud SQL ke jaringan VPC sementara.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/PROJECT_ID/global/networks/TEMPORARY_VPC_NETWORK_NAME \ --no-assign-ip
Ubah konfigurasi akses layanan pribadi di jaringan asli untuk menambahkan rentang baru yang dialokasikan atau menghapus rentang yang sudah ada.
Pindahkan kembali instance Cloud SQL ke jaringan VPC asli.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/PROJECT_ID/global/networks/ORIGINAL_VPC_NETWORK_NAME \ --no-assign-ip