Private IP - MappingSystem/Tutorial-Buka-Toko GitHub Wiki
Connect Google App Engine and Google Compute Engine
Setiap jaringan VPC memiliki dua aturan firewall yang berlaku tapi tidak ditampilkan di Console:
- Aturan keluar: Akses internet diizinkan jika tidak ada aturan firewall lain yang menyangkal lalu lintas keluar dan jika instance memiliki alamat IP eksternal atau menggunakan instance NAT. Lihat persyaratan Akses External.
- Aturan masuk: Aturan masuk yang tindakannya ditolak, sumbernya adalah 0.0.0.0/0, dan prioritas adalah serendah mungkin (65.535) melindungi semua instance dengan memblokir lalu lintas masuk ke mereka.
Akses internet hanya dapat dilakukan jika salah satu dari yang berikut ini terpenuhi:
- Mesin virtual harus memiliki alamat IP Eksternal yang ditugaskan ke sebuah instance ketika itu dibuat atau setelah itu dibuat.
- Mesin virtual harus dapat menggunakan Cloud NAT atau proksi berbasis instance yang merupakan target untuk rute statis 0.0.0.0/0.
Anda dapat melakukan interkoneksi secara privat untuk VM Instance atau Kubernetes Engine jika tidak, biaya berikut akan berlaku baik untuk IP Eksternal maupun Cloud NAT mulai 1 Januari 2020:
Privat IP memberikan sejumlah keunggulan dibandingkan alamat IP publik (eksternal), termasuk:
- Permukaan serangan berkurang. Menghapus alamat IP eksternal dari VM membuat lebih sulit bagi penyerang untuk mencapai VM dan mengeksploitasi kerentanan potensial.
- Peningkatan fleksibilitas. Memperkenalkan lapisan abstraksi, seperti penyeimbang beban atau layanan NAT, memungkinkan pengiriman layanan yang lebih andal dan fleksibel bila dibandingkan dengan alamat IP eksternal statis.
Keterbatasan Cloud IAP:
- Bandwidth: Fitur Cloud IAP TCP forwarding tidak dimaksudkan untuk transfer data massal. Cloud IAP berhak membatasi pengguna yang dianggap menyalahgunakan layanan ini.
- Panjang koneksi: Cloud IAP tidak akan memutuskan sesi aktif kecuali untuk pemeliharaan.
- Protokol: Cloud IAP untuk TCP tidak mendukung UDP.
gcloud compute firewall-rules create allow-ssh-from-iap \
--source-ranges 35.235.240.0/20 \
--target-tags http-tag \
--allow tcp:22
Di Cloud Shell, tes koneksi ke instance www-1 via Cloud IAP:
gcloud beta compute ssh www-1 \
--zone us-central1-b \
--tunnel-through-iap
Grant access untuk additional users
- Security > Identity-Aware Proxy
- Select the SSH and TCP Resources tab
- On the right-hand side, click Add Member.
Buat Cloud Router instances di setiap region:
gcloud compute routers create nat-router-us-central1 \
--network default \
--region us-central1
Atur setelan routers untuk Cloud NAT:
gcloud compute routers nats create nat-config \
--router-region us-central1 \
--router nat-router-us-central1 \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Check di Cloud NAT Console dan Test:
gcloud beta compute ssh www-1 --tunnel-through-iap
curl example.com
Untuk koneksi sumber daya Lokal / non-GCP Anda dapat menggunakan Konektor IAP.
Konektor Cloud IAP meneruskan permintaan ke backend lokal Anda setelah dikerahkan. Karena kebijakan akses Cloud IAM diberlakukan di konektor Cloud IAP, pastikan bahwa semua permintaan ke backend Anda telah diautentikasi dan diotorisasi oleh Cloud IAP.
Mulai 9 April 2019, Anda dapat menggunakan konektor VPC tanpa server untuk koneksi ke sumber daya internal di jaringan VPC Anda di Google Cloud Platform, seperti Compute Engine Mesin virtual VM, mesin Cloud Memorystore, dll dengan alamat IP internal.Akses VPC Tanpa Server dihargai sebagai berikut. Harga dapat berubah (dan mungkin meningkat) saat Serverless VPC Access dalam versi beta atau Ketersediaan Umum.
Anda dapat memilih untuk membuat mode otomatis atau mode kustom jaringan VPC. Setiap jaringan baru yang Anda buat harus memiliki nama unik dalam proyek yang sama.
$ gcloud compute networks create NETWORK_NAME \
--subnet-mode=[auto|custom] \
--bgp-routing-mode=DYNAMIC_ROUTING_MODE
$ gcloud compute networks list
NAME SUBNET_MODE BGP_ROUTING_MODE IPV4_RANGE GATEWAY_IPV4
default AUTO REGIONAL
$ gcloud compute networks describe default
autoCreateSubnetworks: true
creationTimestamp: '2019-02-20T05:16:29.303-08:00'
description: Default network for the project
id: 'XXXXXXXXXXXXXXXXXXXXX'
kind: compute#network
name: default
routingConfig:
routingMode: REGIONAL
selfLink: https://www.googleapis.com/compute/v1/projects/chetabahana/global/networks/default
subnetworks:
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/europe-west4/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/us-east1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/asia-east2/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/us-west2/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/australia-southeast1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/asia-south1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/asia-east1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/southamerica-east1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/us-east4/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/asia-southeast1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/asia-northeast2/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/europe-west1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/europe-north1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/europe-west6/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/us-west1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/us-central1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/europe-west2/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/northamerica-northeast1/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/europe-west3/subnetworks/default
- https://www.googleapis.com/compute/v1/projects/chetabahana/regions/asia-northeast1/subnetworks/default
x_gcloud_bgp_routing_mode: REGIONAL
x_gcloud_subnet_mode: AUTO
Setiap jaringan VPC terdiri dari satu atau lebih partisi rentang IP yang berguna yang disebut subnet. Setiap subnet dikaitkan dengan suatu wilayah. Sendiri, jaringan VPC tidak memiliki rentang alamat IP yang terkait dengannya. IP Range ditentukan untuk subnet.
$ gcloud compute networks subnets list --network=default
NAME REGION NETWORK RANGE
default us-west2 default 10.168.0.0/20
default asia-northeast1 default 10.146.0.0/20
default asia-northeast2 default 10.174.0.0/20
default us-west1 default 10.138.0.0/20
default southamerica-east1 default 10.158.0.0/20
default europe-west6 default 10.172.0.0/20
default europe-west4 default 10.164.0.0/20
default asia-east1 default 10.140.0.0/20
default europe-north1 default 10.166.0.0/20
default asia-southeast1 default 10.148.0.0/20
default us-east4 default 10.150.0.0/20
default europe-west1 default 10.132.0.0/20
default europe-west2 default 10.154.0.0/20
default europe-west3 default 10.156.0.0/20
default australia-southeast1 default 10.152.0.0/20
default asia-south1 default 10.160.0.0/20
default us-east1 default 10.142.0.0/20
default us-central1 default 10.128.0.0/20
default asia-east2 default 10.170.0.0/20
default northamerica-northeast1 default 10.162.0.0/20
$ gcloud compute networks subnets create SUBNET_NAME \
--network=NETWORK \
--range=PRIMARY_RANGE \
--region=REGION
$ gcloud compute networks subnets expand-ip-range SUBNET_NAME \
--region=REGION \
--prefix-length=PREFIX_LENGTH
$ gcloud compute networks subnets update SUBNET_NAME \
--region=REGION \
--add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE
$ gcloud compute networks update NETWORK_NAME \
--switch-to-custom-subnet-mode
$ gcloud compute networks update NETWORK_NAME \
--bgp-routing-mode=DYNAMIC_ROUTING_MODE
Untuk membuat konektor dapat dilakukan via console atau command sbb:
$ gcloud services enable vpcaccess.googleapis.com
$ gcloud beta compute networks vpc-access connectors create CONNECTOR_NAME \
--network VPC_NETWORK --region REGION --range IP_RANGE
Contoh: Perintah berikut membuat konektor Akses VPC dengan nama 'my-vpc-connector' di wilayah 'us-central1' di jaringan 'my-network' dengan IP Kisaran CIDR '10.8.0.0/28'.
$ gcloud beta compute networks vpc-access connectors create my-vpc-connector \
--region=us-central1 --range=10.8.0.0/28
Create request issued for: [my-vpc-connector]
Waiting for operation [66bba903-ccad-4ad5-a5f4-a6b784d60575] to complete...done.
Created connector [my-vpc-connector]
$ gcloud beta compute networks vpc-access connectors describe my-vpc-connector \
--region=us-central1
ipCidrRange: 10.8.0.0/28
maxThroughput: 1000
minThroughput: 200
name: projects/<project>/locations/us-central1/connectors/my-vpc-connector
network: default
state: READY
vpc_access_connector:
name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME"
$ gcloud beta app deploy
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['beta', 'app', 'deploy', '--version=$_VERSION']