Akses yang aman ke aplikasi SaaS

Halaman ini memandu Anda melalui proses pengamanan aplikasi SaaS Anda melalui gateway aman Chrome Enterprise Premium.

Gateway aman Chrome Enterprise Premium berfungsi sebagai proxy penerusan, yang menerapkan framework akses zero trust dan memberikan kontrol kontekstual yang terperinci atas siapa yang mengakses aplikasi SaaS Anda.

Cara kerja pengamanan akses ke aplikasi SaaS

Berikut adalah ringkasan tingkat tinggi tentang cara kerja gateway aman dalam melindungi aplikasi SaaS Anda:

  1. Setelan browser sisi klien merutekan traffic aplikasi melalui proxy gateway yang aman.
  2. Gateway yang aman memeriksa kebijakan akses kontekstual untuk mengizinkan akses klien (pengguna dan perangkat).
  3. Jika diizinkan, gateway akan meneruskan traffic ke aplikasi menggunakan alamat IP sumber unik yang ditetapkan ke gateway dan region Google Cloud tersebut. Anda dapat menggunakan alamat IP sumber khusus tersebut untuk menerapkan aturan daftar yang diizinkan IP.

Sebelum memulai

Sebelum menyiapkan gateway aman, pastikan Anda memiliki hal berikut:

Batasan

Gateway aman Chrome Enterprise Premium memiliki batasan berikut: Gateway aman tidak mendukung aplikasi SaaS yang hanya mengizinkan konektivitas IPv6.

Menyiapkan lingkungan shell

Untuk menyederhanakan proses penyiapan dan berinteraksi dengan API gateway aman, tentukan variabel lingkungan berikut di shell kerja Anda.

  • Parameter umum

    API="beyondcorp.googleapis.com"
    API_VERSION=v1
    PROJECT_ID=MY_PROJECT_ID
    APPLICATION_ID=MY_APPLICATION_ID
    APPLICATION_DISPLAY_NAME="MY_APPLICATION_DISPLAY_NAME"
    HOST_NAME=MY_HOST_NAME
    

    Ganti kode berikut:

    • MY_PROJECT_ID: ID project tempat gateway aman dibuat.
    • MY_APPLICATION_ID: ID aplikasi Anda. Contoh, github. Nama dapat terdiri dari maksimal 63 karakter, dan dapat berisi huruf kecil, angka, dan tanda hubung. Karakter pertama harus berupa huruf, dan karakter terakhir dapat berupa huruf atau angka.
    • MY_APPLICATION_DISPLAY_NAME: Nama yang dapat dibaca manusia untuk ditampilkan.
    • MY_HOST_NAME: Nama host aplikasi Anda. Contoh, github.com. Panjang nama host maksimal 253 karakter, dan harus mematuhi salah satu format berikut:

      • Alamat IPv4 yang valid
      • Alamat IPv6 yang valid
      • Nama DNS yang valid
      • Tanda bintang (*)
      • Tanda bintang (*) diikuti dengan nama DNS yang valid
  • Parameter gateway yang aman

    SECURITY_GATEWAY_ID=MY_SECURITY_GATEWAY_ID
    SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME"
    

    Ganti kode berikut:

    • MY_SECURITY_GATEWAY_ID: ID gateway aman. ID dapat berupa maksimum 63 karakter, dan dapat berisi huruf kecil, angka, dan tanda hubung. Karakter pertama harus berupa huruf, dan karakter terakhir dapat berupa huruf atau angka.
    • MY_SECURITY_GATEWAY_DISPLAY_NAME: Nama gateway aman yang dapat dibaca manusia. Nama dapat berisi maksimal 63 karakter dan menyertakan karakter yang dapat dicetak.

Membuat gateway yang aman

Gateway aman Chrome Enterprise Premium adalah elemen penyusun mendasar untuk membuat koneksi yang aman ke aplikasi Anda. Layanan ini mengalokasikan project dan jaringan khusus, sehingga memberikan isolasi dan keamanan.

Untuk membuat gateway yang aman, selesaikan langkah-langkah berikut.

  1. Buat file bernama securityGateway.json menggunakan contoh berikut.

    {
       "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME",
       "hubs": { "us-central1": {} }
    }
    

    Dalam contoh ini, hubs merepresentasikan resource regional yang diperlukan untuk mengaktifkan konektivitas keluar ke aplikasi target. Anda dapat memiliki satu hub untuk suatu wilayah dan setiap hub menyediakan dua alamat IP.

    Anda dapat menentukan wilayah berikut:

    • africa-south1
    • asia-east1
    • asia-south1
    • asia-south2
    • asia-southeast1
    • europe-central2
    • europe-north1
    • europe-southwest1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
    • europe-west8
    • europe-west9
    • northamerica-northeast1
    • northamerica-northeast2
    • northamerica-south1
    • southamerica-east1
    • southamerica-west1
    • us-central1
    • us-east1
    • us-east4
    • us-east5
    • us-west1
  2. Buat resource gateway yang aman dengan memanggil API Create.

    curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -X POST \
    -d @securityGateway.json \
    "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
    

Mengonfigurasi aplikasi SaaS

Setelah membuat gateway aman, Anda dapat mengonfigurasi aplikasi SaaS untuk menggunakan gateway aman untuk akses yang aman.

  1. Dapatkan alamat IP yang dialokasikan oleh gateway aman untuk setiap hub. Dua alamat IP dialokasikan untuk suatu region.

    curl \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
    "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
    

    Berikut adalah contoh respons GET dari gateway aman dengan hub. Dalam contoh, hub dibuat di region us-central1 dan us-east1 dan semua alamat IP yang ditampilkan dalam respons harus diizinkan di aplikasi SaaS.

    {
     "securityGateways": [
       {
         "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}",
         "createTime": "CREATE_TIME",
         "updateTime": "UPDATE_TIME",
         "displayName": "My security gateway",
         "state": "RUNNING",
         "hubs": {
           "us-central1": {
             "internetGateway": {
               "assignedIps": [
                 "IP_ADDRESS_1",
                 "IP_ADDRESS_2",
                 "IP_ADDRESS_3",
                 "IP_ADDRESS_4",
                 "IP_ADDRESS_5"
               ]
             }
           },
           "us-east1": {
             "internetGateway": {
               "assignedIps": [
                 "IP_ADDRESS_1",
                 "IP_ADDRESS_2",
                 "IP_ADDRESS_3",
                 "IP_ADDRESS_4",
                 "IP_ADDRESS_5"
               ]
             }
           }
         }
       }
     ]
    }
    
  2. Tambahkan alamat IP ke daftar yang diizinkan IP aplikasi SaaS Anda. Misalnya, untuk aplikasi GitHub, Anda dapat mengikuti panduan ini: Mengelola alamat IP yang diizinkan untuk organisasi Anda.

Membuat resource aplikasi

Informasi berikut akan memandu Anda melalui proses penyiapan dan konfigurasi resource aplikasi gateway yang aman.

Buat resource aplikasi gateway aman di Google Cloud

Resource aplikasi Google Cloud adalah sub-resource dari resource gateway yang aman. Buat resource aplikasi dengan memanggil Create API.

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d "{ \"display_name\": \"${APPLICATION_DISPLAY_NAME}\", \"endpoint_matchers\": [{hostname: \"${HOST_NAME}\"}] }" \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications?application_id=${APPLICATION_ID}"

Mengonfigurasi mode proxy Google Chrome

Untuk merutekan traffic resource aplikasi melalui gateway yang aman, konfigurasikan Chrome dengan menerapkan file PAC di setelan Chrome di konsol Google Admin.

  1. Buat atau perbarui file PAC.

    • Jika Anda membuat aplikasi pertama, buat file pac_config.js menggunakan contoh file PAC berikut.

    • Jika Anda membuat aplikasi kedua atau berikutnya, perbarui file pac_config.js yang ada dan tambahkan domain aplikasi baru ke array situs, seperti yang ditunjukkan dalam contoh file PAC berikut.

    function FindProxyForURL(url, host) {
     const PROXY = "HTTPS ingress.cloudproxy.app:443";
     const sites = ["MY_HOST_NAME"];
    
     for (const site of sites) {
       if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) {
         return PROXY;
       }
     }
    return 'DIRECT';
    }
    

    Jika Anda menggunakan file PAC yang sudah ada dan tidak khusus untuk gateway yang aman, gabungkan file PAC dengan menambahkan domain aplikasi Anda ke array situs.

  2. Upload file agar dapat didownload secara publik. Misalnya, Anda dapat mengupload file ke Cloud Storage, dan membuat file dapat didownload secara publik dengan memberikan peran Storage Object User kepada semua pengguna di bucket.

  3. Untuk memverifikasi bahwa file yang diupload selalu merupakan versi terbaru, Anda dapat menyesuaikan perilaku caching-nya dengan menyetel header Cache-Control ke no-cache. Setelan ini mencegah browser dan server perantara menyimpan salinan file, sehingga Chrome selalu mendownload versi terbaru.

    Untuk mengetahui informasi selengkapnya tentang Cache-Control dan pengaruhnya terhadap caching browser, lihat Header Cache-Control.

  4. Salin URL publik file yang diupload.

Memperbarui setelan mode proxy

  1. Buka konsol Google Admin.
  2. Klik Perangkat -> Chrome -> Setelan.
  3. Pilih unit organisasi atau grup, lalu klik Mode proxy.
  4. Di halaman Mode proxy, pilih Selalu gunakan konfigurasi otomatis proxy yang ditetapkan di bawah dan masukkan URL file PAC dari Cloud Storage.

Mengonfigurasi kebijakan akses

Anda dapat menerapkan kebijakan akses di tingkat gateway aman atau tingkat aplikasi:

  • Resource gateway aman: Terapkan kebijakan di tingkat gateway aman untuk mengontrol akses ke semua aplikasi terkait.
  • Aplikasi individual: Untuk kontrol yang lebih terperinci, Anda dapat menerapkan kebijakan akses ke aplikasi individual.
  1. Buat file format JSON bernama setIamPolicy.json dan tambahkan kode berikut.

    {
     "policy": {
       object (POLICY)
     }
    }
    

    Ganti POLICY dengan kebijakan izin IAM. etag dalam kebijakan harus sama dengan etag dalam kebijakan aktif, yang bisa Anda dapatkan dengan memanggil metode getIamPolicy.

  2. Untuk mengizinkan grup tertentu menggunakan gateway aman, berikan peran roles/beyondcorp.securityGatewayUser kepada grup tersebut.

    {
     "policy": {
       "version": 3,
       "bindings": [
         {
           "role": "roles/beyondcorp.securityGatewayUser",
           "members": [
                   "group:"
           ]
         }
       ],
       "etag": "AA1jlb"
     }
    }
    

    Untuk ID lainnya, seperti serviceAccount, user, group, principal, dan principalSet, dalam binding kebijakan, lihat akun utama IAM.

  3. Terapkan kebijakan akses di gateway aman yang ditentukan dalam file JSON dengan memanggil setIamPolicy API.

    curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -X POST \
    -d @setIamPolicy.json \
    "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
    

    Untuk menerapkan kebijakan akses pada aplikasi, gunakan perintah berikut:

    curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -X POST \
    -d @setIamPolicy.json \
    "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
    

Anda juga dapat menetapkan kebijakan akses dengan tingkat akses sebagai kondisi, seperti yang ditunjukkan dalam contoh berikut.

{
  "policy": {
    "version": 3,
    "bindings": [
      {
        "role": "roles/beyondcorp.securityGatewayUser",
        "members": [
                "group:"
        ],
        "condition": {
                "expression": "'accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels",
                "title": "Source IP must be in US"
        }
      }
    ],
    "etag": "A1jlb"
  }
}'

Menginstal ekstensi Chrome Enterprise Premium

Ekstensi Chrome Enterprise Premium adalah bagian integral dari gateway yang aman dan membantu melakukan autentikasi. Instal ekstensi untuk semua pengguna gateway aman. Untuk mengetahui informasi tentang cara men-deploy ekstensi, lihat Melihat dan mengonfigurasi aplikasi dan ekstensi.

  1. Buka konsol Google Admin.
  2. Klik Browser Chrome -> Aplikasi & Ekstensi.
  3. Klik tab Pengguna & browser.
  4. Untuk menambahkan ekstensi Chrome, klik tombol +.
  5. Telusuri ekajlcmdfcigmdbphhifahdfjbkciflj, lalu paksa penginstalan ke semua pengguna di unit organisasi atau grup.
  6. Klik ekstensi yang diinstal, lalu buka kolom Kebijakan untuk ekstensi dan berikan nilai JSON berikut:

    {
     "securityGateway": {
       "Value": {
         "authentication": {},
         "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" }
       }
     }
    }
    

Pengalaman pengguna akhir

Setelah penyiapan selesai, pengguna akhir yang mengakses aplikasi SaaS yang dilindungi akan diberi atau ditolak aksesnya berdasarkan kebijakan akses yang diterapkan ke aplikasi.

Mengakses aplikasi di Chrome

Ekstensi Chrome Enterprise Premium diperlukan untuk mengarahkan traffic melalui gateway yang aman. Ekstensi ini menangani autentikasi antara pengguna dan gateway aman. Ekstensi diinstal secara otomatis melalui kebijakan domain.

Saat pengguna mengakses aplikasi SaaS yang Anda konfigurasi, traffic mereka akan melewati gateway aman, yang memeriksa apakah mereka memenuhi kebijakan akses. Jika pengguna lulus pemeriksaan kebijakan akses, mereka akan diberi akses ke aplikasi.

Jika akses browser ke aplikasi ditolak oleh kebijakan otorisasi, pengguna akan menerima pesan Access denied.

Langkah berikutnya