Menggunakan tag untuk membuat kebijakan

Halaman ini menjelaskan cara melampirkan tag Resource Manager ke kebijakan Secure Web Proxy. Tag Pengelola Resource adalah label yang dapat Anda lampirkan ke berbagai Google Cloud resource, seperti instance virtual machine (VM). Anda dapat menggunakan tag untuk menerapkan kontrol akses bersyarat di seluruh jaringan dengan label organisasi yang ada.

Dengan menggunakan tag ini, Anda dapat melakukan tindakan berikut:

  • Menegmentasikan workload: Anda dapat mengidentifikasi lingkungan yang berbeda secara unik seperti production atau development dan jenis layanan seperti frontend atau database.

  • Memusatkan kontrol akses: Anda dapat mendasarkan kebijakan Secure Web Proxy pada tag ini. Misalnya, Anda dapat membuat aturan kebijakan yang menyatakan: "Hanya traffic yang berasal dari resource yang memiliki tag tag segment=production yang dapat mengakses kumpulan URL tertentu".

Halaman ini menunjukkan cara melakukan hal berikut:

Sebelum memulai

Membuat instance Secure Web Proxy dengan kebijakan kosong

Untuk membuat instance Secure Web Proxy, Anda harus membuat kebijakan keamanan kosong terlebih dahulu, lalu membuat proxy web yang menggunakan kebijakan tersebut.

Membuat kebijakan keamanan kosong

Konsol

  1. Di Google Cloud konsol, buka halaman SWP Policies.

    Buka SWP Policies

  2. Klik Create a policy.

  3. Di kolom Name, masukkan nama untuk kebijakan, seperti myswppolicy.

  4. Di kolom Description, masukkan deskripsi untuk kebijakan, seperti My new swp policy.

  5. Untuk Regions, pilih region tempat Anda ingin membuat kebijakan, seperti us-central1.

  6. Klik Create.

Cloud Shell

  1. Gunakan editor teks untuk membuat file policy.yaml.

  2. Tambahkan kode berikut ke file policy.yaml:

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

    Ganti kode berikut:

    • PROJECT_NAME: nama project Anda

    • REGION: region tempat kebijakan Anda dibuat, seperti us-central1

    • POLICY_NAME: nama kebijakan Anda

    • POLICY_DESCRIPTION: deskripsi untuk kebijakan Anda

  3. Impor kebijakan keamanan menggunakan perintah gcloud network-security gateway-security-policies import command:

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

Membuat proxy web

Konsol

  1. Di Google Cloud konsol, buka halaman Web Proxies.

    Buka Web Proxies

  2. Klik Create a secure web proxy.

  3. Di kolom Name, masukkan nama untuk proxy web, seperti myswp.

  4. Di kolom Description, masukkan deskripsi untuk proxy web, seperti My new swp.

  5. Untuk Routing mode, pilih salah satu opsi berikut:

    • Explicit: men-deploy instance Secure Web Proxy dalam mode proxy eksplisit.
    • Next hop: men-deploy instance Secure Web Proxy dalam mode hop berikutnya.
  6. Untuk Regions, pilih region tempat Anda ingin membuat proxy web, seperti us-central1.

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

  8. Untuk Subnetwork, pilih subnet VPC yang Anda buat selama penyiapan awal.

  9. Opsional: Di kolom Web proxy IP address, masukkan alamat IP Secure Web Proxy.

    Anda dapat memasukkan alamat IP dari rentang alamat IP Secure Web Proxy yang berada di subnet yang Anda buat pada langkah sebelumnya. Jika Anda tidak memasukkan alamat IP, instance Secure Web Proxy akan otomatis memilih alamat IP dari subnet yang dipilih.

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

  11. Untuk Policy, pilih kebijakan yang Anda buat untuk mengaitkan proxy web.

  12. Klik Create.

Cloud Shell

  1. Gunakan editor teks untuk membuat file gateway.yaml.

  2. Tambahkan kode berikut ke file gateway.yaml:

    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/SUBNETWORK
    routingMode: ROUTING_MODE
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Opsional: Untuk mengizinkan aplikasi klien dari region lain terhubung ke proxy Anda, aktifkan akses global saat membuat instance Secure Web Proxy. Google Cloud

    Di file gateway.yaml, tambahkan kolom allow_global_access dan tetapkan ke true.

    Penting: Anda hanya dapat mengaktifkan allow_global_access saat membuat instance Secure Web Proxy. Anda tidak dapat mengonfigurasi setelan ini nanti.

    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/SUBNETWORK
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    allow_global_access: true
    

    Ganti kode berikut:

    • GATEWAY_NAME: nama instance Secure Web Proxy ini

    • GATEWAY_PORT_NUMBERS: daftar nomor port untuk gateway ini, seperti [80,443]

    • CERTIFICATE_URLS: daftar URL sertifikat SSL

    • SUBNETWORK: subnet VPC yang Anda buat selama penyiapan awal

    • ROUTING_MODE: tentukan mode pemilihan rute proxy web yang diperlukan:

      • EXPLICIT_ROUTING_MODE: men-deploy instance Secure Web Proxy dalam mode proxy eksplisit
      • NEXT_HOP_ROUTING_MODE: men-deploy instance Secure Web Proxy dalam mode hop berikutnya
    • GATEWAY_IP_ADDRESS: daftar alamat IP opsional untuk instance Secure Web Proxy Anda dalam subnet proxy yang sebelumnya Anda buat di langkah-langkah penyiapan awal

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

  3. Buat instance Secure Web Proxy menggunakan perintah gcloud network-services gateways import command:

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

Menguji konektivitas

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

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

Jika semuanya berfungsi dengan benar, instance Secure Web Proxy akan menampilkan kode status 403 Forbidden. Error ini mengonfirmasi hal berikut:

  • Instance Secure Web Proxy telah berhasil di-deploy dan secara aktif menerima traffic.

  • Kebijakan Secure Web Proxy menerapkan postur keamanan default dengan benar untuk menolak semua traffic hingga Anda menentukan aturan allow tertentu di bagian berikutnya.

Membuat dan melampirkan tag Resource Manager

  1. Membuat kunci dan nilai tag yang aman

    Google Cloud

    Contoh: Untuk membuat tag untuk lingkungan yang dibatasi, ikuti langkah-langkah berikut:

    1. Buat kunci tag (access-level) menggunakan perintah gcloud resource-manager tags keys create dengan tujuan yang ditetapkan ke GCE_FIREWALL.

    2. Ambil ID kunci tag dari output perintah pembuatan atau menggunakan gcloud resource-manager tags keys list perintah. Anda memerlukan ID ini untuk menautkan nilai tag ke kunci tag tertentu ini.

    3. Buat nilai tag (restricted) menggunakan perintah gcloud resource-manager tags values create, dengan menentukan ID kunci tag sebagai induk.

    # Create the tag key
    # The output provides a unique ID, such as "tagKeys/1234567890"
    
    gcloud resource-manager tags keys create "access-level" \
        --parent="organizations/1234567890" \
        --purpose="GCE_FIREWALL" \
        --purpose-values="execution_env=ANS"
    
    # Create the tag value and connect it to the key
    # The "--parent" flag identifies to which key this value belongs
    
    gcloud resource-manager tags values create "restricted" \
        --parent="tagKeys/1234567890"
    
  2. Melampirkan tag ke instance VM

    Melampirkan tag ini akan mengaitkan traffic keluar dari instance VM Anda dengan identitas tag tertentu, yang memungkinkan proxy mengenali workload dan menerapkan aturan kebijakan keamanan Anda.

    Contoh: Anggaplah Anda memiliki instance VM bernama internal-tool. Anda dapat melampirkan nilai tag restricted ke internal-tool menggunakan gcloud resource-manager tags bindings create perintah. Penetapan tag ini memungkinkan proxy Anda mengidentifikasi traffic yang berasal dari instance VM internal-tool.

    # Attach the "restricted" tag to a specific VM instance
    
    
    gcloud resource-manager tags bindings create \
        --parent="//[compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool](https://compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool)" \
        --tag-value="tagValues/987654321"
    

Membuat aturan Secure Web Proxy

Konsol

  1. Di Google Cloud konsol, buka halaman SWP Policies.

    Buka SWP Policies

  2. Klik nama kebijakan Anda, seperti myswppolicy.

  3. Klik Add rule.

  4. Untuk setiap aturan, lakukan hal berikut:

    1. Untuk Priority, masukkan urutan evaluasi numerik untuk aturan. Aturan dievaluasi dari prioritas tertinggi hingga terendah, dengan 0 adalah prioritas tertinggi.

    2. Di kolom Name, masukkan nama untuk aturan.

    3. Di kolom Description, masukkan deskripsi untuk aturan.

    4. Untuk Action, pilih salah satu opsi berikut:

      • Izinkan: untuk mengizinkan permintaan koneksi yang cocok dengan aturan.
      • Deny: untuk menolak permintaan koneksi yang cocok dengan aturan.
    5. Untuk kolom Status, pilih salah satu opsi berikut untuk penerapan aturan:

      • Diaktifkan: untuk menerapkan aturan pada instance Secure Web Proxy Anda.
      • Disabled: untuk tidak menerapkan aturan pada instance Secure Web Proxy Anda.
    6. Di bagian Session match, tentukan ID unik tag yang Anda buat di bagian sebelumnya. Contoh:

      sessionMatcher: "source.matchTag('TAG&&_VALUE')  host() == 'example.com'"
      

      Untuk mengetahui informasi selengkapnya tentang sintaksis untuk SessionMatcher, lihat Referensi bahasa pencocok CEL.

    7. Di bagian Application match, tentukan kriteria untuk mencocokkan permintaan.

    8. Klik Add rule.

Cloud Shell

  1. Gunakan editor teks untuk membuat file rule.yaml.

  2. Untuk mengizinkan akses ke URL dari tag yang diperlukan, tambahkan kode berikut ke file rule.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 aturan ini
    • RULE_DESCRIPTION: deskripsi untuk aturan
    • RULE_PRIORITY: prioritas aturan ini; angka yang lebih rendah sesuai dengan prioritas yang lebih tinggi
    • CEL_EXPRESSION: ekspresi Common Expression Language (CEL). Untuk mengetahui informasi selengkapnya, lihat Referensi bahasa pencocok CEL.

    Misalnya, untuk mengizinkan akses ke example.com dari tag yang diperlukan, tambahkan baris sessionMatcher berikut ke file YAML:

    sessionMatcher: "source.matchTag('TAG&&_VALUE')  host() == 'example.com'"
    

    Ganti TAG_VALUE dengan tag yang ingin Anda izinkan. Pastikan tag mengikuti format ID resource numerik; misalnya, tagValues/567890123456.

  3. Impor aturan yang Anda buat menggunakan gcloud network-security gateway-security-policies rules import perintah:

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

Menguji konfigurasi kebijakan

Anda dapat menguji konektivitas lagi untuk memvalidasi bahwa kebijakan Secure Web Proxy Anda, yang mengandalkan tag Resource Manager untuk identitas, berfungsi sesuai harapan.

Untuk menguji konektivitas, gunakan perintah curl dari VM mana pun yang terkait dengan tag TAG_VALUE yang sesuai.

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

Ganti IPv4_ADDRESS dengan alamat IPv4 instance Secure Web Proxy Anda.

Jika semuanya berfungsi dengan benar, Anda akan menerima kode status 200 OK atau 403 Forbidden. Respons ini mengonfirmasi hasil utama berikut:

  • Keberhasilan berbasis tag: kode status 200 OK memvalidasi bahwa traffic dari VM dengan tag Pengelola Resource yang benar dan terlampir cocok dengan aturan kebijakan dan diizinkan melalui proxy. Kecocokan yang terverifikasi ini menghasilkan koneksi yang berhasil.

  • Penolakan berbasis tag: kode status 403 Forbidden memverifikasi bahwa traffic dari VM tanpa tag yang ditentukan atau dengan tag yang salah ditolak aksesnya dengan benar oleh kebijakan. Penerapan ini membuktikan bahwa segmentasi dan penerapan berbasis tag Anda berfungsi sesuai harapan.

Langkah berikutnya