Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat dokumentasi Apigee Edge.
Apigee terintegrasi dengan Kontrol Layanan VPC, yang memungkinkan Anda mengisolasi resource project Google Cloud. Hal ini membantu mencegah kebocoran/pemindahan data yang tidak sah.
Bagian ini menjelaskan cara menggunakan Kontrol Layanan VPC dengan Apigee.
Ringkasan
Kontrol Layanan VPC menentukan perimeter layanan yang berfungsi sebagai batas antara project dan layanan lainnya. Perimeter layanan adalah metode tingkat organisasi untuk melindungi layanan Google Cloud dalam project Anda guna memitigasi risiko pemindahan data yang tidak sah.
Kontrol Layanan VPC juga dapat memastikan bahwa klien dalam perimeter yang memiliki akses pribadi ke resource tidak memiliki akses ke resource yang tidak sah di luar perimeter.
Untuk melihat detail tentang manfaat perimeter layanan, lihat Ringkasan Kontrol Layanan VPC.
Saat menggunakan Kontrol Layanan VPC, perhatikan bahwa:
- Project Google Cloud dan runtime terkaitnya disertakan dalam perimeter Kontrol Layanan VPC project tersebut.
- Interaksi di antara layanan di dalam perimeter dapat dibatasi menggunakan fitur layanan yang dapat diakses jaringan VPC.
Apigee dan Apigee hybrid terintegrasi dengan Kontrol Layanan VPC. Untuk daftar lengkap produk yang terintegrasi dengan Kontrol Layanan VPC, lihat Produk yang didukung.
Dampak pada konektivitas internet
Jika Kontrol Layanan VPC diaktifkan, akses ke internet akan dinonaktifkan: runtime Apigee tidak akan lagi berkomunikasi dengan target internet publik apa pun. Anda harus merutekan traffic ke VPC dengan menetapkan rute kustom. Lihat Mengimpor dan mengekspor rute kustom.
Menyiapkan Kontrol Layanan VPC dengan Apigee
Proses umum untuk menyiapkan Kontrol Layanan VPC dengan Apigee adalah sebagai berikut:
- Aktifkan Kontrol Layanan VPC.
- Buat perimeter layanan baru.
- Konfigurasikan perimeter layanan.
Langkah-langkah ini dijelaskan secara lebih mendetail di bawah.
Untuk menyiapkan Kontrol Layanan VPC dengan Apigee:
-
Aktifkan Kontrol Layanan VPC untuk koneksi peering dari jaringan Anda ke Apigee dengan menjalankan perintah berikut:
gcloud services vpc-peerings enable-vpc-service-controls \ --network=SHARED_VPC_NETWORK --project=PROJECT_ID
Dengan keterangan:
- SHARED_VPC_NETWORK adalah nama jaringan VPC bersama Anda.
- PROJECT_ID adalah nama project yang menghosting jaringan VPC bersama; bukan project yang digunakan untuk membuat organisasi Apigee.
Perintah ini mengaktifkan Kontrol Layanan VPC untuk project Anda. Anda dapat mengeksekusi perintah ini beberapa kali untuk mengaktifkan Kontrol Layanan VPC untuk lebih dari satu project.
-
Buat perimeter baru seperti yang dijelaskan dalam Panduan Mulai Cepat Kontrol Layanan VPC. Saat membuat perimeter, Anda memilih project yang akan ditambahkan dalam perimeter tersebut serta layanan yang akan diamankan.
Untuk Apigee dan Apigee hybrid, Google merekomendasikan agar Anda mengamankan semua layanan saat membuat perimeter, termasuk Apigee API.
Untuk mengetahui informasi selengkapnya, lihat Membuat perimeter layanan.
- Konfigurasikan perimeter layanan, seperti yang dijelaskan dalam Detail dan konfigurasi perimeter layanan.
Untuk menambahkan portal terintegrasi dalam perimeter Anda, lihat Menambahkan portal terintegrasi ke perimeter.
Menyiapkan Kontrol Layanan VPC dengan Apigee hybrid
Apigee hybrid mendukung Kontrol Layanan VPC, tetapi ada langkah tambahan yang harus Anda lakukan. Proses umum untuk mengintegrasikan Apigee hybrid dengan Kontrol Layanan VPC adalah sebagai berikut:
- Menyiapkan konektivitas pribadi.
- Amankan layanan tambahan dalam perimeter.
- Siapkan repositori pribadi. (Repositori pribadi adalah repositori yang berada dalam perimeter; repositori tersebut tidak harus berupa repositori lokal selama berada di dalam perimeter.)
- Kirim image Apigee ke repositori pribadi Anda.
- Perbarui penggantian untuk menggunakan repositori pribadi selama proses penginstalan dan konfigurasi hybrid.
Setiap langkah ini dijelaskan secara lebih mendetail dalam prosedur berikut.
Untuk menyiapkan Kontrol Layanan VPC dengan Apigee Hybrid:
- Siapkan alamat IP pribadi untuk host jaringan campuran Anda, seperti yang dijelaskan dalam Menyiapkan konektivitas pribadi ke Google API dan layanan Google. Hal ini mencakup konfigurasi rute, aturan firewall, dan entri DNS untuk mengizinkan Google API mengakses IP pribadi tersebut.
-
Ikuti langkah-langkah di Menyiapkan Kontrol Layanan VPC dengan Apigee.
Selama proses ini, Anda harus memastikan untuk mengamankan layanan berikut selain layanan yang ditentukan untuk Apigee, dalam perimeter Anda:
- Anthos Service Mesh
- Cloud Monitoring (Stackdriver)
- Google Kubernetes Engine (jika Anda menjalankan di GKE)
- Google Container Registry (jika Anda menggunakannya sebagai repositori lokal)
Untuk menambahkan layanan ini ke perimeter Anda, ikuti petunjuk di Detail dan konfigurasi perimeter layanan.
- Salin image Apigee ke repositori pribadi Anda:
-
Download image Apigee yang ditandatangani dari Docker Hub seperti yang dijelaskan di sini. Pastikan untuk menentukan nomor versi terbaru.
Contoh:
docker pull google/apigee-installer:1.3.3 docker pull google/apigee-authn-authz:1.3.3 docker pull google/apigee-mart-server:1.3.3 docker pull google/apigee-synchronizer:1.3.3 docker pull google/apigee-runtime:1.3.3 docker pull google/apigee-hybrid-cassandra-client:1.3.3 docker pull google/apigee-hybrid-cassandra:1.3.3 docker pull google/apigee-cassandra-backup-utility:1.3.3 docker pull google/apigee-udca:1.3.3 docker pull google/apigee-stackdriver-logging-agent:1.6.8 docker pull google/apigee-prom-prometheus:v2.9.2 docker pull google/apigee-stackdriver-prometheus-sidecar:0.7.5 docker pull google/apigee-connect-agent:1.3.3 docker pull google/apigee-watcher:1.3.3 docker pull google/apigee-operators:1.3.3 docker pull google/apigee-kube-rbac-proxy:v0.4.1
-
Beri tag pada gambar.
Contoh berikut memberi tag pada image di repo GCR yang berbasis di Amerika Serikat:
docker tag google/apigee-installer:1.3.3 us.gcr.io/project_ID/apigee-installer:1.3.3 docker tag google/apigee-authn-authz:1.3.3 us.gcr.io/project_ID/apigee-authn-authz:1.3.3 docker tag google/apigee-mart-server:1.3.3 us.gcr.io/project_ID/apigee-mart-server:1.3.3 docker tag google/apigee-synchronizer:1.3.3 us.gcr.io/project_ID/apigee-synchronizer:1.3.3 docker tag google/apigee-runtime:1.3.3 us.gcr.io/project_ID/apigee-runtime:1.3.3 docker tag google/apigee-hybrid-cassandra-client:1.3.3 us.gcr.io/project_ID/apigee-hybrid-cassandra-client:1.3.3 docker tag google/apigee-hybrid-cassandra:1.3.3 us.gcr.io/project_ID/apigee-hybrid-cassandra:1.3.3 docker tag google/apigee-cassandra-backup-utility:1.3.3 us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker tag google/apigee-udca:1.3.3 us.gcr.io/project_ID/apigee-udca:1.3.3 docker tag google/apigee-stackdriver-logging-agent:1.6.8 us.gcr.io/project_ID/apigee-stackdriver-logging-agent:1.6.8 docker tag google/apigee-prom-prometheus:v2.9.2 us.gcr.io/project_ID/apigee-prom-prometheus:v2.9.2 docker tag google/apigee-stackdriver-prometheus-sidecar:0.7.5 us.gcr.io/project_ID/apigee-stackdriver-prometheus-sidecar:0.7.5 docker tag google/apigee-connect-agent:1.3.3 us.gcr.io/project_ID/apigee-connect-agent:1.3.3 docker tag google/apigee-watcher:1.3.3 us.gcr.io/project_ID/apigee-watcher:1.3.3 docker tag google/apigee-operators:1.3.3 us.gcr.io/project_ID/apigee-operators:1.3.3 docker tag google/apigee-kube-rbac-proxy:v0.4.1 us.gcr.io/project_ID/apigee-kube-rbac-proxy:v0.4.1
Meskipun tidak diperlukan, Google merekomendasikan agar Anda menyertakan project ID atau nilai pengenal lainnya di jalur repo untuk setiap image.
-
Kirim image ke repositori pribadi Anda.
Contoh berikut mendorong image ke repo GCR berbasis Amerika Serikat:
docker push us.gcr.io/project_ID/apigee-installer:1.3.3 docker push us.gcr.io/project_ID/apigee-authn-authz:1.3.3 docker push us.gcr.io/project_ID/apigee-mart-server:1.3.3 docker push us.gcr.io/project_ID/apigee-synchronizer:1.3.3 docker push us.gcr.io/project_ID/apigee-runtime:1.3.3 docker push us.gcr.io/project_ID/apigee-hybrid-cassandra-client:1.3.3 docker push us.gcr.io/project_ID/apigee-hybrid-cassandra:1.3.3 docker push us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker push us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker push us.gcr.io/project_ID/apigee-udca:1.3.3 docker push us.gcr.io/project_ID/apigee-stackdriver-logging-agent:1.6.8 docker push us.gcr.io/project_ID/apigee-prom-prometheus:v2.9.2 docker push us.gcr.io/project_ID/apigee-stackdriver-prometheus-sidecar:0.7.5 docker push us.gcr.io/project_ID/apigee-connect-agent1.3.3 docker push us.gcr.io/project_ID/apigee-watcher1.3.3 docker push us.gcr.io/project_ID/apigee-operators1.3.3 docker push us.gcr.io/project_ID/apigee-kube-rbac-proxy:v0.4.1
Meskipun tidak diperlukan, Google merekomendasikan agar Anda menyertakan project ID atau nilai pengenal lainnya di jalur repo untuk setiap image.
-
-
Perbarui file penggantian untuk mengarahkan URL image ke repositori pribadi Anda, seperti yang dijelaskan dalam Menentukan penggantian konfigurasi
Anda harus mengubah URL gambar untuk komponen berikut:
Nama Komponen (dalam file penggantian) URL image ao
your_private_repo/apigee-operators
authz
your_private_repo/apigee-authn-authz
cassandra
your_private_repo/apigee-hybrid-cassandra
auth: your_private_repo/apigee-hybrid-cassandra-client
backup: your_private_repo/apigee-cassandra-backup-utility
restore: your_private_repo/apigee-cassandra-backup-utilityconnectAgent
your_private_repo/apigee-connect-agent
installer
your_private_repo/apigee-installer
kubeRBACProxy
your_private_repo/apigee-kube-rbac-proxy
logger
your_private_repo/apigee-stackdriver-logging-agent
mart
your_private_repo/apigee-mart-server
metrics
your_private_repo/apigee-prom-prometheus
sdSidecar: your_private_repo/apigee-stackdriver-prometheus-sidecarruntime
your_private_repo/apigee-runtime
synchronizer
your_private_repo/apigee-synchronizer
udca
your_private_repo/apigee-udca
fluentd: your_private_repo/apigee-stackdriver-logging-agentwatcher
your_private_repo/apigee-watcher
- Terapkan perubahan Anda menggunakan image baru di GCR, seperti yang dijelaskan dalam artikel Menerapkan konfigurasi ke cluster.
Memberikan akses ke perimeter untuk portal terintegrasi
VPC-SC mendukung pemberian tingkat akses VPC-SC ke portal terintegrasi, tetapi proses ini memerlukan langkah tambahan, seperti yang dijelaskan di bagian ini.
Jika Anda tidak memberikan tingkat akses ke portal terintegrasi, portal terintegrasi tidak akan tersedia untuk organisasi Apigee yang mengaktifkan VPC-SC.
Memberikan tingkat akses ke portal:
- Tidak menempatkan portal terintegrasi dalam perimeter.
- Memungkinkan portal terintegrasi diakses dari luar perimeter.
- Mengizinkan eksposur data Apigee yang dilindungi VPC-SC (seperti data aplikasi) kepada pengguna portal di luar perimeter VPC-SC.
Untuk mengetahui informasi selengkapnya, lihat Mengizinkan akses ke resource yang dilindungi dari luar perimeter.
Prasyarat
Sebelum memberikan akses perimeter ke portal terintegrasi, Anda harus mengaktifkan
Access Context Manager API
untuk project, jika belum
diaktifkan. Anda dapat melakukannya di konsol Cloud atau dengan menggunakan perintah gcloud services enable.
Untuk memeriksa apakah API diaktifkan, periksa output perintah gcloud services list, seperti yang dijelaskan dalam Langkah 2: Mengaktifkan Apigee API.
Selain itu, Anda harus memiliki alamat email akun layanan untuk project tempat portal digunakan. Untuk mendapatkannya, Anda memerlukan project ID dan nomor project GCP. Langkah-langkah berikut menjelaskan cara mendapatkan nilai ini:
- Dapatkan detail project GCP menggunakan perintah gcloud projects list, seperti yang ditunjukkan dalam contoh berikut:
gcloud projects list
Perintah ini menampilkan project ID (di kolom
PROJECT_ID
) dan nomor project (di kolomPROJECT_NUMBER
) untuk setiap project di organisasi GCP Anda. -
Identifikasi alamat email akun layanan Apigee. Ini adalah akun yang sama dengan akun yang dibuat penginstal Apigee saat Anda menyediakan organisasi di Langkah 3: Membuat organisasi.
Untuk mendapatkan alamat email ini, gunakan perintah
iam service-accounts list
, yang menggunakan sintaksis berikut:gcloud iam service-accounts list --project GCP_PROJECT_ID
Contoh:
gcloud iam service-accounts list --project my-project DISPLAY NAME EMAIL DISABLED Apigee default service account service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.com False Compute Engine default service account8675309
-compute@developer.gserviceaccount.com FalseAkun layanan yang Anda inginkan adalah akun yang alamat emailnya cocok dengan format berikut:
service-GCP_PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
Misalnya:
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.com -
Dapatkan ID kebijakan (atau perimeter) menggunakan perintah
access-context-manager policies list
. Teruskan ID organisasi ke perintah ini, seperti yang ditunjukkan pada contoh berikut:gcloud access-context-manager policies list --organization=organizations/GCP_ORG_ID
gcloud
merespons dengan daftar kebijakan yang terkait dengan organisasi yang ditentukan; misalnya:gcloud access-context-manager policies list --organization=organizations/
2244340
NAME ORGANIZATION TITLE ETAG04081981
2244340
Default policy
421924c5a97c0Icu8ID kebijakan VPC-SC (juga dikenal sebagai ID perimeter) adalah ID perimeter layanan VPC-SC yang berfungsi sebagai batas antara project Anda dan layanan lainnya). Ini adalah nilai di kolom
NAME
.
Langkah-langkah untuk memberikan akses perimeter ke portal terintegrasi
Untuk memberikan akses perimeter ke portal terintegrasi:
- Kumpulkan alamat email akun layanan dan ID kebijakan VPC-SC, seperti yang dijelaskan dalam Prerequsites.
-
Buat file kondisi di komputer admin yang menentukan alamat akun layanan yang akan memberikan akses portal melalui perimeter.
File dapat bernama apa saja yang Anda inginkan, tetapi harus memiliki ekstensi
*.yaml
. Contoh,my-portal-access-rules.yaml
. -
Dalam file kondisi, tambahkan bagian
members
yang menentukan akun layanan Apigee, seperti yang ditunjukkan dalam contoh berikut:- members: - serviceAccount:
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.comPerhatikan bahwa menambahkan bagian
members
sudah cukup; Anda tidak perlu menambahkan bagian tingkat akses. Untuk informasi selengkapnya tentang cara membuat file kondisi, lihat Membatasi akses berdasarkan akun pengguna atau layanan. - Buat tingkat akses dengan perintah
access-context-manager levels create
; misalnya:gcloud access-context-manager levels create ACCESS_LEVEL_ID \ --title ACCESS_LEVEL_TITLE \ --basic-level-spec PATH/TO/CONDITIONS_FILE.yaml \ --policy=POLICY_ID
Dengan keterangan:
- ACCESS_LEVEL_ID adalah ID untuk tingkat akses baru yang diberikan; misalnya,
my-portal-access-level
. - ACCESS_LEVEL_TITLE adalah judul untuk tingkat akses. Judul dapat berupa apa pun yang Anda inginkan, tetapi Google merekomendasikan agar Anda memberikan nilai yang bermakna sehingga Anda dan administrator lain akan mengetahui apa yang berlaku. Misalnya, Tingkat Akses Portal Saya.
- CONDITIONS_FILE adalah jalur ke file YAML yang Anda buat di langkah sebelumnya.
- POLICY_ID adalah ID kebijakan atau perimeter.
Contoh:
gcloud access-context-manager levels create
my-portal-access-level
\ --title My Portal Access Level \ --basic-level-spec ~/my-portal-access-rules.yaml
\ --policy=04081981
- ACCESS_LEVEL_ID adalah ID untuk tingkat akses baru yang diberikan; misalnya,
- Perbarui perimeter dengan tingkat akses baru menggunakan perintah
access-context-manager perimeters update
:gcloud access-context-manager perimeters update POLICY_ID \ --add-access-levels=ACCESS_LEVEL_ID \ --policy=POLICY_ID
Contoh:
gcloud access-context-manager perimeters update
04081981
\ --add-access-levels=my-portal-access-level
\ --policy=04081981
Pemecahan masalah
Periksa hal-hal berikut:
- Jika Access Context Manager API tidak diaktifkan untuk project GCP Anda,
gcloud
akan meminta Anda mengaktifkannya saat Anda mencoba mencantumkan atau menetapkan kebijakan. - Pastikan Anda menggunakan ID organisasi GCP, bukan ID organisasi Apigee saat mendapatkan detail tentang organisasi.
- Beberapa perintah yang dijelaskan di bagian ini memerlukan izin yang ditingkatkan; misalnya, untuk mendapatkan detail tentang akun layanan untuk project, Anda harus menjadi pemilik project tersebut.
-
Untuk memverifikasi bahwa akun layanan ada, jalankan perintah
iam service-accounts describe
, seperti yang ditunjukkan pada contoh berikut:gcloud iam service-accounts describe
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.comgcloud
merespons dengan informasi tentang akun layanan, termasuk nama tampilan dan project ID yang terkait. Jika akun layanan tidak ada,gcloud
akan merespons dengan errorNOT_FOUND
.
Batasan
Integrasi Apigee dengan Kontrol Layanan VPC memiliki batasan berikut:
- Portal terintegrasi memerlukan langkah tambahan untuk dikonfigurasi.
- Anda harus men-deploy portal Drupal dalam perimeter layanan.