Menggunakan akun layanan untuk membuat kebijakan

Akun layanan adalah jenis akun khusus yang biasanya digunakan oleh aplikasi atau workload komputasi, seperti instance Compute Engine, bukan oleh pengguna. Akun layanan diidentifikasi oleh alamat emailnya, yang bersifat unik untuk akun tersebut.

Aplikasi menggunakan akun layanan untuk melakukan panggilan API yang diotorisasi dengan mengautentikasi sebagai akun layanan itu sendiri, atau sebagai pengguna Google Workspace atau Cloud Identity melalui delegasi tingkat domain. Saat aplikasi melakukan autentikasi sebagai akun layanan, aplikasi memiliki akses ke semua resource yang boleh diakses oleh akun layanan.

Anda dapat menggunakan akun layanan untuk mengidentifikasi sumber traffic dan mengonfigurasi kebijakan Proxy Web Aman sesuai kebutuhan.

Panduan ini menunjukkan cara melakukan hal berikut:

  • Buat instance Secure Web Proxy dengan kebijakan kosong.
  • Membuat dan memasang akun layanan ke resource.
  • Menggunakan akun layanan untuk membuat kebijakan Proxy Web Aman.
  • Membuat instance Secure Web Proxy.
  • Menguji konektivitas dari VM Anda.

Sebelum memulai

  • Selesaikan langkah-langkah penyiapan awal.

  • Minta administrator organisasi untuk memberikan akses ke akun layanan.

  • Pastikan Anda telah menginstal Google Cloud CLI versi 406.0.0 atau yang lebih baru:

    gcloud version | head -n1
    

    Jika Anda sudah menginstal versi gcloud CLI sebelumnya, update versinya:

    gcloud components update --version=406.0.0
    

Membuat instance Secure Web Proxy dengan kebijakan kosong

Untuk membuat instance Secure Web Proxy, buat kebijakan keamanan kosong terlebih dahulu, lalu buat proxy web.

Buat kebijakan keamanan kosong

Konsol

  1. Di konsol Google Cloud, buka halaman Keamanan Jaringan.

    Buka Network Security

  2. Klik Secure Web Proxy.

  3. Klik tab Kebijakan.

  4. Klik Create a policy.

  5. Masukkan nama untuk kebijakan yang ingin dibuat, seperti myswppolicy.

  6. Masukkan deskripsi kebijakan, seperti My new swp policy.

  7. Dalam daftar Region, pilih region tempat Anda ingin membuat kebijakan.

  8. Klik Create.

Cloud Shell

  1. Gunakan editor teks pilihan Anda untuk membuat file POLICY_FILE.yaml. Ganti POLICY_FILE dengan nama file yang Anda inginkan untuk file kebijakan.

  2. Tambahkan baris berikut ke file YAML yang Anda buat:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Ganti kode berikut:

    • PROJECT_NAME: nama project Anda
    • REGION: wilayah tempat kebijakan ini diterapkan
    • POLICY_NAME: nama kebijakan yang Anda buat
    • POLICY_DESCRIPTION: deskripsi kebijakan yang Anda buat
  3. Impor kebijakan keamanan:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Membuat proxy web

Konsol

  1. Di konsol Google Cloud, buka halaman Keamanan Jaringan.

    Buka Network Security

  2. Klik Secure Web Proxy.

  3. Klik Set up a web proxy.

  4. Masukkan nama untuk proxy web yang ingin Anda buat, seperti myswp.

  5. Masukkan deskripsi proxy web, seperti My new swp.

  6. Dalam daftar Region, pilih region tempat Anda ingin membuat proxy web.

  7. Dalam daftar Network, pilih jaringan tempat Anda ingin membuat proxy web.

  8. Dalam daftar Subnetwork, pilih subnetwork tempat Anda ingin membuat proxy web.

  9. Masukkan alamat IP proxy web.

  10. Dalam daftar Certificate, pilih sertifikat yang ingin Anda gunakan untuk membuat proxy web.

  11. Dalam daftar Kebijakan, pilih kebijakan yang Anda buat untuk mengaitkan proxy web.

  12. Klik Create.

Cloud Shell

  1. Gunakan editor teks pilihan Anda untuk membuat file GATEWAY_FILE.yaml. Ganti GATEWAY_FILE dengan nama file yang Anda inginkan untuk file proxy web.

  2. Tambahkan baris berikut ke file YAML yang Anda buat:

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET_NAME
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Ganti kode berikut:

    • GATEWAY_NAME: nama untuk instance ini
    • GATEWAY_PORT_NUMBERS: daftar nomor port untuk gateway ini, seperti [80,443]
    • CERTIFICATE_URLS: daftar URL sertifikat SSL
    • SUBNET_NAME: nama subnet yang berisi GATEWAY_IP_ADDRESS

    • GATEWAY_IP_ADDRESS: daftar opsional alamat IP untuk instance Secure Web Proxy dalam subnet proxy yang sebelumnya dibuat pada langkah penyiapan awal

      Jika Anda memilih untuk tidak mencantumkan alamat IP, hapus kolom agar proxy web memilih alamat IP untuk Anda.

  3. Buat instance Secure Web Proxy:

    gcloud network-services gateways import GATEWAY_NAME \
        --source=GATEWAY_FILE.yaml \
        --location=REGION
    

Menguji konektivitas

Untuk menguji konektivitas, gunakan perintah curl dari VM mana pun dalam jaringan Virtual Private Cloud (VPC) Anda:

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

Diperkirakan error 403 Forbidden.

Membuat dan melampirkan akun layanan ke resource

Lakukan hal berikut untuk membuat dan melampirkan akun layanan:

  1. Buat akun layanan.

  2. Melampirkan akun layanan ke resource.

Membuat aturan Proxy Web yang Aman

Untuk membuat aturan Proxy Web yang Aman, lakukan hal berikut:

  1. Gunakan editor teks pilihan Anda untuk membuat file RULE_FILE.yaml. Ganti RULE_FILE dengan nama file yang Anda pilih.

  2. Untuk mengizinkan akses ke URL dari akun layanan yang dipilih, tambahkan kode berikut ke file YAML:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    Ganti kode berikut:

    • RULE_NAME: nama untuk aturan ini
    • RULE_DESCRIPTION: deskripsi untuk aturan yang Anda buat
    • RULE_PRIORITY: prioritas untuk aturan ini; angka yang lebih rendah berarti prioritas yang lebih tinggi
    • CEL_EXPRESSION: ekspresi {i>Common Expression Language<i} (CEL)

      Untuk mengetahui informasi selengkapnya, lihat referensi bahasa CEL matcher.

      Misalnya, untuk mengizinkan akses ke example.com dari resource dengan menyertakan akun layanan yang diinginkan, tambahkan kode berikut ke file YAML yang Anda buat untuk sessionMatcher:

      sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'"
      

      Ganti SERVICE_ACCOUNT dengan akun layanan yang ingin Anda izinkan. Alamat email ini harus berupa alamat email akun layanan.

  3. Impor aturan yang Anda buat:

    gcloud network-security gateway-security-policies rules import RULE_NAME \
       --source=RULE_FILE.yaml \
       --location=REGION \
       --gateway-security-policy=POLICY_NAME
    

Menguji konektivitas

Untuk menguji konektivitas, gunakan perintah curl dari resource dengan SERVICE_ACCOUNT yang terlampir:

curl -x https://IPv4_ADDRESS:443 http://example.com 
--proxy-insecure

Ganti IPv4_ADDRESS dengan alamat IPv4 instance Secure Web Proxy.

Langkah selanjutnya