Dokumen ini menjelaskan cara menggunakan akses kontekstual untuk mengamankan berbagai jenis aplikasi dan resource. Akses kontekstual adalah pendekatan keamanan yang memungkinkan Anda mengontrol akses pengguna berdasarkan kekuatan autentikasi, postur perangkat, lokasi jaringan, lokasi geografis, atau atribut lainnya. Pendekatan ini tidak hanya menggunakan identitas pengguna dasar untuk akses keamanan, dan dapat membantu Anda menerapkan model keamanan zero-trust untuk meningkatkan postur keamanan secara keseluruhan. Untuk mengetahui detail tentang praktik terbaik, lihat Praktik terbaik untuk mengamankan aplikasi dan resource menggunakan akses kontekstual.
Untuk membantu mengamankan aplikasi dan Google Cloud resource, Anda dapat menentukan kontrol akses terperinci berdasarkan berbagai faktor kontekstual dan kombinasinya. Anda dapat menggunakan Access Context Manager untuk menentukan kebijakan akses, yang berisi tingkat akses dan parameter layanan.
Dokumen ini ditujukan untuk profesional keamanan yang bertanggung jawab atas Pengelolaan Identitas dan Akses (IAM) serta keamanan resource dan aplikasi Google Cloud . Dokumen ini mengasumsikan bahwa Anda sudah memahami Access Context Manager,Google Cloud, dan pengelolaan IAM.
Tingkat akses
Tingkat akses memungkinkan Anda menentukan serangkaian persyaratan yang harus dipenuhi pengguna dan perangkat mereka untuk memenuhi tingkat kepercayaan tertentu.
Misalnya, Anda dapat menggunakan Access Context Manager untuk mengonfigurasi tingkat akses berikut bagi organisasi Anda:
- Dasar: Kumpulan persyaratan dasar yang Anda anggap sebagai tingkat minimum.
- Sedang: Kumpulan persyaratan yang lebih ketat yang Anda harapkan dipenuhi oleh karyawan dan perangkat perusahaan. Tingkat akses ini mungkin mengecualikan pengguna tenaga kerja tambahan dan perangkat non-perusahaan.
- Tinggi: Persyaratan ketat yang hanya dipenuhi oleh karyawan dan perangkat tertentu.
Tingkat akses itu sendiri tidak memberikan efek langsung pada pengguna atau perangkat. Tingkat akses menentukan persyaratan, tetapi tidak menentukan pengguna, aplikasi, atau resource yang harus diberlakukan persyaratan tersebut. Tingkat akses seperti bagian konfigurasi yang dapat digunakan kembali yang dapat Anda rujuk saat mengonfigurasi akses ke aplikasi atau resource tertentu.
Google Cloud memungkinkan Anda menggunakan tingkat akses untuk beberapa jenis aplikasi atau resource yang berbeda, termasuk yang berikut ini, yang dijelaskan dalam dokumen ini:
- Google Workspace serta aplikasi dan layanan lain di luar Google Cloud
- Konsol Google Cloud dan API Google Cloud
- Perimeter layanan Virtual Private Cloud (VPC)
- Identity-Aware Proxy (IAP) untuk akses SSH dan RDP
- IAP untuk aplikasi web
Aplikasi dan referensi
Bagian berikut menjelaskan cara Anda dapat menerapkan tingkat akses ke berbagai jenis aplikasi dan resource serta perbedaan proses di berbagai jenis tersebut.
Google Workspace serta aplikasi dan layanan lain di luar Google Cloud
Aplikasi dan layanan di luar Google Cloud yang mendukung akses dengan mengetahui konteks mencakup:
- Konsol Google Admin
- Aplikasi Google Workspace seperti Gmail, Google Meet, dan Google Kalender
- Aplikasi Google lainnya seperti Gemini atau Looker Studio
- Aplikasi SAML kustom
Untuk membatasi akses ke Google Workspace dan aplikasi serta layanan di luar Google Cloud, konfigurasi akses kontekstual untuk setiap layanan atau aplikasi satu per satu di konsol Admin. Di konsol Admin, Anda akan melakukan hal berikut:
Tentukan cakupan yang ingin Anda terapkan tingkat aksesnya. Cakupan adalah kombinasi dari berikut ini:
- Layanan atau aplikasi SAML tertentu yang akan dilindungi.
- Unit organisasi (OU) atau grup yang berisi pengguna yang relevan.
Pilih tingkat akses yang akan diterapkan ke cakupan yang dipilih.
Saat menetapkan tingkat akses, Anda juga dapat mengubah setelan tingkat akses tersebut. Anda dapat menentukan bahwa tingkat akses hanya berlaku saat pengguna mengakses aplikasi web secara langsung. Atau, Anda dapat menentukan bahwa level tersebut juga berlaku saat aplikasi seluler dan aplikasi lain mengakses API. Untuk mengetahui detailnya, lihat Perilaku aplikasi berdasarkan setelan tingkat akses di "Menetapkan tingkat akses Kontekstual ke aplikasi".
Mungkin ada lebih dari satu penetapan yang berlaku untuk pengguna dan aplikasi tertentu. Misalnya, pengguna mungkin merupakan anggota OU Karyawan dan anggota tim all-apac. OU dan grup masing-masing mungkin memiliki tingkat akses yang berbeda yang ditetapkan untuknya. Dalam hal ini, Cloud Identity dan Google Workspace hanya menerapkan salah satu penetapan, yaitu yang memiliki prioritas tertinggi:
- Penetapan berbasis grup memiliki prioritas yang lebih tinggi daripada penetapan berbasis OU.
- Dalam grup, Anda dapat menyesuaikan prioritas relatifnya.
- Dalam OU, OU root memiliki prioritas relatif terendah.
Cloud Identity dan Google Workspace memungkinkan Anda meninjau dan menganalisis peristiwa akses kontekstual di log Akses Kontekstual.
Konsol Google Cloud dan API Google Cloud
Anda dapat mengonfigurasi akses kontekstual ke Google Cloud konsol dan Google Cloud API menggunakan binding akses.
APIGoogle Cloud menggunakan OAuth 2.0 untuk autentikasi. Untuk menggunakan Google Cloud API, pengguna memerlukan token akses OAuth yang valid dan dikeluarkan oleh Google, dan token tersebut harus dikeluarkan untuk salah satu Google Cloud cakupan OAuth. Binding akses membatasi kemampuan pengguna untuk mendapatkan token akses tersebut. Akibatnya, binding akses membatasi akses ke konsol dan ke semua aplikasi OAuth yang menggunakan cakupan OAuth, seperti berikut: Google Cloud Google Cloud
- gcloud CLI
- Alat pihak ketiga seperti Terraform
- Aplikasi OAuth yang Anda buat sendiri dan yang menggunakan cakupan Google Cloud OAuth
Binding akses menautkan grup ke tingkat akses. Setiap grup hanya dapat memiliki satu binding akses. Setiap binding akses dapat menentukan konfigurasi berikut:
- Daftar
scopedAccessSettings
yang menetapkan tingkat akses ke setiap aplikasi OAuth. - Tingkat akses default.
Jika binding akses menentukan setelan akses yang tercakup dan tingkat akses default, kedua tingkat akses tersebut akan digabungkan menggunakan semantik OR
.
Kemudian, pengguna hanya perlu memenuhi salah satu tingkat akses untuk mengakses aplikasi OAuth.
Pengikatan akses berlaku untuk anggota langsung dan tidak langsung grup. Jika
pengguna adalah anggota beberapa grup, beberapa binding akses dapat berlaku untuk
pengguna tersebut, yang dapat menghasilkan beberapa tingkat akses. Dalam hal ini, tingkat akses juga digabungkan menggunakan semantik OR
, yang berarti pengguna hanya perlu memenuhi salah satu tingkat akses.
Perimeter layanan VPC
Saat Anda membuat perimeter layanan VPC, Anda menentukan daftar layanan yang dibatasi. Layanan yang dibatasi dapat diakses dari dalam perimeter layanan, tetapi secara default, layanan tersebut tidak dapat diakses dari luar perimeter layanan.
Untuk mengizinkan akses dari luar perimeter layanan, Anda menggunakan aturan masuk. Aturan traffic masuk memungkinkan Anda menentukan kondisi yang Anda inginkan untuk mengizinkan akses eksternal. Anda dapat menggunakan tingkat akses untuk memungkinkan aturan masuk menerapkan akses kontekstual.
Perimeter layanan VPC dapat memiliki beberapa aturan masuk. Akibatnya, lebih dari
satu aturan masuk mungkin berlaku untuk pengguna dan aplikasi tertentu, dan aturan masuk
ini mungkin memerlukan tingkat akses yang berbeda. Dalam hal ini, tingkat akses dievaluasi menggunakan semantik OR
dan pengguna hanya perlu memenuhi salah satu tingkat akses.
Anda dapat menggabungkan binding akses dengan aturan ingress perimeter layanan VPC. Jika binding akses dan aturan masuk menentukan tingkat akses yang berbeda untuk pengguna dan aplikasi tertentu, tingkat tersebut akan digabungkan menggunakan semantik AND
. Dalam
hal ini, pengguna harus memenuhi kedua tingkat akses.
Untuk meninjau dan menganalisis upaya mengakses resource dalam perimeter layanan VPC, Anda dapat menggunakan log audit Kontrol Layanan VPC atau penganalisis pelanggaran Kontrol Layanan VPC.
Akses SSH dan RDP ke VM
Anda dapat mengonfigurasi akses kontekstual untuk akses SSH dan RDP ke VM menggunakan penerusan TCP IAP.
Penerusan TCP IAP mendukung binding akses dan aturan ingress perimeter layanan VPC. Binding akses Anda untuk Google Cloud konsol dan Cloud API secara otomatis berlaku untuk penerusan TCP IAP.
Jika perimeter layanan Anda menyertakan
layanan iaptunnel.googleapis.com
sebagai layanan terbatas, maka aturan masuk Anda
akan otomatis berlaku untuk penerusan TCP IAP. Untuk mengetahui detail tentang praktik terbaik, lihat Menyertakan penerusan TCP IAP sebagai layanan terbatas.
Anda juga dapat mengonfigurasi akses kontekstual menggunakan kondisi IAM. Anda dapat menggunakan kondisi IAM sebagai alternatif untuk binding akses dan aturan masuk perimeter layanan VPC, atau menggunakan semuanya bersama-sama.
Beri pengguna atau grup peran IAP-secured Tunnel User (
roles/iap.tunnelResourceAccessor
). Kemudian, dalam binding peran, tambahkan ekspresi kondisi IAM yang mewajibkan pengguna memenuhi tingkat akses tertentu. Misalnya, ekspresinya bisa terlihat mirip dengan berikut ini:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
Secara opsional, Anda dapat menyesuaikan kondisi IAM untuk mewajibkan beberapa tingkat akses atau menyertakan pemeriksaan lainnya.
Pengguna dan aplikasi tertentu dapat tunduk pada binding akses, aturan masuk, dan kondisi IAM saat pengguna dan aplikasi mengakses penerusan TCP IAP. Dalam skenario ini, tingkat akses digabungkan menggunakan semantik AND
dan pengguna harus memenuhi semua tingkat akses.
Untuk meninjau dan menganalisis upaya mengakses penerusan TCP IAP, Anda harus mengaktifkan log audit akses data untuk IAP.
Aplikasi Web
Anda dapat mengonfigurasi akses kontekstual untuk aplikasi web dengan menggunakan IAP.
IAP untuk aplikasi web berbeda dengan IAP untuk penerusan TCP:
- Binding akses tidak berlaku untuk aplikasi web yang dikonfigurasi dengan IAP karena aplikasi OAuth yang digunakan IAP tidak menggunakan cakupan OAuth apa pun. Google Cloud
- Aturan ingress perimeter layanan VPC tidak berlaku untuk aplikasi web yang dikonfigurasi dengan IAP karena IAP bukan API dan tidak dapat dikonfigurasi sebagai layanan yang dibatasi.Google Cloud
Untuk mengonfigurasi akses kontekstual untuk aplikasi web menggunakan IAP, Anda harus menggunakan kondisi IAM:
Berikan peran IAP-secured Web App User kepada pengguna atau grup (
roles/iap.httpsResourceAccessor
). Kemudian, di pengikatan peran, tambahkan ekspresi kondisi IAM yang mewajibkan pengguna memenuhi tingkat akses tertentu. Misalnya, ekspresinya bisa terlihat mirip dengan berikut ini:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
Secara opsional, Anda dapat menyesuaikan kondisi IAM untuk mewajibkan beberapa tingkat akses atau menyertakan pemeriksaan lainnya.
Untuk meninjau dan menganalisis upaya mengakses aplikasi web yang dikonfigurasi dengan IAP, Anda harus mengaktifkan log audit akses data untuk IAP.
Apa Langkah Selanjutnya?
- Praktik terbaik untuk mengamankan aplikasi dan resource menggunakan akses kontekstual.
- Untuk mengetahui lebih banyak tentang arsitektur referensi, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.
Kontributor
Penulis: Johannes Passing | Cloud Solutions Architect
Kontributor lain: Ido Flatow | Cloud Solutions Architect