Langkah 3: Mengonfigurasi akses

Bagian ini memberikan panduan tentang berbagai cara untuk memberikan akses ke deployment MDE Anda, bergantung pada kebutuhan Anda.

Tunneling SSH melalui IAP

Untuk terhubung ke IP pribadi layanan MDE, Anda dapat menggunakan tunnel SSH ke VM proxy. Pendekatan ini memungkinkan Anda menggunakan alat lokal seperti Postman untuk berinteraksi dengan API MDE.

Deployment MDE standar membuat VM proxy yang disebut mde-proxy. Mesin ini dapat memproxy permintaan masuk ke gateway API MDE atau antarmuka web MDE. VM ini hanya memiliki IP pribadi, tetapi IAP memungkinkan Anda membuat tunnel SSH yang aman ke mesin ini menggunakan Identity-Aware Proxy (IAP) untuk penerusan TCP. Bagian ini menjelaskan cara mengonfigurasi IAP untuk traffic tunneling ke mde-proxy, dan cara membuat tunnel ke VM tersebut dari workstation Anda:

  1. Di Google Cloud konsol, buka IAP lalu klik Enable API. Operasi ini mungkin memerlukan waktu beberapa menit untuk diselesaikan.

  2. Di Google Cloud konsol, buka IAP, lalu klik SSH AND TCP RESOURCES.

  3. Berikan izin kepada pengguna yang diizinkan menggunakan IAP untuk terhubung ke mde-proxy melalui IAP:

    Sebelum pengguna dapat menggunakan IAP untuk terhubung ke mde-proxy, berikan peran roles/iap.tunnelResourceAccessor kepada mereka dengan petunjuk berikut:

    1. Pilih mde-proxy dari daftar.

    2. Klik Add Principal di panel sisi kanan.

    3. Ketik email utama yang ingin Anda berikan akses.

    4. Pilih peran IAP-secured Tunnel User.

  4. Buat tunnel ke MDE API menggunakan perintah berikut:

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy"  \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8080:api.mde.cloud.google.com:80
    

    Setelah menjalankan perintah, MDE API dapat diakses di http://localhost:8080.

  5. Buat tunnel ke antarmuka web MDE.

    Jika membuat tunnel ke MDE API di Langkah 3, Anda dapat membuka terminal baru untuk menjalankan perintah nanti. Tunnel SSH ke MDE API dan antarmuka web MDE dapat berjalan secara paralel.

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8081:ui.mde.cloud.google.com:80
    

    Setelah menjalankan perintah, antarmuka web MDE dapat diakses di http://localhost:8081.

Mengonfigurasi Identity-Aware Proxy

Identity-Aware Proxy (IAP) memungkinkan Anda terhubung dengan aman ke IP internal MDE API dan antarmuka web, serta membatasi akses eksternal ke antarmuka web MDE hanya untuk pengguna yang diotorisasi jika Anda men-deploy-nya dengan opsi Load Balancer Eksternal.

Untuk menggunakan IAP, Anda harus mengaktifkan IAP service API terlebih dahulu (jika belum melakukannya) dan mengonfigurasi layar OAuth:

  1. Di Google Cloud konsol, buka IAP, lalu klik Enable API. Operasi ini mungkin memerlukan waktu beberapa menit untuk diselesaikan.

  2. Konfigurasi layar izin OAuth untuk IAP:

    1. Di Google Cloud konsol, buka halaman Google Auth Platform , lalu pilih project deployment MDE jika diminta.

      1. Di halaman Overview, klik Create OAuth client.
      2. Pilih Web application sebagai jenis aplikasi.
      3. Masukkan Application name yang ingin Anda tampilkan, misalnya MDE.
      4. Klik Create dan OK di jendela pop-up.
      5. Di halaman Branding, pastikan Anda melihat App name, User support email, dan Developer contact information.

    Untuk mengubah informasi di layar izin OAuth nanti, seperti nama produk atau alamat email, ulangi langkah-langkah sebelumnya untuk mengonfigurasi layar izin.

Mengonfigurasi akses ke antarmuka web Load Balancer HTTP Eksternal

Di bagian ini, Anda akan mengonfigurasi akses ke Load Balancer HTTP Eksternal antarmuka web MDE menggunakan IAP.

Jika mengaktifkan Load Balancer HTTP Eksternal untuk antarmuka web MDE, Anda harus menggunakan IAP untuk membatasi akses ke aplikasi hanya bagi pengguna yang diotorisasi.

Sebelum memulai

Pastikan Anda menyelesaikan prasyarat berikut:

  • Anda men-deploy MDE dengan antarmuka web MDE.
  • Anda men-deploy antarmuka web MDE dengan Load Balancer HTTP Eksternal.
  • Anda menyelesaikan langkah-langkah konfigurasi IAP umum.

Langkah

  1. Di Google Cloud konsol, buka halaman IAP.

  2. Temukan resource yang sesuai dengan layanan UI eksternal (cari mde-ui-ext-service).

  3. Di kolom IAP untuk resource tersebut, alihkan tombol ke Enabled.

  4. Di dialog konfirmasi, klik Turn On.

  5. Pilih kotak centang di samping nama resource.

  6. Di panel sisi kanan, klik Add Principal.

  7. Ketik alamat email pengguna atau grup yang ingin Anda berikan akses.

  8. Di menu drop-down Role, pilih Cloud IAP > IAP-secured Web App User.

  9. Klik Save.

Akses Lintas Organisasi (Opsional)

Secara default, IAP menggunakan klien OAuth yang dikelola Google, yang membatasi akses secara ketat kepada pengguna dalam organisasi yang sama Google Cloud dengan project. Jika deployment Anda memerlukan akses dari pengguna eksternal (partner yang menggunakan domain berbeda), Anda harus menggunakan Custom OAuth client yang dikonfigurasi dengan jenis pengguna External.

Untuk mengetahui detail selengkapnya, lihat Google Cloud dokumentasi resmi tentang Menggunakan klien OAuth kustom dengan IAP dan Mengaktifkan IAP untuk GKE.

Anda dapat mengonfigurasi hal ini menggunakan salah satu metode berikut:

Metode A: Konfigurasi Konsol Langsung (Tanpa Rahasia GKE)

Jika BackendConfig GKE Anda tidak mengelola setelan IAP (artinya, tidak memiliki blok iap, sehingga GKE Ingress dapat mewarisi setelan yang ada), Anda dapat mengonfigurasi klien kustom langsung di konsol:

  1. Konfigurasi project Anda OAuth consent screen sebagai External (lihat bagian Mengonfigurasi layar izin OAuth di atas). Jika aplikasi tetap dalam status "Testing", pastikan Anda menambahkan pengguna eksternal ke daftar Test users.
  2. Buka halaman IAP.
  3. Untuk resource mde-ui-ext-service, klik More options (tiga titik) di kolom Actions , lalu pilih Settings.
  4. Pilih Custom OAuth.
  5. Klik Auto Generate Credentials (atau berikan kredensial yang ada jika Anda membuatnya secara manual di API &Layanan).
  6. Klik Save.

Metode B: Konfigurasi yang Dikelola GKE (Menggunakan Rahasia Kubernetes)

Jika Anda lebih suka mengelola konfigurasi IAP menggunakan manifes Kubernetes (GitOps), Anda harus menyimpan kredensial dalam rahasia dan mereferensikannya di BackendConfig:

  1. Konfigurasi OAuth consent screen sebagai External dan buat OAuth client credentials secara manual di bagian APIs & Services > Credentials (jenis Aplikasi web).
  2. Buat Rahasia Kubernetes di cluster: sh kubectl create secret generic iap-oauth-secret \ --namespace=mde \ --from-literal=client_id=YOUR_CLIENT_ID \ --from-literal=client_secret=YOUR_CLIENT_SECRET
  3. Perbarui BackendConfig untuk layanan Anda guna mereferensikan rahasia: yaml spec: iap: enabled: true oauthclientCredentials: secretName: iap-oauth-secret

Mengonfigurasi DNS untuk antarmuka web MDE

Jika mengaktifkan Load Balancer HTTP Eksternal untuk antarmuka web MDE, Anda harus menetapkan data A nama domain yang ditetapkan ke variabel MDE_UI_DOMAIN_NAME di input.tfvars ke alamat IP load balancer HTTP eksternal yang di-deploy untuk menyelesaikan penyediaan sertifikat SSL yang dikelola Google.

Anda dapat mencari alamat IP load balancer HTTP eksternal dengan perintah berikut:

gcloud compute addresses list --filter="name~'.*mde-ui.*'" --format="value(address)" --global

Lihat host DNS Anda untuk mengetahui detail tentang cara membuat data A.