Halaman ini menjelaskan cara mengaktifkan akses berbasis sertifikat (CBA) untuk aplikasi web Anda. Anda dapat menggunakan CBA untuk mengamankan akses dari perangkat tepercaya ke aplikasi web perusahaan yang berjalan di Cloud de Confiance by S3NS.
Ringkasan
CBA untuk aplikasi web menggunakan fitur Akses Kontekstual dan Cloud de Confiance jaringan Chrome Enterprise Premium untuk mengamankan akses menggunakan TLS timbal balik (mTLS). Berikut adalah komponen utama yang Anda gunakan untuk mengaktifkan CBA untuk aplikasi web:
- Access Context Manager: memungkinkan Anda membuat tingkat akses yang memerlukan sertifikat saat menentukan akses ke aplikasi web.
- Identity-Aware Proxy (IAP): mengautentikasi akses pengguna ke aplikasi web.
- Cloud de Confiance Load balancer HTTPS: menyediakan autentikasi timbal balik (mTLS) antara pengguna dan aplikasi web.
- Kebijakan Chrome Enterprise: menyediakan autentikasi timbal balik (mTLS) antara pengguna dan aplikasi web saat menggunakan browser Chrome.
Sebelum memulai
Pastikan Anda memiliki Google Cloud CLI versi terbaru dengan menjalankan perintah berikut:
gcloud components update
Menyiapkan mTLS untuk load balancer HTTPS eksternal
Ikuti petunjuk untuk menyiapkan load balancer eksternal HTTPS. Catat nama proxy HTTPS target yang dibuat, karena Anda akan memerlukannya pada langkah berikutnya.
Membuat konfigurasi kepercayaan
Buat konfigurasi kepercayaan untuk mewakili jenis Infrastruktur Kunci Publik (PKI) Anda.
Untuk menyelesaikan tugas ini, Anda harus memiliki izin di target Cloud de Confiance project.certificatemanager.trustconfigs.create
Anda dapat membuat konfigurasi kepercayaan menggunakan sertifikat yang diterbitkan Google (Metode 1), menggunakan sertifikat Anda sendiri (Metode 2), atau menggunakan sertifikat yang ditandatangani sendiri dengan Verifikasi Endpoint (Metode 3).
Metode 1
Gunakan sertifikat yang diterbitkan Google untuk membuat konfigurasi kepercayaan.
- Selesaikan langkah-langkah untuk Membuat CA root.
Ambil konten file PEM:
gcloud privateca roots describe ROOT_CA_ID \ --pool=POOL_ID \ --location=CA_LOCATION \ --format='value(pemCaCertificates)'Ganti kode berikut:
Ambil sertifikat root, yang ditampilkan di kolom
pemCaCertificates. Sertifikat adalah string antara penandaBEGIN CERTIFICATEdanEND CERTIFICATE, dan menyertakan kedua penanda tersebut.Simpan sertifikat root dalam format PEM ke file.
Buat konfigurasi kepercayaan:
Tetapkan variabel lingkungan berikut:
ROOT_PEM_FILE=TRUST_ANCHOR_PATH INT_PEM_FILE1=IM_CERT_PATH INT_PEM_FILE2=SECOND_IM_CERT_PATHGanti kode berikut:
- TRUST_ANCHOR_PATH: Jalur ke trust anchor yang dienkode PEM.
- IM_CERT_PATH: Jalur ke sertifikat perantara yang dienkode PEM.
- SECOND_IM_CERT_PATH: Jalur ke sertifikat perantara kedua yang dienkode PEM.
Siapkan konten file YAML konfigurasi kepercayaan:
ROOT=$(cat ROOT_PEM_FILE | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_1=$(cat INT_PEM_FILE1 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_2=$(cat INT_PEM_FILE2 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')Buat file YAML konfigurasi kepercayaan:
cat << EOF > trust_config.yaml name: "${TRUST_CONFIG_NAME?}" trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" intermediateCas: - pemCertificate: "${INT_1?}" - pemCertificate: "${INT_2?}" EOFFile YAML ini menentukan konfigurasi kepercayaan bernama
TRUST_CONFIG_NAME. Konfigurasi kepercayaan berisi satu penyimpanan kepercayaan, yang mencakup sertifikat root dan dua sertifikat perantara.Impor konfigurasi kepercayaan ke Cloud de Confiance by S3NS Certificate Manager:
gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --project=GCP_PROJECT \ --source=${PWD?}/trust_config.yamlGanti kode berikut:
- TRUST_CONFIG_NAME: Nama konfigurasi kepercayaan Anda.
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
Jika Anda men-deploy struktur yang lebih kompleks dengan CA perantara yang ditandatangani oleh root, pastikan Anda menambahkan perantara sebagai intermediateCAs.
Metode 2
Gunakan deployment PKI Anda sendiri dengan sertifikat yang ada untuk membuat konfigurasi kepercayaan.
Jenis konfigurasi kepercayaan ini mengasumsikan penyimpanan kepercayaan dasar dengan satu trust anchor yang mewakili sertifikat root. Tidak ada sertifikat perantara yang ditentukan.
Buat konfigurasi kepercayaan:
Tetapkan variabel lingkungan berikut:
ROOT_PEM_FILE=TRUST_ANCHOR_PATH INT_PEM_FILE1=IM_CERT_PATH INT_PEM_FILE2=SECOND_IM_CERT_PATHGanti kode berikut:
- TRUST_ANCHOR_PATH: Jalur ke trust anchor yang dienkode PEM.
- IM_CERT_PATH: Jalur ke sertifikat perantara yang dienkode PEM.
- SECOND_IM_CERT_PATH: Jalur ke sertifikat perantara kedua yang dienkode PEM.
Siapkan konten file YAML konfigurasi kepercayaan:
ROOT=$(cat ROOT_PEM_FILE | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_1=$(cat INT_PEM_FILE1 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_2=$(cat INT_PEM_FILE2 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')Buat file YAML konfigurasi kepercayaan:
cat << EOF > trust_config.yaml name: "${TRUST_CONFIG_NAME?}" trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" intermediateCas: - pemCertificate: "${INT_1?}" - pemCertificate: "${INT_2?}" EOFFile YAML ini menentukan konfigurasi kepercayaan bernama
TRUST_CONFIG_NAME. Konfigurasi kepercayaan berisi satu penyimpanan kepercayaan, yang mencakup sertifikat root dan dua sertifikat perantara.Impor konfigurasi kepercayaan ke Cloud de Confiance by S3NS Certificate Manager:
gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --project=GCP_PROJECT \ --source=${PWD?}/trust_config.yamlGanti kode berikut:
- TRUST_CONFIG_NAME: Nama konfigurasi kepercayaan Anda.
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
Metode 3
Jika Anda menggunakan browser Chrome, dan ingin menggunakan sertifikat yang ditandatangani sendiri dengan Verifikasi Endpoint, ikuti petunjuk di bagian ini.
Ikuti petunjuk untuk men-deploy Verifikasi Endpoint untuk organisasi Anda. Verifikasi Endpoint otomatis men-deploy sertifikat yang ditandatangani sendiri dan diterbitkan Google ke perangkat Anda dan Anda tidak perlu membuat konfigurasi kepercayaan.
Membuat kebijakan TLS untuk mengaktifkan mTLS di load balancer eksternal
Jika Anda menggunakan Metode 3, Anda dapat melewati langkah ini.
Untuk menyelesaikan tugas ini, Anda harus memiliki izin berikut:
certificatemanager.trustconfigs.usepada konfigurasi kepercayaan yang Anda buat untukServerTlsPolicynetworksecurity.serverTlsPolicies.createdi target Cloud de Confiance project
Buat file YAML kebijakan TLS server:
cat << EOF > server_tls_policy.yaml name: "SERVER_TLS_POLICY_NAME" mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/GCP_PROJECT/locations/global/trustConfigs/TRUST_CONFIG_NAME EOFGanti kode berikut:
- SERVER_TLS_POLICY_NAME: Nama kebijakan TLS server.
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
- TRUST_CONFIG_NAME: Konfigurasi kepercayaan yang Anda buat pada langkah sebelumnya.
Untuk mengetahui informasi tentang opsi validasi klien untuk
clientValidationMode, lihat Mode validasi klien MTLS.Impor YAML kebijakan TLS server ke target Cloud de Confiance by S3NS project:
gcloud network-security server-tls-policies import ${SERVER_TLS_POLICY_NAME?} \ --project=GCP_PROJECT \ --source=${PWD?}/server_tls_policy.yaml \ --location=globalGanti GCP_PROJECT dengan target Cloud de Confiance by S3NS project ID.
Setelah membuat kebijakan TLS, Anda tidak dapat mengubahnya. Jika ingin membuat perubahan pada kebijakan TLS yang ada, hapus kebijakan TLS yang ada dan buat kebijakan TLS baru.
Melampirkan kebijakan TLS ke kebijakan HTTPS target
Untuk menyelesaikan tugas ini, Anda harus memiliki izin compute.targetHttpsProxies.get di target Cloud de Confiance project.
Ekspor proxy HTTPS target yang ada ke file lokal:
gcloud compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --project=GCP_PROJECT \ --global \ --destination=${PWD?}/xlb-mtls-target-proxy.yamlGanti kode berikut:
- TARGET_HTTPS_PROXY_NAME: Proxy HTTPS target.
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
Tambahkan
ServerTlsPolicyke konfigurasi proxy HTTPS target:Untuk menyelesaikan tugas ini, Anda harus memiliki izin berikut:
networksecurity.serverTlsPolicies.usepadaServerTlsPolicyyang Anda buat untuk proxy HTTPS targetcompute.targetHttpsProxies.updatedi target Cloud de Confiance project
echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/GCP_PROJECT/locations/global/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> xlb-mtls-target-proxy.yamlGanti kode berikut:
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
- SERVER_TLS_POLICY_NAME: Kebijakan TLS server.
Perbarui proxy HTTPS target dengan mengimpor konfigurasi baru dari file lokal:
gcloud compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --project=GCP_PROJECT \ --global \ --source=${PWD?}/xlb-mtls-target-proxy.yamlGanti kode berikut:
- TARGET_HTTPS_PROXY_NAME: Proxy HTTPS target.
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
Membuat tingkat akses yang memerlukan sertifikat
Konsol
- Ikuti petunjuk untuk membuat tingkat akses kustom.
Tambahkan ekspresi berikut ke tingkat akses kustom Anda:
Jika Anda membuat konfigurasi kepercayaan (Metode 1 atau Metode 2), tambahkan ekspresi berikut di kolom Conditions tingkat akses kustom Anda untuk menggunakan binding pengesahan PKI saat mengautentikasi:
certIsPkiAttested(origin, ["TLS_POLICY_FULL_RESOURCE_PATH1", "TLS_POLICY_FULL_RESOURCE_PATH2", …]) == trueDengan TLS_POLICY_FULL_RESOURCE_PATH1 dan TLS_POLICY_FULL_RESOURCE_PATH2 adalah jalur yang mewakili beberapa konfigurasi kepercayaan:
certificatemanager.googleapis.com/projects/GCP_PROJECT/locations/global/trustConfigs/TRUST_CONFIG_NAME.Anda harus memberikan setidaknya satu jalur konfigurasi kepercayaan.
Ganti kode berikut:
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
- TRUST_CONFIG_NAME: Nama konfigurasi kepercayaan Anda.
Jika Anda menggunakan sertifikat yang ditandatangani sendiri dan diterbitkan Google (Metode 3), tambahkan ekspresi berikut di kolom Conditions tingkat akses kustom Anda untuk menggunakan binding sertifikat saat mengautentikasi:
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
gcloud
Jika Anda membuat konfigurasi kepercayaan (Metode 1 atau Metode 2), jalankan perintah berikut untuk membuat tingkat akses kustom yang menggunakan binding pengesahan PKI saat mengautentikasi:
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
--title=TITLE \
--custom-level-spec=FILE \
--description=DESCRIPTION \
--policy=POLICY_NAME
Ganti kode berikut:
- ACCESS_LEVEL_NAME: Nama unik untuk tingkat akses.
- TITLE: Judul yang dapat dibaca manusia.
FILE: File YAML yang berisi ekspresi berikut:
certIsPkiAttested(origin, ["TLS_POLICY_FULL_RESOURCE_PATH1", "TLS_POLICY_FULL_RESOURCE_PATH2", …]) == trueDengan TLS_POLICY_FULL_RESOURCE_PATH1 dan TLS_POLICY_FULL_RESOURCE_PATH2 adalah jalur yang mewakili beberapa konfigurasi kepercayaan:
certificatemanager.googleapis.com/projects/GCP_PROJECT/locations/global/trustConfigs/TRUST_CONFIG_NAME.Anda harus memberikan setidaknya satu jalur konfigurasi kepercayaan.
Ganti kode berikut:
- GCP_PROJECT: Project ID. Cloud de Confiance by S3NS
- TRUST_CONFIG_NAME: Nama konfigurasi kepercayaan Anda.
DESCRIPTION: Deskripsi panjang tingkat akses.
POLICY_NAME: Kebijakan akses organisasi Anda.
Jika Anda tidak memiliki konfigurasi kepercayaan, karena Anda menggunakan sertifikat yang ditandatangani sendiri dengan Verifikasi Endpoint (Metode 3), tambahkan ekspresi berikut ke tingkat akses kustom Anda:
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
Menerapkan akses berbasis sertifikat menggunakan Identity-Aware Proxy (IAP)
Dalam arsitektur CBA untuk aplikasi web, IAP menyediakan penerapan kebijakan berbasis utama untuk melindungi aplikasi web Anda dari perangkat yang tidak tepercaya.
Selesaikan langkah-langkah berikut untuk mengaktifkan IAP dan mengonfigurasi kebijakan CBA:
- Jika Anda belum menyiapkan IAP, ikuti petunjuk untuk menyiapkan IAP.
- Buka IAP untuk melampirkan tingkat akses yang Anda buat sebelumnya:
Buka IAP - Pilih resource yang ingin Anda amankan dengan CBA, lalu klik Settings.
- Di kolom Access Levels, masukkan nama tingkat akses yang Anda buat.
Untuk menggunakan Google Cloud CLI guna mengonfigurasi kebijakan CBA di IAP, lihat dokumentasi Google Cloud CLI.
Mengonfigurasi browser untuk otomatis memilih sertifikat
Agar browser Anda otomatis memilih sertifikat saat menentukan akses, selesaikan langkah-langkah untuk browser Anda.
Chrome
Konfigurasikan kebijakan Chrome AutoSelectCertificateForURLs agar Chrome menggunakan sertifikat yang benar selama handshake mTLS.
Pastikan browser Chrome dikelola oleh pengelolaan cloud browser Chrome atau kebijakan grup Windows:
- Windows, macOS, Linux: Selesaikan langkah-langkah untuk menyiapkan profil Chrome terkelola.
- Chrome: Daftarkan perangkat ke perusahaan.
Tambahkan kebijakan
AutoSelectCertificateForUrls:- Di konsol admin, buka Devices > Chrome > Settings > User & Browser Settings > Client certificates.
- Pilih organisasi.
- Tambahkan kebijakan
AutoSelectCertificateForUrlsuntuk URL aplikasi web dan informasi sertifikat root Anda.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi tentang skema kebijakan. Berikut adalah contoh konfigurasi kebijakan yang menggunakan sertifikat dari Verifikasi Endpoint:
{
"pattern":"https://[*.].mysite.com",
"Filter":{
"ISSUER":{
"CN":"Google Endpoint Verification"
}
}
}
Safari
Konfigurasikan preferensi identitas:
- Buka aplikasi Keychain Access, lalu pilih All Items.
- Pilih sertifikat yang ingin Anda konfigurasi.
- Klik File > New Identity Preference.
- Masukkan URL, lalu klik Add.
Tindakan ini akan membuat entri preferensi identitas baru di Keychain yang dapat Anda perbarui.
Edge
Tetapkan kebijakan Edge AutoSelectCertificateForUrls dengan mengikuti petunjuk
dalam dokumentasi Edge.