Halaman ini menunjukkan contoh cara mengonfigurasi TLS bersama (mTLS) untuk Load Balancer Aplikasi internal lintas region atau Load Balancer Aplikasi internal regional.
Sebelum memulai
- Baca Ringkasan Load Balancer Aplikasi Internal.
- Baca Autentikasi TLS bersama.
- Siapkan TLS bersama dengan sertifikat yang diberikan pengguna.
Load Balancer Aplikasi Internal mendukung berbagai layanan dan bucket backend. Pastikan Anda telah menyiapkan Load Balancer Aplikasi internal dengan salah satu backend yang didukung berikut:
Load Balancer Aplikasi internal Regional
Load Balancer Aplikasi internal lintas region
Menyiapkan mTLS untuk load balancer
Agar autentikasi TLS bersama berfungsi, setelah menyiapkan load balancer, Anda perlu mengupdate proxy HTTPS target menggunakan resource ServerTLSPolicy
.
Pastikan Anda sudah membuat resource
ServerTLSPolicy
. Untuk mengetahui petunjuknya, lihat Membuat resource keamanan jaringan.Untuk menampilkan daftar semua proxy HTTPS target di project Anda, gunakan perintah
gcloud compute target-https-proxies list
:gcloud compute target-https-proxies list
Perhatikan nama proxy HTTPS target untuk melampirkan resource
ServerTLSPolicy
. Nama ini disebut sebagaiTARGET_HTTPS_PROXY_NAME
dalam langkah-langkah berikut.Untuk mengekspor konfigurasi proxy HTTPS target ke file, gunakan perintah
gcloud beta compute target-https-proxies export
.global
gcloud beta compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --global
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file yaml. Contoh,mtls_target_proxy.yaml
.
regional
gcloud beta compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --region=REGION
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file yaml. Misalnya,mtls_target_proxy.yaml
REGION
: region tempat Anda mengonfigurasi load balancer.
Menampilkan daftar semua resource
ServerTlsPolicies
di lokasi yang ditentukan untuk project saat ini.Konsol
Di konsol Google Cloud, buka halaman Autentikasi klien.
Semua resource
ServerTlsPolicies
ditampilkan.
gcloud
Untuk menampilkan daftar semua resource Autentikasi klien (
ServerTlsPolicies
), gunakan perintahgcloud network-security server-tls-policies list
:gcloud network-security server-tls-policies list \ --location=REGION
Ganti kode berikut:
REGION
: region tempat Anda mengonfigurasi load balancer. Untuk Load Balancer Aplikasi internal lintas region, gunakanglobal
.Catat nama resource
ServerTlsPolicies
untuk mengonfigurasi mTLS. Nama ini akan disebut sebagaiSERVER_TLS_POLICY_NAME
di langkah berikutnya.Untuk menambahkan file resource
ServerTlsPolicy
TARGET_PROXY_FILENAME
, gunakan perintah berikut. GantiPROJECT_ID
dengan ID project Google Cloud Anda.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/REGION/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> TARGET_PROXY_FILENAME
Untuk mengimpor konfigurasi proxy HTTPS target dari file, gunakan perintah
gcloud beta compute target-https-proxies import
.global
gcloud beta compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --global
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file yaml. Contoh,mtls_target_proxy.yaml
.
regional
gcloud beta compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --region=REGION
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy target.TARGET_PROXY_FILENAME
: nama file yaml. Misalnya,mtls_target_proxy.yaml
REGION
: region tempat Anda mengonfigurasi load balancer.
Tambahkan header kustom mTLS
Dengan mengaktifkan mTLS, Anda dapat menggunakan header kustom untuk meneruskan informasi tentang koneksi mTLS ke peta URL. Anda juga dapat mengaktifkan logging sehingga kegagalan koneksi mTLS direkam dalam log.Untuk menampilkan daftar semua peta URL dalam project, gunakan
perintah gcloud beta compute url-maps list
:
gcloud beta compute url-maps list
Perhatikan nama peta URL untuk mengaktifkan logging dan header kustom.
Nama ini disebut sebagai URL_MAP_NAME
dalam
langkah berikutnya.
global
gcloud compute url-maps edit URL_MAP_NAME --global
Berikut ini adalah contoh file YAML yang menunjukkan cara menggunakan variabel dalam header permintaan kustom (requestHeadersToAdd
). Anda dapat menggunakan variabel yang sama untuk mengirim header respons kustom (responseHeadersToAdd
).
headerAction: requestHeadersToAdd: - headerName: "X-Client-Cert-Present" headerValue: "{client_cert_present}" - headerName: "X-Client-Cert-Chain-Verified" headerValue: "{client_cert_chain_verified}" - headerName: "X-Client-Cert-Error" headerValue: "{client_cert_error}" - headerName: "X-Client-Cert-Hash" headerValue: "{client_cert_sha256_fingerprint}" - headerName: "X-Client-Cert-Serial-Number" headerValue: "{client_cert_serial_number}" - headerName: "X-Client-Cert-SPIFFE" headerValue: "{client_cert_spiffe_id}" - headerName: "X-Client-Cert-URI-SANs" headerValue: "{client_cert_uri_sans}" - headerName: "X-Client-Cert-DNSName-SANs" headerValue: "{client_cert_dnsname_sans}" - headerName: "X-Client-Cert-Valid-Not-Before" headerValue: "{client_cert_valid_not_before}" - headerName: "X-Client-Cert-Valid-Not-After" headerValue: "{client_cert_valid_not_after}" - headerName: "X-Client-Cert-Issuer-Dn" headerValue: "{client_cert_issuer_dn}" - headerName: "X-Client-Cert-Subject-Dn" headerValue: "{client_cert_subject_dn}" - headerName: "X-Client-Cert-Leaf" headerValue: "{client_cert_leaf}" - headerName: "X-Client-Cert-Chain" headerValue: "{client_cert_chain}"
regional
gcloud compute url-maps edit URL_MAP_NAME --region=REGION
Berikut ini adalah contoh file YAML yang menunjukkan cara menggunakan variabel dalam header permintaan kustom (requestHeadersToAdd
). Anda dapat menggunakan variabel yang sama untuk mengirim header respons kustom (responseHeadersToAdd
).
defaultService: regions/REGION/backendServices/BACKEND_SERVICE_1 name: regional-lb-map region: region/REGION headerAction: requestHeadersToAdd: - headerName: "X-Client-Cert-Present" headerValue: "{client_cert_present}" - headerName: "X-Client-Cert-Chain-Verified" headerValue: "{client_cert_chain_verified}" - headerName: "X-Client-Cert-Error" headerValue: "{client_cert_error}" - headerName: "X-Client-Cert-Hash" headerValue: "{client_cert_sha256_fingerprint}" - headerName: "X-Client-Cert-Serial-Number" headerValue: "{client_cert_serial_number}" - headerName: "X-Client-Cert-SPIFFE" headerValue: "{client_cert_spiffe_id}" - headerName: "X-Client-Cert-URI-SANs" headerValue: "{client_cert_uri_sans}" - headerName: "X-Client-Cert-DNSName-SANs" headerValue: "{client_cert_dnsname_sans}" - headerName: "X-Client-Cert-Valid-Not-Before" headerValue: "{client_cert_valid_not_before}" - headerName: "X-Client-Cert-Valid-Not-After" headerValue: "{client_cert_valid_not_after}" - headerName: "X-Client-Cert-Issuer-Dn" headerValue: "{client_cert_issuer_dn}" - headerName: "X-Client-Cert-Subject-Dn" headerValue: "{client_cert_subject_dn}" - headerName: "X-Client-Cert-Leaf" headerValue: "{client_cert_leaf}" - headerName: "X-Client-Cert-Chain" headerValue: "{client_cert_chain}"
Langkah selanjutnya
- Menyiapkan TLS bersama menggunakan sertifikat yang diberikan pengguna
- Melihat log untuk validasi sertifikat klien mTLS
- Membersihkan penyiapan load balancing