AWS Landing Zone Best Practice

05 ส.ค. 2565

จุดเด่นของการใช้งานบริการคลาว์ดที่ทำให้หลายๆองค์กรเลือกใช้งานคือ ความหลากหลายของบริการและความคล่องตัวในการใช้งาน ทำให้องค์กรสามารถพัฒนา ต่อยอดและสร้างสรรค์เทคโนโลยีใหม่ๆเพื่อนำออกสู่ตลาดได้อย่างรวดเร็ว ถึงแม้ว่าองค์กรจะต้องการความรวดเร็วในการพัฒนา แต่ก็ยังต้องการคงความปลอดภัยในอยู่ในระดับที่องค์กรกำหนดไว้ เมื่อระบบเพิ่มมากขึ้นย่อมส่งผลให้การดูแลและบริหารจัดการมีความซับซ้อนมากยิ่งขึ้น หรือแม้กระทั่งการควบคุมความปลอดภัยของระบบให้เป็นไปตามนโยบายด้านความปลอดภัยขององค์กร ก็อาจทำได้ยากมากยิ่งขึ้น บทความนี้จะมาทำความรู้จักกับ AWS Landing Zone ซึ่งเป็นคอนเซปต์หนึ่งที่จะช่วยให้องค์กรสามารถจัดการ resource บน AWS ได้ง่ายมากยิ่งขึ้น และยังคงความปลอดภัยให้กับองค์กร ซึ่งคอนเซปต์ดังกล่าวถือเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับองค์กรที่ใช้คลาวด์ในหลายลักษณะงาน และมีผู้ใช้งานคลาวด์มาจากหลายทีมภายในองค์กร

จากบัญชีเดี่ยวสู่ Multi-account 

หากในองค์กรมีผู้ใช้งานคลาวด์หลากหลายโครงการ จากหลายหน่วยงาน และมีการใช้บริการคลาวด์จำนวนมาก การรวมการใช้งานทั้งหมดไว้ในบัญชีเดียวจะก่อให้เกิดความซับซ้อนในการจัดการความด้านความปลอดภัยและการควบคุมการเข้าถึง resource ต่างๆ การจัดการค่าใช้จ่ายจะมีความยุ่งยาก อีกทั้งยังอาจจะติดขัดเรื่องข้อจำกัดของ AWS Account ที่จะส่งผลต่อการขยายตัวและความยืดหยุ่นของระบบอีกด้วย ในกรณีนี้ AWS จึงแนะนำให้องค์กรจัดตั้ง multi-account environment เพื่อแยกการใช้งานของแต่ละโครงการออกจากกัน ซึ่งมีข้อดีดังนี้

  • แต่ละโครงการมีบัญชีคลาวด์เป็นของตัวเอง สามารถตั้งค่า และกำหนดการรักษาความปลอดภัยให้สอดคล้องกับความต้องการของโครงการได้
  • การใช้งานคลาวด์ของแต่ละทีมไม่ปะปนกัน ลดความเสี่ยงของข้อผิดพลาดที่อาจเกิดขึ้น เช่น เผลอเปลี่ยนการตั้งค่า เผลอลบ หรือปิดการใช้งานบริการที่ทีมอื่นๆใช้อยู่
  • สามารถติดตามการใช้ทรัพยากร และค่าใช้จ่ายแยกรายบัญชีได้ บริหารการใช้งานโดยรวมได้อย่างมีประสิทธิภาพมากขึ้น 

แต่การใช้งานแบบ multi-account ก็ยังมีความท้าทายเพิ่มเข้ามาอีก เช่น การวางโครงสร้าง network ให้สามารถเชื่อมถึงกันได้ หรือเชื่อมกลับมายังองค์กรได้ หรือการตั้งค่าความปลอดภัยพื้นฐานของแต่ละ account ให้ตรงตามข้อกำหนดขององค์กร ดังนั้นการกำหนดโครงสร้าง account พื้นฐานขององค์กร และการจัดการแบบอัตโนมัติจึงเป็นเรื่องสำคัญที่จะมาช่วยลดความซับซ้อน และความผิดพลาดจากการตั้งค่าได้

แต่ละองค์กรควรมีกี่ Account และ Account อะไรบ้าง

การแบ่ง account ใน landing zone ไม่ได้มีรูปแบบที่ตายตัว ขึ้นอยู่กับโครงสร้างการทำงาน (organization structure) นโยบาย (Policy) และ วิธีการทำงาน (Procedure) ของแต่ละองค์กร แต่ทั้งนี้ AWS ก็มีข้อ 4 account พื้นฐานสำหรับแต่ละองค์กรดังนี้

  • AWS organization account เป็น account สำหรับการจัดการบัญชีอื่นๆที่องค์การจะใช้งาน ทั้งในแง่ของค่าใช้จ่าย เช่นการทำ Consolidate billing หรือในแง่ของความปลอดภัย เช่นการตั้งค่า Security Control Policy และการการเข้าถึง Account อื่นๆ ผ่านSingle Sing-On (SSO) เป็นต้น
  • Share services account เป็น account สำหรับสร้างและจัดการ infrastructure ที่ใช้ร่วมกันภายในองค์กร เช่น การจัดการ Network ที่เชื่อมต่อระหว่าง account หรือระหว่าง AWS กับ On-premise,  DNS  หรือระบบพื้นฐานอื่นๆที่จะต้องใช้งานร่วมกันภายในองค์กรเป็นต้น
  • Log archive account เป็น account ที่มีหน้าที่ในการเก็บ Log ของ AWS CloudTrail, AWS Config หรือ Log อื่นๆที่ถูกส่งมาจาก account ที่ใช้งานภายในองค์กร เพื่อให้สามารถจำกัดสิทธิในการเข้าถึง Log และลดความเสี่ยงในการที่ Log จะถูกทำลายหรือแก้ไขได้
  • Security account เป็น account ที่ใช้สำหรับการตรวจสอบความปลอดภัยโดยเฉพาะ โดยที่ผู้ที่มีหน้าที่จัดการกับ account นี้คือหน่วยงานที่มีความรับผิดชอบในการจัดการเรื่อง Security และ Compliance ขององค์กร โดย account นี้จะเป็นศูนย์กลางของ service ด้านความปลอดภัยต่างๆ เช่น เป็น master account ของ Amazon GuardDuty หรือ AWS Security Hub เป็นต้น

นอกเหนือจาก 4 account พื้นฐาน เรายังต้องคำนึงถึงวิธีการแบ่ง account สำหรับการวาง Workload หรือ Application ของเราอีกด้วย โดยเราสามารถแบ่งกลุ่มของการใช้งานออกเป็น 3 ประเภท ได้แก่ 

  • Production workload คือ workload ใน environment production และมีการใช้งานจริง
  • Non-production workload คือ workload ใน environment อื่นๆที่ไม่ใช่ production เช่น Development, UAT หรือ Staging เป็นต้น
  • Sandbox workload คือ ที่เกิดขึ้นเพื่อใช้ในการทดลองชั่วคราว สามารถสร้างขึ้นเพื่อทดสอบและลบออกได้โดยไม่มีผลกระทบ

Workload ทั้ง 3 ประเภทนี้ควรที่จะแยก account ออกจากกันเพื่อให้ง่ายต่อการบริหารจัดการ และการควบคุมการเข้าถึง เช่น developer ไม่สามารถเข้าถึง production account ได้ หรือ sandbox ใช้เพื่อการทดสอบในระบบปิด ไม่มี connection เชื่อมต่อไปที่ระบบอื่นๆ และเราสามารถปิด sandbox account ทันทีที่การทดสอบจบลงเพื่อหยุดค่าใช้จ่ายทั้งหมดที่เกิดขึ้นจากการทดสอบ เป็นต้น 

ทั้งนี้การจัดการหรือแบ่ง account นี้ก็ไม่มีได้มีกฎตายตัว ขึ้นอยู่กับวิธีการทำงานและการตัดสินใจของแต่ละองค์กร บางองค์กรอาจจะแยกส่วนของ Network service ออกจาก Share services account เนื่องจากทีมงานที่จัดการ network เป็นทีมงานคนละส่วนกัน ก็สามารถทำได้


การออกแบบ Network และ Security ใน Landing Zone

การออกแบบ AWS Landing Zone ก็เหมือนกับการออกแบบ data center การวางโครงสร้าง AWS Account ก็เปรียบเหมือนการจัดสรรพื้นที่ในการวางระบบ และสิ่งหนึ่งที่ขาดไม่ได้ของ data center นั่นก็คือการวางโครงสร้าง Security และ Network

องค์กรจะต้องคำนึงถึงเรื่องความปลอดภัยพื้นฐานของ Landing zone เช่น สิทธิการเข้าถึง AWS Resource ในแต่ละ Account, การเก็บ Log การใช้งานต่างๆ การตรวจสอบและ monitor configuration ต่างๆที่เกิดขึ้น รวมถึงการแจ้งเตือนให้กับผู้เกี่ยวข้องเป็นต้น AWS มี Service มากมายที่ช่วยในการจัดการความปลอดภัยของ Landing Zone เช่น Security Control Policy, AWS CloudTrail, AWS Config, Amazon GuardDuty, AWS Single Sign-On เป็นต้น

การออกแบบ Network ที่ดีจะช่วยลดความซับซ้อนในการบริหารจัดการ ทั้งการเชื่อมต่อระหว่าง VPC และ กันเชื่อมต่อกับ On-premise network โดยการออกแบบ Network ก็ขึ้นอยู่กับข้อกำหนด หรือเงื่อนไขของแต่ละองค์กร โดย AWS ก็มี Service มากมายที่ช่วยในการบริหารจัดการ Network เช่น AWS Transit Gateway, AWS PrivateLink, AWS Direct Connect, AWS VPN เป็นต้น

ตัวช่วยในการสร้าง Landing Zone

AWS มีทางเลือกและตัวช่วยมากมายในการบริหารจัดการ Landing zone ขององค์กร เช่นการใช้งาน AWS Organization และ Service Control Policy ในการจัดการ AWS Account และการควบคุมนโยบายความปลอดภัยของแต่ละ account. หรือ กลุ่มของ account การใช้งาน AWS Code Pipeline ร่วมกับ AWS Cloudformation StackSet และ AWS Service Catalog ในการสร้าง Service พื้นฐานในแต่ละ account เป็นต้น

AWS Control Tower ก็เป็นอีกเครื่องมือหนึ่งที่จะช่วยองค์กรในการสร้างและบริหารจัดการ Landing zone โดย Control tower จะทำหน้าที่เป็นตัวกลางในการบริหารจัดการและควบคุม AWS Account ที่ใช้งานภายในองค์กร 

AWS Control Tower ก็เป็นอีกหนึ่งเครื่องมือที่จะช่วยองค์กรในการสร้างและบริหารจัดการ AWS Landing Zone โดย Control Tower จะทำหน้าที่เป็นเหมือนตัวกลางในการจัดการงานต่างๆ เช่นไปสร้าง AWS Account ผ่าน AWS Organizations พร้อมทั้ง ตั้งค่า Organization Unit หรือ Security Control Policy หรือสร้าง Resource ผ่าน AWS Cloudformation Stackset ตาม Blueprint ที่องค์กรกำหนดเป็นต้น นอกเหนือจากนี้ยังมี Guardrail ซึ่งเป็นตัวช่วยในป้องกันและตรวจสอบว่า AWS Workload ยังคง Comply ตามข้อกำหนดของทางองค์กรหรือไม่อีกด้วย



บทความโดย: ปาริชาติ เจริญจงสุข 

ข้อมูลเพิ่มเติม: https://aws.amazon.com/solutions/implementations/aws-landing-zone/


ก่อนหน้า

ถัดไป