Prinsip utama BeyondCorp Enterprise adalah "Akses ke layanan diberikan berdasarkan hal yang kami ketahui tentang Anda dan perangkat Anda". Tingkat akses yang diberikan kepada satu pengguna atau satu perangkat disimpulkan secara dinamis dengan menginterogasi beberapa sumber data. BeyondCorp Enterprise menggunakan tingkat kepercayaan ini sebagai bagian dari proses keputusannya.
Access Context Manager adalah mesin kebijakan zero-trust BeyondCorp Enterprise. Dengan Access Context Manager, administrator dapat menentukan kontrol akses berbasis atribut yang terperinci untuk aplikasi dan resource Google Cloud.
Gunakan tingkat akses untuk mengizinkan akses ke resource berdasarkan informasi kontekstual
tentang permintaan. Dengan menggunakan tingkat akses, Anda dapat mulai mengatur tingkat
kepercayaan. Misalnya, Anda dapat membuat tingkat akses yang disebut High_Level
yang
mengizinkan permintaan dari sekelompok kecil individu dengan hak istimewa tinggi. Anda mungkin
juga mengidentifikasi grup yang lebih umum untuk dipercaya, seperti rentang IP yang permintaannya ingin Anda
izinkan. Dalam hal ini, Anda dapat membuat tingkat akses yang disebut
Medium_Level
untuk mengizinkan permintaan tersebut.
Salah satu persyaratan utama untuk akses zero-trust adalah hanya mengizinkan akses saat perangkat dikelola atau dimiliki oleh perusahaan. Ada banyak cara untuk menentukan apakah perangkat merupakan milik perusahaan, dan salah satu caranya adalah dengan menentukan apakah perangkat memiliki sertifikat yang valid, yang diterbitkan oleh perusahaan. Keberadaan sertifikat perusahaan pada perangkat dapat digunakan untuk menunjukkan bahwa perangkat tersebut milik perusahaan.
Sertifikat perusahaan untuk akses kontekstual adalah fitur dari keseluruhan solusi akses berbasis sertifikat BeyondCorp Enterprise. Fitur ini memanfaatkan sertifikat perangkat sebagai sinyal kontekstual alternatif untuk menentukan apakah perangkat merupakan aset milik perusahaan. Fitur ini didukung di browser Chrome 110 atau yang lebih baru.
Karena perangkat dapat memiliki lebih dari satu sertifikat, sertifikat perusahaan dapat
diakses di tingkat akses kustom melalui makro .exist(e,p)
:
device.certificates.exists(cert, predicate)
Dalam contoh, cert
adalah ID sederhana untuk digunakan di predicator
yang
mengikat ke sertifikat perangkat. Makro exist()
menggabungkan hasil predikat
per elemen dengan operator "atau" (||), yang berarti bahwa makro akan menampilkan nilai benar
jika setidaknya satu sertifikat memenuhi ekspresi predicate
.
Sertifikat memiliki atribut berikut yang dapat diperiksa bersama. Perhatikan bahwa perbandingan string peka huruf besar/kecil.
Atribut | Deskripsi | Contoh ekspresi predikat (dengan cert adalah ID makro) |
---|---|---|
is_valid |
True jika sertifikat valid dan belum habis masa berlakunya (boolean). | cert.is_valid |
cert_fingerprint |
Sidik jari sertifikat (SHA256 tanpa padding base64).
Sidik jari adalah digest SHA256 berenkode base64 tanpa padding, dalam format biner, dari sertifikat berenkode DER. Anda dapat membuat string dari sertifikat dalam format PEM menggunakan prosedur berikut dengan OpenSSL:
|
cert.cert_fingerprint == origin.clientCertFingerprint()
|
root_ca_fingerprint |
Sidik jari Sertifikat Root CA yang digunakan untuk menandatangani sertifikat (SHA256 tanpa padding base64).
Sidik jari adalah digest SHA256 berenkode base64 tanpa padding, dalam format biner, dari sertifikat berenkode DER. Anda dapat membuat string dari sertifikat dalam format PEM menggunakan prosedur berikut dengan OpenSSL:
|
cert.root_ca_fingerprint == "the_fingerprint" |
issuer |
Nama penerbit (nama yang sepenuhnya diperluas).
Untuk menemukan nama penerbit, Anda dapat menggunakan pendekatan berikut: Jalankan perintah berikut pada sertifikat:
$ openssl x509 -in ca_1.crt -issuer
issuer= /C=IN/ST=UP/L=NCR/O=BCEDemo/OU=BCEDemo_1/CN=inter_1/emailAddress=test_inter1@beyondcorp.in
String penerbit yang digunakan di tingkat akses adalah kebalikan dari output dan / diganti dengan koma. Contoh:
|
cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN" |
subject |
Nama subjek sertifikat (nama yang sepenuhnya diperluas). | cert.subject == "CA_SUB" |
serial_number |
Nomor seri sertifikat (string). | cert.serial_number = "123456789" |
template_id |
ID template Certificate Template ekstensi X.509 untuk sertifikat (string). | cert.template_id = "1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047" |
Tabel berikut berisi contoh kebijakan yang dapat Anda tetapkan:
Contoh Kebijakan | Ekspresi |
---|---|
Perangkat memiliki sertifikat valid yang ditandatangani oleh root certificate perusahaan. | device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
|
Perangkat memiliki sertifikat valid yang diterbitkan oleh penerbit CA_ABC. |
device.certificates.exists(cert, cert.is_valid && cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN")
|
Mengonfigurasi sertifikat perusahaan
Sebelum mengonfigurasi sertifikat perusahaan, pastikan Anda telah mengonfigurasi tingkat akses kustom. Untuk mengetahui petunjuknya, lihat Membuat tingkat akses kustom.
Anda dapat menggunakan definisi tingkat akses kustom Access Context Manager untuk menetapkan kebijakan yang sesuai. Tingkat akses kustom menggunakan ekspresi boolean yang ditulis dalam subset Common Expression Language (CEL) untuk menguji atribut klien yang membuat permintaan.
Mengupload trust anchor di konsol Admin
Agar BeyondCorp Enterprise dapat mengumpulkan dan memvalidasi sertifikat perusahaan perangkat, Anda harus mengupload trust anchor yang digunakan untuk menerbitkan sertifikat perangkat. Anchor kepercayaan di sini mengacu pada sertifikat root CA (Certificate Authority) yang ditandatangani sendiri serta intermediate dan subordinate certificate yang relevan. Selesaikan langkah-langkah berikut untuk mengupload trust anchor:
- Buka konsol Admin, lalu buka Perangkat > Jaringan > Sertifikat.
- Pilih unit organisasi yang sesuai.
- Pilih Tambahkan Sertifikat.
- Masukkan nama sertifikat.
- Upload sertifikat.
- Aktifkan kotak centang Endpoint Verification.
- Klik Tambahkan.
- Pastikan pengguna menjadi bagian dari unit organisasi tempat trust anchor diupload.
Mengonfigurasi kebijakan AutoSelectCertificateForUrls
Agar Verifikasi Endpoint dapat menelusuri sertifikat perangkat dan mengumpulkannya melalui Chrome, Anda harus mengonfigurasi kebijakan chrome AutoSelectCertificateForURLs dengan menyelesaikan langkah-langkah berikut:
Pastikan browser Chrome dikelola oleh Pengelolaan Cloud Browser Chrome.
- [Win/OSX/Linux] Penyiapan untuk browser Chrome terkelola menggunakan CBCM https://support.google.com/chrome/a/answer/9301891.
- [Chrome] Mendaftarkan perangkat ke perusahaan.
Di konsol Admin, tambahkan kebijakan AutoSelectCertificateForUrls:
- Buka konsol Admin dan buka Perangkat > Chrome > Setelan > Setelan Pengguna & Browser > Sertifikat klien.
- Pilih unit organisasi yang sesuai.
Tambahkan kebijakan AutoSelectCertificateForUrls, seperti yang ditunjukkan dalam contoh berikut:
{"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"CERTIFICATE_ISSUER_NAME"}}}
Ganti CERTIFICATE_ISSUER_NAME dengan nama umum root CA. Jangan ubah nilai
pattern
.
Untuk memverifikasi konfigurasi kebijakan, selesaikan langkah-langkah berikut:
- Buka chrome://policy di browser.
- Verifikasi nilai yang dikonfigurasi untuk AutoSelectCertificateForUrls.
- Pastikan nilai Berlaku untuk kebijakan disetel ke Mesin. Pada sistem operasi Chrome, nilai ini diterapkan ke Current User*.
- Pastikan Status untuk kebijakan tidak memiliki Konflik.
Memecahkan masalah konfigurasi
Tinjau atribut sertifikat di halaman detail perangkat untuk memastikan bahwa atribut sertifikat dicantumkan dengan benar.
Anda dapat menggunakan log Verifikasi Endpoint untuk membantu memecahkan masalah apa pun. Untuk mendownload log Verifikasi Endpoint, selesaikan langkah-langkah berikut:
- Klik kanan ekstensi Endpoint Verification, lalu buka Options.
- Pilih Level log > Semua > Download Log.
- Buka kasus dukungan dengan Cloud Customer Care dan bagikan log untuk proses debug lebih lanjut.