Langkah 3: Konfigurasi 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. Dengan pendekatan ini, Anda dapat menggunakan alat lokal seperti Postman untuk berinteraksi dengan MDE API.

Deployment MDE standar membuat VM proxy yang disebut mde-proxy. Mesin ini dapat mem-proxy 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 selanjutnya menjelaskan cara mengonfigurasi IAP untuk membuat tunnel traffic ke mde-proxy, dan cara membuat tunnel ke mde-proxy dari workstation Anda:

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

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

  3. Memberikan izin kepada pengguna yang berwenang untuk menggunakan IAP agar dapat terhubung ke mde-proxy melalui IAP:

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

    1. Pilih mde-proxy dari daftar.

    2. Klik Tambahkan Principal di panel samping.

    3. Ketik email kepala sekolah yang ingin Anda beri 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 bagian http://localhost:8080.

  5. Buat tunnel ke antarmuka web MDE.

    Jika Anda 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 API dan antarmuka web MDE, serta membatasi akses eksternal ke antarmuka web MDE hanya untuk pengguna yang diberi otorisasi jika Anda men-deploy-nya dengan opsi Load Balancer Eksternal.

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

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

  2. Mengonfigurasi layar izin OAuth untuk IAP:

    1. Di konsol Google Cloud , buka halaman Google Auth Platform dan pilih project deployment MDE jika diminta.
    2. Di halaman Overview, klik Get started.
    3. Masukkan Nama aplikasi yang ingin Anda tampilkan, misalnya MDE.
    4. Tambahkan email Anda sebagai Email dukungan pengguna, lalu klik Berikutnya.
    5. Untuk audiens, pilih External, lalu klik Next.
    6. Tambahkan email Anda sebagai Informasi kontak, lalu klik Berikutnya.
    7. Baca dan setujui Kebijakan Data Pengguna Layanan Google API, lalu klik Lanjutkan.
    8. Klik Create.

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 Anda mengaktifkan Load balancer HTTP Eksternal untuk antarmuka web MDE, Anda harus menggunakan IAP untuk membatasi akses ke aplikasi hanya bagi pengguna yang diberi otorisasi.

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 telah menyelesaikan langkah-langkah konfigurasi IAP umum.

Langkah

  1. Di konsol Google Cloud , 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. Pada dialog konfirmasi, baca dan setujui persyaratan konfigurasi, lalu klik Aktifkan.

  5. Setelah diaktifkan, centang kotak di samping nama resource (mde-ui-ext-service).

  6. Di panel samping kanan, klik Tambahkan Principal.

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

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

  9. Klik Simpan.

Akses Lintas Organisasi (Opsional)

Secara default, IAP menggunakan klien OAuth yang dikelola Google, yang secara ketat membatasi akses ke pengguna dalam Google Cloud Organisasi yang sama dengan project. Jika deployment Anda memerlukan akses dari pengguna eksternal (partner yang menggunakan domain lain), Anda harus menggunakan klien OAuth Kustom yang dikonfigurasi dengan jenis pengguna Eksternal.

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

Anda dapat mengonfigurasi 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. Buka halaman IAP.
  2. Untuk aset mde-ui-ext-service, klik Opsi lainnya (tiga titik) di kolom Tindakan, lalu pilih Setelan.
  3. Pilih OAuth Kustom.
  4. Klik Buat Kredensial Otomatis (atau berikan kredensial yang ada jika Anda membuatnya secara manual di API & Layanan).
  5. Klik Simpan.

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

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

  1. Konfigurasi layar izin OAuth sebagai Eksternal dan buat kredensial klien OAuth secara manual di bagian APIs & Services > Credentials (Jenis aplikasi web).
  2. Buat Secret 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 agar merujuk ke rahasia: yaml spec: iap: enabled: true oauthclientCredentials: secretName: iap-oauth-secret

Mengonfigurasi DNS untuk antarmuka web MDE

Jika Anda mengaktifkan Load balancer HTTP Eksternal untuk antarmuka web MDE, Anda harus menyetel data A nama domain yang Anda tetapkan 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.