Menggunakan Kontrol Layanan VPC dengan Apigee dan Apigee Hybrid

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat Dokumentasi Apigee Edge.

Apigee terintegrasi dengan Layanan VPC Kontrol, 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 satu project dan layanan lainnya. Perimeter layanan adalah metode tingkat organisasi untuk melindungi Google Cloud di proyek Anda untuk memitigasi risiko pemindahan data yang tidak sah.

Kontrol Layanan VPC juga dapat memastikan bahwa klien yang berada di dalam perimeter memiliki akses pribadi resource tidak memiliki akses ke sumber daya yang tidak sah di luar perimeter.

Untuk gambaran rinci tentang manfaat perimeter layanan, lihat referensi Ringkasan Kontrol Layanan VPC.

Saat menggunakan Kontrol Layanan VPC, perhatikan bahwa:

  • Baik project Google Cloud maupun runtime terkaitnya disertakan dalam perimeter Kontrol Layanan VPC project tersebut.
  • Interaksi antarlayanan di dalam perimeter dapat dibatasi menggunakan Layanan yang dapat diakses jaringan VPC aplikasi baru.

Apigee dan Apigee Hybrid terintegrasi dengan Kontrol Layanan VPC. Untuk daftar lengkap yang terintegrasi dengan Kontrol Layanan VPC, lihat Produk yang didukung.

Dampak pada konektivitas internet

Saat Kontrol Layanan VPC diaktifkan, akses ke internet akan dinonaktifkan: runtime Apigee tidak akan lagi berkomunikasi dengan target internet publik mana pun. Anda harus mengarahkan lalu lintas 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:

  1. Mengaktifkan Kontrol Layanan VPC.
  2. Membuat perimeter layanan baru.
  3. Mengonfigurasi 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 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; itu bukan proyek yang digunakan untuk membuat organisasi Apigee.

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

  2. Buat perimeter baru seperti yang dijelaskan dalam Panduan Memulai Kontrol Layanan VPC. Kapan Anda membuat perimeter, Anda memilih proyek mana yang akan ditambahkan di dalam perimeter tersebut serta keamanan layanan.

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

    Untuk informasi selengkapnya, lihat Membuat layanan perimeter.

  3. Mengonfigurasi perimeter layanan, seperti yang dijelaskan dalam Detail perimeter layanan dan konfigurasi.

Untuk menambahkan portal terintegrasi dalam perimeter, lihat Menambahkan portal terintegrasi portal ke perimeter.

Menyiapkan Kontrol Layanan VPC dengan Apigee Hybrid

Apigee Hybrid mendukung Kontrol Layanan VPC, tetapi ada langkah-langkah tambahan yang harus Anda mereka lakukan. Proses umum untuk mengintegrasikan Apigee Hybrid dengan Kontrol Layanan VPC adalah sebagai berikut berikut ini:

  1. Menyiapkan konektivitas pribadi.
  2. Amankan 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. Memperbarui penggantian untuk menggunakan repositori pribadi selama penginstalan hybrid dan proses konfigurasi.

Setiap langkah ini dijelaskan secara lebih mendetail dalam prosedur berikut.

Untuk menyiapkan Kontrol Layanan VPC dengan Apigee Hybrid:

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

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

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

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

  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 ID project atau ID yang mengidentifikasi nilai di jalur repo untuk setiap gambar.

    3. Kirim image ke repositori pribadi Anda.

      Contoh berikut mengirim gambar ke repositori GCR yang berbasis di AS:

      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 ID project atau ID yang mengidentifikasi nilai di jalur repo untuk setiap gambar.

  4. Perbarui file penggantian untuk mengarahkan URL gambar ke repositori pribadi Anda, sebagaimana diuraikan 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 image baru di GCR, seperti yang dijelaskan dalam Ajukan permohonan konfigurasi ke cluster.

Memberikan akses ke perimeter oleh portal terintegrasi

VPC-SC mendukung pemberian tingkat akses VPC-SC ke portal terintegrasi, tetapi memerlukan langkah tambahan, seperti yang dijelaskan di bagian ini.

Jika Anda tidak memberikan tingkat akses ke portal terintegrasi, portal terintegrasi akan tidak tersedia untuk organisasi Apigee yang mendukung VPC-SC.

Memberikan tingkat akses ke portal:

  • Tidak menempatkan portal terintegrasi di dalam perimeter.
  • Memungkinkan portal terintegrasi untuk diakses dari luar perimeter.
  • Mengizinkan eksposur data Apigee yang dilindungi VPC-SC (seperti data aplikasi) kepada pengguna portal di luar perimeter VPC-SC.

Untuk 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 mengaktifkan pembuatan versi. Anda dapat melakukannya di Cloud Console atau dengan menggunakan perintah gcloud services enable.

Untuk memeriksa apakah API sudah diaktifkan, periksa output perintah gcloud services list, yang dijelaskan di Langkah 2: Aktifkan API Apigee.

Selain itu, Anda harus memiliki alamat email akun layanan untuk project tempat portal yang digunakan. Untuk mendapatkannya, Anda memerlukan project ID dan nomor project GCP. Langkah-langkah berikut menjelaskan cara mendapatkan nilai ini:

  1. Dapatkan detail project GCP menggunakan perintah gcloud projects list, sebagai contoh berikut menunjukkan:
    gcloud projects list

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

  2. Identifikasi alamat email akun layanan Apigee. Ini sama saja yang dibuat oleh penginstal Apigee saat Anda menyediakan 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.  False
    Compute Engine default service account     8675309-compute@          False

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

    Contoh:
    service-8675309@gcp-sa-apigee.

  3. Dapatkan ID kebijakan (atau perimeter) dengan menggunakan perintah access-context-manager policies list. Teruskan 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/pengaturan; 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). 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 di Prasyarat.
  2. Buat file kondisi di komputer admin 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 layanan Apigee akun, seperti yang ditampilkan dalam contoh berikut:

    - members:
      - serviceAccount:service-8675309@gcp-sa-apigee.

    Perhatikan bahwa menambahkan bagian members saja sudah cukup; Anda tidak perlu menambahkan tingkat akses. Untuk informasi selengkapnya tentang cara membuat file kondisi, lihat Batasi akses menurut akun pengguna atau layanan Anda.

  4. Membuat 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 sedang diberikan; misalnya my-portal-access-level.
    • ACCESS_LEVEL_TITLE adalah judul untuk tingkat akses. Judulnya bisa berupa sesuai keinginan, tetapi Google menyarankan agar Anda memberinya nilai yang bermakna sehingga Anda dan administrator lain akan tahu apa itu berlaku untuk apa. Misalnya, Tingkat Akses Portal Saya.
    • CONDITIONS_FILE adalah jalur ke file YAML yang Anda buat di langkah sebelumnya langkah waktu ini.
    • 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 baru menggunakan access-context-manager perimeters update berikut:
    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 meminta Anda untuk mengaktifkannya saat mencoba membuat daftar atau menetapkan kebijakan.
  • Pastikan Anda menggunakan ID organisasi GCP, bukan Apigee ID organisasi saat Anda 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 sudah ada, jalankan iam service-accounts describe , seperti yang ditampilkan dalam contoh berikut:

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

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

Batasan

Integrasi Apigee dengan Kontrol Layanan VPC memiliki batasan berikut:

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