Akun layanan adalah Akun Google non-manusia khusus yang digunakan oleh aplikasi, proses otomatis, atau workload komputasi, seperti instance Compute Engine, untuk melakukan panggilan API yang diotorisasi. Tidak seperti akun pengguna, akun layanan hanya diidentifikasi berdasarkan alamat email uniknya.
Aplikasi menggunakan akun layanan untuk melakukan autentikasi dan mendapatkan akses ke Google Cloud resource. Saat aplikasi melakukan autentikasi menggunakan akun layanan, aplikasi akan mendapatkan akses ke resource yang telah diberi izin Identity and Access Management eksplisit untuk akun layanan. Hal ini memberikan metode yang aman, dapat diaudit, dan terpusat untuk otorisasi machine-to-machine.
Untuk Secure Web Proxy, akun layanan memainkan peran penting dalam otorisasi dan penerapan kebijakan. Dengan menggunakan akun layanan untuk mengidentifikasi sumber traffic workload, Anda dapat membuat kebijakan Secure Web Proxy terperinci yang secara khusus mengizinkan atau menolak traffic web berdasarkan identitas aplikasi, bukan hanya alamat IP-nya.
Halaman ini menunjukkan cara melakukan hal berikut:
- Membuat instance Secure Web Proxy dengan kebijakan kosong
- Membuat akun layanan dan memberikan peran IAM
- Membuat aturan Secure Web Proxy
- Menguji konektivitas seluruh konfigurasi Secure Web Proxy
Sebelum memulai
Selesaikan langkah-langkah penyiapan awal.
Minta administrator organisasi untuk memberi Anda akses ke akun layanan.
Pastikan Anda telah menginstal Google Cloud CLI versi 406.0.0 atau yang lebih baru:
gcloud version | head -n1Jika Anda telah menginstal gcloud CLI versi sebelumnya, update versinya:
gcloud components update --version=406.0.0
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
Di Google Cloud konsol, buka halaman SWP Policies.
Klik Create a policy.
Di kolom Name, masukkan nama untuk kebijakan, seperti
myswppolicy.Di kolom Description, masukkan deskripsi untuk kebijakan, seperti
My new swp policy.Untuk Regions, pilih region tempat Anda ingin membuat kebijakan, seperti
us-central1.Klik Create.
Cloud Shell
Gunakan editor teks pilihan Anda untuk membuat file
policy.yaml.Tambahkan kode berikut ke file
policy.yamlyang Anda buat:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTIONGanti kode berikut:
PROJECT_NAME: nama project AndaREGION: region tempat kebijakan Anda dibuat, sepertius-central1POLICY_NAME: nama kebijakan AndaPOLICY_DESCRIPTION: deskripsi untuk kebijakan Anda
Impor kebijakan keamanan menggunakan perintah
gcloud network-security gateway-security-policies importcommand:gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
Membuat proxy web
Konsol
Di Google Cloud konsol, buka halaman Web Proxies.
Klik Create a secure web proxy.
Di kolom Name, masukkan nama untuk proxy web, seperti
myswp.Di kolom Description, masukkan deskripsi untuk proxy web, seperti
My new swp.Untuk Routing mode, pilih salah satu opsi berikut:
- Explicit: men-deploy instance Secure Web Proxy Anda dalam mode proxy eksplisit.
- Next hop: men-deploy instance Secure Web Proxy Anda dalam mode hop berikutnya.
Untuk Regions, pilih region tempat Anda ingin membuat proxy web, seperti
us-central1.Untuk Network, pilih jaringan tempat Anda ingin membuat proxy web.
Untuk Subnetwork, pilih subnet VPC yang Anda buat selama penyiapan awal.
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 Anda akan otomatis memilih alamat IP dari subnet yang dipilih.
Untuk Certificate, pilih sertifikat yang ingin Anda gunakan untuk membuat proxy web.
Untuk Policy, pilih kebijakan yang Anda buat untuk mengaitkan proxy web.
Klik Create.
Cloud Shell
Gunakan editor teks pilihan Anda untuk membuat file
gateway.yaml.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: samplescopeGanti kode berikut:
GATEWAY_NAME: nama instance Secure Web Proxy iniGATEWAY_PORT_NUMBERS: daftar nomor port untuk gateway ini, seperti[80,443]CERTIFICATE_URLS: daftar URL sertifikat SSLSUBNETWORK: subnet VPC yang Anda buat selama penyiapan awalROUTING_MODE: tentukan mode pemilihan rute proxy web yang diperlukan:EXPLICIT_ROUTING_MODE: men-deploy instance Secure Web Proxy Anda dalam mode proxy eksplisitNEXT_HOP_ROUTING_MODE: men-deploy instance Secure Web Proxy Anda 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 awalJika Anda memilih untuk tidak mencantumkan alamat IP, hapus kolom tersebut agar proxy web dapat memilih alamat IP untuk Anda.
Buat instance Secure Web Proxy menggunakan perintah
gcloud network-services gateways importcommand:gcloud network-services gateways import GATEWAY_NAME \ --source=gateway.yaml \ --location=REGION
Menguji konektivitas
Untuk menguji konektivitas, gunakan perintah curl dari instance mesin virtual (VM) mana pun dalam jaringan Virtual Private Cloud (VPC) Anda:
curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
Jika semuanya berfungsi dengan benar, instance Secure Web Proxy Anda 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 dengan benar menerapkan postur keamanan default untuk menolak semua traffic hingga Anda menentukan aturan
allowtertentu di bagian berikutnya.
Membuat akun layanan dan memberikan peran IAM
Buat akun layanan: gunakan
gcloud iam service-accounts createperintah untuk membuat akun layanan bernamamy-swp-sadi Google Cloud project Anda.gcloud iam service-accounts create my-swp-sa \ --display-name="Secure Web Proxy service account" \ --description="Service account for Secure Web Proxy instances"
Berikan peran IAM ke akun layanan: gunakan perintah
gcloud projects add-iam-policy-bindinguntuk memberikan peran IAM yang diperlukan ke akun layanan sehingga akun tersebut dapat mengelola atau menggunakan resource di Google Cloud project Anda.Misalnya, untuk mengizinkan akun layanan menggunakan resource jaringan, berikan peran Compute Network User (
roles/compute.networkUser).gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:my-swp-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.networkUser"
Ganti
PROJECT_IDdengan ID project Anda.Google Cloud
Membuat aturan Secure Web Proxy
Konsol
Di Google Cloud konsol, buka halaman SWP Policies.
Klik nama kebijakan yang Anda buat sebelumnya, seperti
myswppolicy.Klik Add rule.
Untuk setiap aturan, lakukan hal berikut:
Di kolom Priority, masukkan urutan evaluasi numerik untuk aturan tersebut. Aturan dievaluasi dari prioritas tertinggi hingga terendah, dengan
0sebagai prioritas tertinggi.Di kolom Name, masukkan nama untuk aturan tersebut.
Di kolom Description, masukkan deskripsi untuk aturan tersebut.
Untuk Action, pilih salah satu opsi berikut:
- Izinkan: untuk mengizinkan permintaan koneksi yang cocok dengan aturan tersebut.
- Deny: untuk menolak permintaan koneksi yang cocok dengan aturan tersebut.
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.
Di bagian Session Match, tentukan alamat email akun layanan yang Anda buat sebelumnya. Contoh:
sessionMatcher: "source.matchServiceAccount(SERVICE_ACCOUNT) && host() == 'example.com'"Untuk mengetahui informasi selengkapnya tentang sintaksis untuk
SessionMatcher, lihat Referensi bahasa pencocok CEL.Di bagian Application Match, tentukan kriteria untuk mencocokkan permintaan.
Klik Add rule.
Untuk menambahkan aturan lain, klik Add rule.
Cloud Shell
Gunakan editor teks pilihan Anda untuk membuat file
rule.yaml.Untuk mengizinkan akses ke URL dari akun layanan yang sesuai, tambahkan kode berikut ke file
rule.yamlyang Anda buat:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME description: RULE_DESCRIPTION enabled: true priority: RULE_PRIORITY sessionMatcher: CEL_EXPRESSION basicProfile: ALLOWGanti kode berikut:
RULE_NAME: nama aturan iniRULE_DESCRIPTION: deskripsi untuk aturan tersebutRULE_PRIORITY: prioritas aturan ini; angka yang lebih rendah sesuai dengan prioritas yang lebih tinggiCEL_EXPRESSION: ekspresi Common Expression Language (CEL). Untuk mengetahui informasi selengkapnya, lihat Referensi bahasa pencocok CEL.
Misalnya, untuk mengizinkan akses ke
example.comdari resource dengan akun layanan yang diperlukan, tambahkan kode berikut ke file YAML yang Anda buat untuksessionMatcher:```yaml sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'" ```Ganti
SERVICE_ACCOUNTdengan akun layanan yang ingin Anda izinkan. Ini harus berupa alamat email akun layanan.Impor aturan yang Anda buat menggunakan
gcloud network-security gateway-security-policies rules importperintah:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
Menguji konektivitas
Anda dapat menguji konektivitas lagi untuk memvalidasi bahwa seluruh konfigurasi Secure Web Proxy Anda—termasuk akun layanan, aturan kebijakan keamanan, dan gateway—berfungsi sesuai harapan.
Untuk menguji konektivitas, gunakan perintah curl dari resource—seperti instance VM—dengan SERVICE_ACCOUNT terlampir:
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. Kode status ini mengonfirmasi hasil utama berikut:
Otorisasi berhasil: membuktikan bahwa traffic yang berasal dari resource diidentifikasi dengan benar oleh akun layanan yang ditetapkan, dan identitas ini berhasil cocok dengan aturan
allowyang Anda tambahkan ke kebijakan keamanan.Fungsi menyeluruh: memvalidasi bahwa traffic mengalir dengan benar melalui jalur yang dikonfigurasi—dari resource > ke instance Secure Web Proxy > melewati kebijakan keamanan > dan mencapai tujuan eksternal.