Menggunakan Kontrol Layanan VPC dengan Apigee dan Apigee Hybrid

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca 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 lain. Perimeter layanan adalah metode tingkat organisasi untuk melindungi layanan Google Cloud di project Anda untuk mengurangi 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 tidak sah di luar perimeter.

Untuk melihat manfaat perimeter layanan secara detail, lihat Ringkasan Kontrol Layanan VPC.

Saat menggunakan Kontrol Layanan VPC, perhatikan bahwa:

  • Project Google Cloud dan runtime terkait tercakup dalam perimeter Kontrol Layanan VPC project tersebut.
  • Interaksi antarlayanan di dalam perimeter dapat dibatasi menggunakan fitur layanan yang dapat diakses jaringan VPC.

Apigee dan Apigee Hybrid terintegrasi dengan Kontrol Layanan VPC. Untuk mengetahui 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 mana pun. Anda harus mengarahkan traffic ke VPC dengan membuat 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:

  1. Aktifkan Kontrol Layanan VPC.
  2. Buat perimeter layanan baru.
  3. Konfigurasi perimeter layanan.

Langkah-langkah ini dijelaskan secara lebih mendetail di bawah.

Untuk menyiapkan Kontrol Layanan VPC dengan Apigee:

  1. Aktifkan Kontrol Layanan VPC untuk koneksi yang di-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; ini bukan project yang digunakan untuk membuat organisasi Apigee.

    Perintah ini mengaktifkan Kontrol Layanan VPC untuk project Anda. Anda dapat menjalankan perintah ini beberapa kali untuk mengaktifkan Kontrol Layanan VPC untuk lebih dari satu project.

  2. Buat perimeter baru seperti yang dijelaskan di Panduan Memulai Kontrol Layanan VPC. Saat membuat perimeter, Anda memilih project yang akan ditambahkan ke dalam perimeter tersebut, serta layanan mana yang perlu diamankan.

    Untuk Apigee dan Apigee Hybrid, Google merekomendasikan Anda untuk mengamankan semua layanan saat membuat perimeter, termasuk Apigee API.

    Untuk mengetahui informasi selengkapnya, lihat Membuat perimeter layanan.

  3. Konfigurasi 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-langkah tambahan yang harus Anda lakukan. Proses umum untuk mengintegrasikan Apigee Hybrid dengan Kontrol Layanan VPC adalah sebagai berikut:

  1. Siapkan konektivitas pribadi.
  2. Mengamankan layanan tambahan di dalam perimeter.
  3. Siapkan repositori pribadi. (Repositori pribadi adalah repositori yang berada di dalam perimeter; tidak harus berupa repositori lokal selama berada di dalam perimeter.)
  4. Kirim image Apigee ke repositori pribadi Anda.
  5. 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:

  1. Siapkan alamat IP pribadi untuk host jaringan hybrid Anda, seperti yang dijelaskan dalam Menyiapkan konektivitas pribadi ke Google API dan layanan Google. Hal ini melibatkan konfigurasi rute, aturan firewall, dan entri DNS agar Google API dapat mengakses IP pribadi tersebut.
  2. Ikuti langkah-langkah di Menyiapkan Kontrol Layanan VPC dengan Apigee.

    Selama proses ini, Anda harus memastikan untuk mengamankan layanan berikut selain layanan yang ditetapkan untuk Apigee, dalam perimeter Anda:

    • Anthos Service Mesh
    • Cloud Monitoring (Stackdriver)
    • Google Kubernetes Engine (jika Anda menjalankan di GKE)
    • Google Container Registry (jika Anda menggunakan ini sebagai repositori lokal)

    Untuk menambahkan layanan ini ke perimeter Anda, ikuti petunjuk dalam artikel Detail dan konfigurasi perimeter layanan.

  3. Salin image Apigee ke repositori pribadi Anda:
    1. 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
    2. Beri tag pada gambar.

      Contoh berikut memberi tag pada image dalam repo GCR yang berbasis di AS:

      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 wajib, Google merekomendasikan agar Anda menyertakan project ID atau nilai pengidentifikasi lainnya di jalur repo untuk setiap gambar.

    3. Kirim image ke repositori pribadi Anda.

      Contoh berikut mengirim image ke repo GCR yang berbasis di 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 wajib, Google merekomendasikan agar Anda menyertakan project ID atau nilai pengidentifikasi lainnya di jalur repo untuk setiap gambar.

  4. Perbarui file penggantian untuk mengarahkan URL gambar ke repositori pribadi, seperti yang dijelaskan dalam Menentukan penggantian konfigurasi

    Anda harus mengubah URL gambar untuk komponen berikut:

    Nama Komponen (dalam file pengganti) 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-utility
    connectAgent 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-sidecar
    runtime your_private_repo/apigee-runtime
    synchronizer your_private_repo/apigee-synchronizer
    udca your_private_repo/apigee-udca

    fluentd: your_private_repo/apigee-stackdriver-logging-agent
    watcher your_private_repo/apigee-watcher

  5. Terapkan perubahan menggunakan gambar baru di GCR, seperti yang dijelaskan dalam Menerapkan konfigurasi ke cluster.

Memberi portal terintegrasi akses ke perimeter

VPC-SC mendukung pemberian tingkat akses VPC-SC ke portal terintegrasi, tetapi proses ini memerlukan langkah-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 ke dalam perimeter.
  • Memungkinkan portal terintegrasi diakses dari luar perimeter.
  • Mengizinkan eksposur data Apigee yang dilindungi VPC-SC (seperti data aplikasi) untuk 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 Anda, jika belum diaktifkan. Anda dapat melakukannya di Konsol Cloud atau dengan menggunakan perintah gcloud services enable.

Untuk memeriksa apakah API sudah diaktifkan, periksa output perintah gcloud services list, seperti yang dijelaskan di Langkah 2: Aktifkan 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:

  1. Dapatkan detail project GCP dengan menggunakan perintah gcloud projects list, seperti yang ditunjukkan contoh berikut:
    gcloud projects list

    Perintah ini menampilkan project ID (di kolom PROJECT_ID) dan nomor project (di kolom PROJECT_NUMBER) untuk setiap project di organisasi GCP Anda.

  2. Identifikasi alamat email akun layanan Apigee. Akun ini sama dengan yang dibuat oleh penginstal Apigee saat Anda menyediakan organisasi di Langkah 3: Buat 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 account     8675309-compute@developer.gserviceaccount.com          False

    Akun layanan yang Anda inginkan adalah akun yang alamat emailnya cocok dengan format berikut:
    service-GCP_PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com

    Contoh:
    service-8675309@gcp-sa-apigee.iam.gserviceaccount.com

  3. Dapatkan ID kebijakan (atau perimeter) menggunakan perintah access-context-manager policies list. Teruskan ID organisasi ke perintah ini, seperti yang ditunjukkan 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                 ETAG
    04081981      2244340           Default policy        421924c5a97c0Icu8

    ID 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:

  1. Kumpulkan alamat email akun layanan dan ID kebijakan VPC-SC, seperti yang dijelaskan dalam Prasyarat.
  2. Buat file kondisi di mesin admin Anda yang menentukan alamat akun layanan yang akan memberikan akses portal melalui perimeter.

    File dapat berupa nama apa pun yang Anda inginkan, tetapi harus memiliki ekstensi *.yaml. Contoh, my-portal-access-rules.yaml

  3. Dalam file kondisi, tambahkan bagian members yang menentukan akun layanan Apigee, seperti yang ditunjukkan contoh berikut:

    - members:
      - serviceAccount:service-8675309@gcp-sa-apigee.iam.gserviceaccount.com

    Perhatikan 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 pengguna atau akun layanan.

  4. 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 penerapannya. 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
  5. Perbarui perimeter dengan tingkat akses yang 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 untuk mengaktifkannya saat Anda mencoba mencantumkan atau menetapkan kebijakan.
  • Pastikan Anda menggunakan ID organisasi GCP, bukan ID organisasi Apigee saat mendapatkan detail organisasi.
  • Beberapa perintah yang dijelaskan di bagian ini memerlukan izin yang ditingkatkan; misalnya, untuk mendapatkan detail tentang akun layanan untuk suatu project, Anda harus menjadi pemilik project tersebut.
  • Untuk memverifikasi bahwa akun layanan ada, jalankan perintah iam service-accounts describe, seperti yang ditunjukkan contoh berikut:

    gcloud iam service-accounts describe service-8675309@gcp-sa-apigee.iam.gserviceaccount.com

    gcloud merespons dengan informasi tentang akun layanan, termasuk nama tampilan dan project ID yang memilikinya. Jika akun layanan tidak ada, gcloud akan merespons dengan error NOT_FOUND.

Batasan

Integrasi Apigee dengan Kontrol Layanan VPC memiliki batasan berikut:

  • Portal terintegrasi memerlukan langkah tambahan untuk mengonfigurasi.
  • Anda harus men-deploy portal Drupal di dalam perimeter layanan.