Table of contents
Open Table of contents
Introduction
ในยุคสมัยนี้ใครๆก็ใช้งาน VM บน Cloud การ SSH เข้าไปในนั้นเพื่อทำงานต่างๆจึงเป็นสิ่งที่หลีกเลี่ยงไม่ได้ โดยทั่วไปที่นิยมทำกันก็มักจะ Allow ให้เครื่อง VM สามารถเข้าผ่าน Internet ได้โดยตรง โดยบางทีก็มีการเปิด Access Port 22 ให้ทั้งโลก (0.0.0.0/0)
บางคนอยากให้ปลอดภัยหน่อยก็อาจจะจำกัดให้เข้าได้เฉพาะ IP ตัวเองเท่านั้น (ipaddress/24) แต่วีธีที่จำกัดให้บาง IP เข้าเท่านั้นก็มีข้อเสียคือ IP Address ที่เราใช้งานกันอยู่ที่บ้าน/ที่ทำงาน มีการเปลี่ยนอยู่แทบจะทุกวัน (ยกเว้น fixed ip internet) เราจึงจำเป็นต้องมีการเปลี่ยน Allow IP อยู่ทุกๆวัน
ถ้าเราไม่อยากให้เครื่อง VM เราสามารถเข้าได้จาก Internet เลยเพื่อลด Attack Surface ให้ได้มากที่สุด บน Google Cloud Platform สามารถทำได้ 5 วิธีดังนี้
- Other VMs on the network
- Identity-Aware Proxy’s TCP forwarding <— วันนี้เราจะมาใช้วิธีนี้กัน
- The metadata server
- Google Cloud SDK
- Managed VPN gateway
Identity-Aware Proxy
อะไรคือ Identity-Aware Proxy
Identity-Aware Proxy เป็นเครื่องมือที่ช่วย Control Access ของ Application หรือ, Resource ต่างๆบน Cloud หรือ On Premise ผ่าน Identity บน Google Cloud IAM ได้โดยละเอียด ตามตัวอย่างดังภาพ
ทำยังไง
-
สร้าง VM Instance ที่อยากใช้ขึ้นมาโดยไม่ต้อง Add External IPv4 เพื่อปิด Internet Access
-
สร้าง Firewall Rule โดยให้อยู่ใน Network เดียวกันกับ VM Instance ที่สร้างขึ้นมาในข้อ 1) a. Allow Source IP:
35.235.240.0/20
b. Protocol:tcp:22
c. Target -> Target Tags:allow-internal-ssh
-
Edit Instance ข้อ 1) ใส่ Network Tag ชื่อ
allow-internal-ssh
-
ทดลอง SSH เข้า Instance
- 4.1. ผ่าน Column SSH ในหน้า (VM Instances)[https://console.cloud.google.com/compute/instances?hl=en]
- 4.2. Gcloud Command
gcloud compute ssh <VM_NAME> --tunnel-through-iap
-
เสร็จเรียบร้อย เราจะ SSH เข้าไปใน Instance ด้วย Indentity Google Cloud ที่ Login อยู่
Summary
บทความนี้แนะนำวิธีการเข้าถึง VM บน Google Cloud Platform อย่างปลอดภัยโดยไม่ต้องเปิด Port 22 จาก Internet โดยใช้งานผ่าน Identity-Aware Proxy (IAP) แทนเพื่อช่วยเพิ่มความปลอดภัยและควบคุมการเข้าถึงผ่าน Identity บน Google Cloud IAM ได้อย่างละเอียด