By Arnon Puitrakul - 15 พฤศจิกายน 2024
จากตอนก่อน เราเล่าเรื่องการ Host Website จากบ้านของเราอย่างปลอดภัยด้วย Cloudflare Tunnel ไปแล้ว แต่ Product ด้าน Zero-Trust ของนางยังไม่หมด วันนี้เราจะมาเล่าอีกหนึ่งขาที่จะช่วยปกป้อง Infrastructure และ Application ต่าง ๆ ของเราด้วย Cloudflare Access กัน
Cloudflare Access เป็นบริการจาก Cloudflare ที่ทำหน้าที่ในการ Verify และ Secure การเชื่อมต่อต่าง ๆ ที่จะเข้าสู่ Infrastructure หรือ Application ของเราได้ สามารถช่วยป้องกันภัยคุกคามต่าง ๆ ได้มากมาย แต่ยังไม่ทำให้เสีย UX จนคนในองค์กรต้อง Workaround เล่นแร่แปรธาตุสร้างช่องโหว่ใหม่ ๆ กันออกมาไม่เว้นแต่ละวัน
การทำงานของ Cloudflare Access ง่ายมาก ๆ คือ มันจะเข้ามาเป็นตัวกลางระหว่างเรา กับ Infrastructure และ Application ต่าง ๆ ของเรา โดยมันจะ Provide ทั้ง SSO ผ่านวิธีการยืนยันตัวตนเสมอตามหลักการ Zero-Trust พร้อมกับเป็นด่านหน้าป้องกันภัยต่าง ๆ ด้วยการที่ตัวมันเป็น Reverse Proxy ให้เราอีกชั้นนึงอีก ซึ่งใคร ๆ ก็รู้กันดีว่าการยิง Cloudflare ผ่าน DDoS ให้ล้มมันยากมาก ๆ ด้วย Infrastucture ของเขาที่แน่นมาก ๆ และสุดท้าย การเข้าถึงที่ง่ายไม่ต้องตั้งค่าเครื่องผู้ใช้ให้ยุ่งยากด้วยการเข้าถึงระบบยืนยันตัวตนด้วยหน้าเว็บได้ทันที
ตัวอย่างการใช้งานของเราง่าย ๆ คือ เว็บนี้แหละ เบื้องหน้าของเว็บที่แสดงบทความต่าง ๆ เราอนุญาติให้เข้าถึงได้ทั่วไปเป็น Public เราก็แค่เอาเว็บของเราอยู่หลัง Cloudflare ตามปกติ เพื่อป้องกันพวก DDoS และใช้มันเป็น DNS เพื่อซ่อน IP Address ที่แท้จริงของเราไว้ด้วย แต่หลังบ้าน หน้า Admin เราคงไม่อยากให้ใครเข้ามาป้วนเปี่ยนแน่ ๆ ใช่มะ ถึงแม้ว่า Ghost นางจะมีระบบ Authentication อยู่แล้ว แต่นั่นก็เป็นการยืนยันตัวตนเพียงแค่ชั้นเดียวด้วยรหัสผ่านเท่านั้น ซึ่งหาก Ghost เองมีช่องโหว่บางอย่างที่ทำให้คนเข้าถึง Admin ได้ละ ทำให้เราต้องการระบบการป้องกันอีกชั้นที่ทำให้เรามั่นใจว่าเราจะปลอดภัยมากขึ้น นี่แหละคือจุดที่ Cloudflare Access เข้ามา เราก็แค่เอามันมาดักทางไว้ข้างหน้าก่อน เมื่อเราจะเข้าใช้งาน Ghost Admin เราก็ต้อง Authenticate กับทั้ง Cloudflare Access และ Ghost CMS ของเราด้วย นั่นเอง
และจริง ๆ แล้วเรายังสามารถนำไปใช้งานกับพวก SaaS Application ต่าง ๆ ได้ด้วย เผื่อองค์กรใครมีการใช้งาน ก็สามารถเอาเข้าไปแทรกเพื่อเสริมความปลอดภัยให้กับระบบของเราได้ด้วยเช่นกัน
อย่างที่บอกว่ามันเกิดมาเป็นหนึ่งใน Zero-Trust Product ของ Cloudflare ทำให้เราสามารถ Apply พวก Least Privilege ได้ด้วยการจัดการ การเข้าถึง Resource ต่าง ๆ ได้ค่อนข้างยืดหยุ่นมาก ๆ และทั้งหมดเราไม่ต้องติดตั้งระบบอะไรเพิ่มเติมให้ยุ่งยาก สามารถเพิ่มผู้ใช้และจัดการการเข้าถึงได้สารพัดรูปแบบมาก ๆ เดี๋ยวจะมาเล่าว่ามันทำได้ขนาดไหนกัน ตัวอย่างการใช้งานพวกนี้คือ บางครั้งเราอาจจะต้องให้บุคคลภายนอกอาจจะเป็น Contractor เข้ามาใช้ Resource ร่วมกันกับเราด้วย เราสามารถใช้ Cloudflare Access กำหนดให้ User กลุ่มนี้เข้าถึง Resource ที่เรากำหนดไว้ได้ด้วยละ
ประเด็นคือ.... ไอ้ทิดดดดดดดด ที่เราว่ามาทั้งหมดนี่อะนะ มันฟรีเว้ย !!!!!!! ฟรีสำหรับทีมที่ขนาดน้อยกว่า 50 คน เป็นไปได้ไงวะไอ้ทิด เรียกว่า ถ้าเราเป็นบริษัทขนาดเล็ก ๆ ก็คือใช้ฟรีเลยนะเว้ย
เรามาลองตั้ง Cloudflare Access ใส่ Infra สักตัวที่เรามีกัน เดี๋ยวเราจะเห็นเลยว่า ที่เราบอกว่า มันง่าย มันง่ายจริง ๆ ใช้เวลาไม่เกิน 15 นาทีจบได้เลย แมร่งง่ายขนาดนั้นเลยแหละ แต่ก่อนอื่น สิ่งที่เราจะต้องมีคือ Domain Name ที่ต่อกับ Cloudflare และเปิดใช้งาน Zero Trust Service ก่อน
ให้เราเข้าไปที่หน้า Zero-Trust ด้านซ้ายให้เราเลือก Access แล้วก็ Application กด Add an Application เพื่อสร้าง Application ใหม่
มันจะถามว่า แล้ว Application แบบไหนละที่เราจะเพิ่ม ในที่นี้เราขอเพิ่มเป็น Selfed-Host Application ที่เรา Host ไว้ที่บ้านละกัน ให้เราเลือก Select ตรง Self-hosted
มาถึงการตั้งค่า Application กัน อย่างแรกคือ การตั้งชื่อ ก็ตั้งอะไรก็ได้ให้เรารู้ว่ามันคืออะไร ถัดลงมาคือ Application Domain ให้เราใส่ Path ของ Application ที่เราต้องการ เช่น ของเราเป็น https://grafana.arnondora.in.th เราก็แค่ใส่ Subdomain เป็น grafana แล้วเลือก Subdomain เป็น arnondora.in.th และ Path ด้านหลังนี่แหละที่เราสามารถกำหนด Path ได้อีกว่าเราจะ Protect Path ไหน เช่นเว็บนี้เอง เรา Protect แค่ Admin Panel พอ เราก็ใส่ Path ระบุลงไป
เลื่อนลงมาด้านล่าง Section Block Page อันนี้จะเป็นการตั้งค่าว่า หาก Authentication ไม่ผ่านจะให้มันวิ่งไปที่หน้าไหน Default มันจะเด้งไปที่หน้าของ Cloudflare บอกแค่ว่า อื้มไม่ผ่านนะอะไรแบบนั้น แต่ถ้าสามารถให้มัน Redirect ไปที่เว็บ หรือหน้าเว็บต่าง ๆ ได้เช่น อาจจะเป็นหน้าแรกของเว็บบริษัทก็ได้เช่นกัน
ถัดลงมาอีก อันนี้แหละคือความเริ่ดคือการตั้งค่า Identity Provider (IdP) หรือผู้ให้บริการตัวตนกับเรา โดยใน Cloudflare Access เราสามารถ Integrate ได้จากหลายเจ้ามาก ๆ ตัวอย่างที่เราใช้งานอยู่ในบ้านคือ Github หรือก็คือ เราสามารถใช้ Github Account ของเราในการยืนยันตัวตนเพื่อเข้าสู่ Resource ของเราได้นั่นเอง ซึ่งตัว Guthub เองก็สามารถเปิดใช้งาน MFA ได้อยู่แล้ว ทำให้มีความปลอดภัยมากขึ้นไปอีก แนะนำว่า หากใครมีใช้หลาย ๆ ตัว แนะนำให้เลือกเปิดเฉพาะตัวที่ผู้ใช้กลุ่มนั้น ๆ จะใช้งานก็พอแล้ว อย่าไปใช้ทั้งหมดเลย ปลอดภัยไว้ก่อนดีกว่า
มาที่หน้าต่อไป เป็นการตั้งค่า Policy แล้วว่า เราจะต้องการตั้งค่าให้มันมีการจัดการอย่างไร เช่น เราจะให้ Session การตรวจสอบครั้งนึงมันอยู่ได้นานขนาดไหน ก่อนที่จะต้องตรวจสอบใหม่อีกครั้ง
เลื่อนลงมา อันนี้สำคัญมาก ๆ คือ การตั้งค่า Rule ต่าง ๆ ว่า Resource นี้เราจะให้ใครสามารถเข้าถึงได้บ้าง โดยเราสามารถเลือกกำหนดได้ค่อนข้างละเอียดมาก ๆ เช่นเราสามารถตั้งค่าให้เข้าถึง Resource นี้ได้เลย แต่..... ถ้าเป็นแบบนี้ เราจะให้มัน.... ก็ได้เหมือนกัน หรือสำหรับเราเอง เราจะตั้งเป็นว่า หากเราใช้ IdP อะไรก็ได้เชื่อมต่อเข้ามา แล้ว Email ลงท้ายด้วย arnondora.in.th เราจะให้ผ่านทั้งหมด ก็ทำได้
หน้าสุดท้าย มันจะเป็นการตั้งค่าพวก CORS และ Cookie ต่าง ๆ ส่วนตัวเราใช้ทั่ว ๆ ไป เราจะข้ามไปเลย ก็เป็นอันเรียบร้อย
เมื่อเราเข้าถึง Resource ที่เราตั้งค่าเอาไว้เมื่อกี้ แทนที่เราจะเข้าถึงมันได้โดยตรง มันจะโดนกั้นด้วย Cloudflare Access ก่อน เราก็แค่ใช้ IdP ที่ตั้งค่าไว้โยนให้มันไป แล้วถ้ามันตรงกัน มันก็จะอนุญาติให้เราเข้าสู่ Resource นั้น ๆ นั่นเอง
Cloudflare Access เป็นเครื่องมือนึงที่ทำให้เราสามารถปกป้อง Infrastructure และ Application ของเราได้ด้วยการเพิ่มขั้นตอนการยืนยันตัวตนเพิ่มเติม รวมไปถึงการใช้งาน Reverse Proxy ทำให้เราอยู่หลังระบบของ Cloudflare ได้อีก ที่สำคัญคือ ถ้าเราใช้งานไม่ถึง 50 User ก็คือฟรีไปอีก แล้วใครจะไม่รักอะพูดเรอะ
แล้วที่เขียนนี่คือ Cloudflare ไม่ได้จ่ายนะ แต่อานนท์รัก Cloudflare ดั่งที่ ___ง รัก Sinovac เลยแหละ
หลังจากเมื่อหลายอาทิตย์ก่อน Apple ออก Mac รัว ๆ ตั้งแต่ Mac Mini, iMac และ Macbook Pro ที่ใช้ M4 กันไปแล้ว มีหลายคนถามเราเข้ามาว่า เราควรจะเลือก M4 ตัวไหนดีถึงจะเหมาะกับเรา...
จากตอนก่อน เราเล่าเรื่องการ Host Website จากบ้านของเราอย่างปลอดภัยด้วย Cloudflare Tunnel ไปแล้ว แต่ Product ด้าน Zero-Trust ของนางยังไม่หมด วันนี้เราจะมาเล่าอีกหนึ่งขาที่จะช่วยปกป้อง Infrastructure และ Application ต่าง ๆ ของเราด้วย Cloudflare Access กัน...
ทุกคนเคยได้ยินคำว่า Mainframe Computer กันมั้ย เคยสงสัยกันมั้ยว่า มันต่างจากเครื่องคอมพิวเตอร์ที่เราใช้งานกันทั่ว ๆ ไปอย่างไรละ และ Mainframe ยังจำเป็นอยู่มั้ย มันได้ตายจากโลกนี้ไปหรือยัง วันนี้เรามาหาคำตอบไปด้วยกันเลย...
เคยมั้ยเวลา Deploy โปรแกรมสักตัว เราจะต้องมานั่ง Provision Infrastructure ไหนจะ VM และ Settings อื่น ๆ อีกมากมาย มันจะดีกว่ามั้ยถ้าเรามีเครื่องมือบางอย่างที่จะ Automate งานที่น่าเบื่อเหล่านี้ออกไป และลดความผิดพลาดที่อาจจะเกิดขึ้น วันนี้เราจะพาทุกคนมาทำความรู้จักกับ Infrastructure as Code กัน...