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, tetapi juga 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 Identity and Access Management (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 oleh pengguna dan perangkat mereka untuk memenuhi tingkat kepercayaan tertentu.
Misalnya, Anda dapat menggunakan Access Context Manager untuk mengonfigurasi tingkat akses berikut untuk organisasi Anda:
- Dasar: Serangkaian persyaratan dasar yang Anda anggap sebagai tingkat minimum.
- Menengah: Serangkaian persyaratan yang lebih ketat yang diharapkan dapat dipenuhi oleh karyawan dan perangkat perusahaan. Tingkat akses ini mungkin mengecualikan pengguna tenaga kerja eksternal dan perangkat non-perusahaan.
- Tinggi: Persyaratan ketat yang hanya dipenuhi oleh karyawan dan perangkat tertentu.
Tingkat akses itu sendiri tidak memiliki efek langsung pada pengguna atau perangkat. Tingkat akses menentukan persyaratan, tetapi tidak menentukan pengguna, aplikasi, atau resource yang harus menerapkan persyaratan tersebut. Tingkat akses seperti bagian konfigurasi yang dapat digunakan kembali dan 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, yang dijelaskan dalam dokumen ini:
- Google Workspace dan aplikasi serta layanan lainnya di luar Google Cloud
- Konsol danAPI Google Cloud Google Cloud
- Perimeter layanan Virtual Private Cloud (VPC)
- Identity-Aware Proxy (IAP) untuk akses SSH dan RDP
- IAP untuk aplikasi web
Aplikasi dan resource
Bagian berikut menjelaskan cara menerapkan tingkat akses ke berbagai jenis aplikasi dan resource serta perbedaan proses di berbagai jenis.
Google Workspace dan aplikasi serta layanan lainnya di luar Google Cloud
Aplikasi dan layanan di luar Google Cloud yang mendukung akses kontekstual mencakup hal berikut:
- Konsol Google Admin
- Aplikasi Google Workspace seperti Gmail, Google Meet, dan Google Kalender
- Aplikasi Google lainnya seperti Gemini atau Data Studio
- Aplikasi SAML kustom
Untuk membatasi akses ke Google Workspace dan aplikasi serta layanan di luar Google Cloud, konfigurasikan akses kontekstual untuk setiap layanan atau aplikasi secara terpisah di konsol Admin. Di konsol Admin, lakukan hal berikut:
Tentukan cakupan yang ingin Anda terapkan tingkat akses. Cakupan adalah kombinasi dari hal berikut:
- 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 tingkat tersebut juga berlaku saat aplikasi seluler dan aplikasi lainnya 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. Dalam hal ini, Cloud Identity dan Google Workspace hanya menerapkan salah satu penetapan, yaitu penetapan dengan prioritas tertinggi:
- Penetapan berbasis grup memiliki prioritas 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 danAPI Google Cloud Google Cloud
Anda dapat mengonfigurasi akses kontekstual ke Google Cloud konsol dan Google Cloud API menggunakan binding akses.
Google Cloud API menggunakan OAuth 2.0 untuk autentikasi. Untuk menggunakan a 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 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
scopedAccessSettingsyang menetapkan tingkat akses ke setiap aplikasi OAuth. - Tingkat akses default.
Jika binding akses menentukan setelan akses 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.
Binding akses berlaku untuk anggota grup langsung dan tidak langsung. Jika pengguna adalah anggota beberapa grup, beberapa binding akses dapat berlaku untuknya, 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 tidak dapat diakses dari luar perimeter layanan.
Untuk mengizinkan akses dari luar perimeter layanan, gunakan aturan ingress. Aturan ingress memungkinkan Anda menentukan kondisi yang akan mengizinkan akses eksternal. Anda dapat menggunakan tingkat akses untuk mengizinkan aturan ingress menerapkan akses kontekstual.
Perimeter layanan VPC dapat memiliki beberapa aturan ingress. Akibatnya, lebih dari satu aturan ingress mungkin berlaku untuk pengguna dan aplikasi tertentu, dan aturan ingress 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 ingress 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 di 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 akan otomatis berlaku untuk penerusan TCP IAP.
Jika perimeter layanan Anda menyertakan layanan
iaptunnel.googleapis.com
sebagai layanan yang dibatasi, aturan ingress Anda
akan otomatis berlaku untuk penerusan TCP IAP. Untuk mengetahui detail tentang praktik
terbaik, lihat
Menyertakan penerusan TCP IAP sebagai layanan yang dibatasi.
Anda juga dapat mengonfigurasi akses kontekstual menggunakan IAM conditions. Anda dapat menggunakan IAM conditions sebagai alternatif untuk binding akses dan aturan ingress perimeter layanan VPC, atau menggunakan semuanya secara bersamaan.
Berikan peran IAP-secured Tunnel User (
roles/iap.tunnelResourceAccessor) kepada pengguna atau grup. Kemudian, dalam binding peran, tambahkan ekspresi IAM condition yang mengharuskan pengguna memenuhi tingkat akses tertentu. Misalnya, ekspresi tersebut dapat terlihat mirip dengan yang berikut:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levelsSecara opsional, Anda dapat menyesuaikan IAM condition untuk mewajibkan beberapa tingkat akses atau menyertakan pemeriksaan lainnya.
Pengguna dan aplikasi tertentu dapat dikenai binding akses, aturan ingress, dan IAM condition 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 menggunakan IAP.
IAP untuk aplikasi web berbeda dengan penerusan TCP IAP:
- Binding akses tidak berlaku untuk aplikasi web yang dikonfigurasi dengan IAP karena aplikasi OAuth yang digunakan IAP tidak menggunakan cakupan OAuth. Google Cloud
- Aturan ingress perimeter layanan VPC tidak berlaku untuk aplikasi web yang dikonfigurasi dengan IAP karena IAP bukan Google Cloud API dan tidak dapat dikonfigurasi sebagai layanan yang dibatasi.
Untuk mengonfigurasi akses kontekstual untuk aplikasi web menggunakan IAP, Anda harus menggunakan IAM conditions:
Berikan peran IAP-secured Web App User (
roles/iap.httpsResourceAccessor) kepada pengguna atau grup. Kemudian, dalam binding peran, tambahkan ekspresi IAM condition yang mengharuskan pengguna memenuhi tingkat akses tertentu. Misalnya, ekspresi tersebut dapat terlihat mirip dengan yang berikut:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levelsSecara opsional, Anda dapat menyesuaikan IAM condition 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 lainnya: Ido Flatow | Cloud Solutions Architect