นอกจากข่าวแฉในบ้านเราแล้ว AWS Amazon S3 ยังตกเป็นข่าวฉาวเรื่องข้อมูลรั่วไหลอีกมากมายในช่วงเดียวกันนี้ ไม่ว่าจะเป็นกรณี Deep Root Analytic (โปรไฟล์ของคนสหรัฐฯ ที่ลงคะแนนเสียงกว่า 198 ล้านคน), Nice Systems (บันทึกลูกค้ากว่า 14 ล้านราย), หรือแม้แต่ตัวตลาดหุ้นดาวน์โจนเอง (ที่ทำข้อมูลลูกค้าหลายล้านรั่วออกมา) ทั้งหมดนี้เก็บข้อมูลไว้ในบั๊กเก็ต Amazon S3 และพูดให้ถูกก็คือ “จงใจเปิดแฉต่อสาธารณะ” โดยไม่ล็อกรหัสอะไรเลย
ท่ามกลางเสียงโจมตีส่วนหนึ่งไปยัง AWS ว่าไม่ปลอดภัย (เลิกใช้มัน งู้นงี้ ขอตีวัวกระทบคราดบ้างอะไรบ้าง) เหล่ากูรูจึงทนไม่ได้ต้องขอเคลียร์ ก่อนอื่นระลึกก่อนว่าคลาวด์อเมซอนนี่เป็นแบบ “Serverless” (ไม่มีอะไรให้เลย อยากใส่แอพอยากโปรแกรมอะไรก็ทำได้เต็มที่ พูดอีกอย่างคือจะดีจะเลวก็ขึ้นกับคนใช้ทั้งสิ้น)
อย่างไรก็ดี ผู้เชี่ยวชาญก็ได้โอกาสแนะนำวิธีใช้ S3 ไม่ให้รั่วไว้ดังต่อไปนี้
1. ไม่ต้องทำอะไร
ใช่ เพราะการตั้งค่าโดยดีฟอลต์ของ AWS นั้นมีระบบความปลอดภัย มีตั้งรหัสมากมายไว้ให้คุณตั้งแต่แรกอยู่แล้ว (ที่รั่วเพราะไปทะลึ่งปลดมันเพราะรำคาญหรือเปล่า) เรียกว่าบั๊กเก็ตที่ให้บริการนี้ถูกเซ็ตเป็นไพรเวทโดยดีฟอลต์ ซึ่งคุณต้องไปตั้งค่าให้สิทธิ์อนุญาตหลายขั้นตอนเพื่อเปิดให้คนอื่นนอกจากเจ้าของบัญชีหรือเจ้าของข้อมูลเข้าถึงได้
2. ศึกษาเรื่องการแบ่งกันรับผิดชอบของ AWS ให้ดี
สำหรับคนที่ยังมองว่าอเมซอนไม่ปลอดภัย ให้ลืมตามองความเป็นจริงว่า คลาวด์มีหลายประเภทตั้งแต่ IaaS, PaaS, และ SaaS ซึ่งจะเอาคลาวด์ที่เก็บข้อมูลเฉยๆ อย่าง Dropbox หรือ Google Drive ที่เป็นคลาวด์ที่จัดทุกอย่างแม้กระทั่งซอฟต์แวร์ให้คุณ (SaaS) มาเปรียบเทียบกับคลาวด์ที่ให้แค่โครงสร้างพื้นฐานขั้นต้น (IaaS) อย่าง AWS ไม่ได้ สรุปคือ เรื่องของความปลอดภัยของตัวข้อมูลที่ไล่ตั้งแต่สาเหตุหรือช่องโหว่จากระบบปฏิบัติการหรือการเข้ารหัสการสื่อสารขึ้นมายังแอพนั้นเป็นความรับผิดชอบของ “ตัวผู้ใช้” เอง ไม่เกี่ยวกับอเมซอน
3. เวลาจะเก็บข้อมูลขึ้นคลาวด์ S3 ต้องคิดถึงอะไรบ้าง?
สิ่งที่คุณต้องตัดสินใจมี 3 ประเด็นคือ 1) จะเก็บข้อมูลไหนบ้าง และเก็บอย่างไร(คือจะใช้กี่บั๊กเก็ต แล้วตั้งชื่อคีย์กำกับอย่างไรบ้าง) 2) จะเข้ารหัสข้อมูลไหม? 3) จะให้สิทธิ์ใครเข้าถึงบ้าง? ซึ่งทั้งหมดนี้อเมซอนมีฟีเจอร์มากมายช่วยอำนวยความสะดวกอยู่แล้ว ทีนี้เราจะมาศึกษาวิธีการให้สิทธิ์คนอื่นอย่างปลอดภัยในประเด็นที่ 3) กัน
4. วิธีการให้สิทธิ์คนอื่นเข้าถึง มี 4 วิธีด้วยกัน ได้แก่
• โพลิซี IAM ใช้ให้สิทธิ์เข้าถึงแก่ผู้ใช้, กลุ่มผู้ใช้, หรือบทบาทต่างๆ ที่ถูกมอบหมายแก่ทรัพยากรอื่นในคลาวด์อยู่แล้ว ซึ่งเป็นวิธีที่ง่ายและปลอดภัยเพราะทำตามหลักการให้สิทธิ์น้อยที่สุดเท่าที่จำเป็น ที่ว่าง่ายเพราะ IAM เป็นการกำหนดสิทธิ์จากศูนย์กลางของคลาวด์
• โพลิซีบนบั๊กเก็ตนั้นๆ ที่บังคับใช้กับบั๊กเก็ตและคีย์ข้อมูลที่อยู่ข้างใน สะดวกในการตั้งค่ากรณีที่อิงกับข้อมูลแต่ละบั๊กเก็ตหรือคีย์อย่างจำเพาะ ซึ่งคล้ายกับใช้คลาวด์เก็บข้อมูลแบบชาวบ้านเหมือนดร็อปบ็อกซ์หรือกูเกิ้ลไดรฟ์เลย (ขอเพียงช่วยเช็คการตั้งค่าให้รอบคอบ)
• Access Control List (ACL) เอาไว้กำหนดความปลอดภัยในการเข้าถึงแบบละเอียด เช่น การให้ข้อยกเว้นเพิ่มเติมจากโพลิซี IAM หรือบนบั๊กเก็ตที่ตั้งไว้ก่อนหน้า ซึ่งถ้าใช้งานกันแบบเบสิกแล้วแทบจะไม่ต้องแตะแอคเซสลิสต์พวกนี้เลย ยกเว้นที่ต้องตั้งค่าขั้นสูงเพื่อใช้แอพบางกรณีเท่านั้น
• การยืนยันตนผ่านสตริงที่ร้องขอ หรือการเข้าถึงผ่าน URL เหมือนการแชร์ข้อมูลผ่านลิงค์ ที่ใครมีลิงค์ก็เข้าถึงข้อมูลที่ตั้งค่าไว้ได้ โดยตั้งได้ทั้งสิทธิ์ที่แค่ดูหรือสามารถปู้ยี่ปู้ยำข้อมูลในบั๊กเก็ตได้ หรือแม้แต่กำหนดช่วงเวลาที่อนุญาตหรือให้สิทธิ์เข้าถึงแค่ครั้งเดียว (ที่มักเป็นช่องทางทำข้อมูลรั่วมากที่สุดแล้วถ้าตั้งค่าแชร์ลิงค์กันอย่างมักง่าย)
ประเด็นที่สำคัญที่สุดคือ คุณแทบไม่มีความจำเป็นต้องเซ็ตการเข้าถึงแบบ “พับลิก” บนบั๊กเก็ตใดๆ เลย ขอแค่ขยันใส่ใจตั้งค่าการเข้าถึงแบบละเอียดผ่านวิธีต่างๆ ข้างต้นอย่างรัดกุมเท่านั้น สรุปอีกครั้งคือ ถ้าไม่ได้ต้องการพับลิกข้อมูล เช่น ดึงข้อมูลจากบั๊กเก็ตมาแสดงบนเว็บสแตติกทั่วไปแล้ว อย่าเซ็ตเป็นพับลิกเด็ดขาด อย่าฆ่าตัวตายอย่า “มักง่าย”
5. ตรวจสอบสิทธิ์การเข้าถึงที่ตั้งไว้
Amazon S3 จัดหลายวิธีที่ให้คุณควบคุมการเข้าถึงข้อมูลตามความสะดวก ซึ่งคุณควรเข้ามาตรวจเช็คเป็นประจำ (เหมือนที่คุณเช็คหน้าโปรไฟล์เฟซบุ๊กแบบพับลิกว่าคนนอกเห็นอะไรที่ไม่ควรเห็นบ้างไหมนั่นล่ะ) และเมื่อเร็วๆ นี้ อเมซอนก็ไล่ตรวจเช็คบั๊กเก็ตที่เปิดพับลิกหราแบบไม่ล็อกอะไรแล้วส่งเมล์แจ้งเตือนให้เจ้าของรู้ตัวแบบรัวๆ ด้วย ถ้าเกิดคุณรู้ตัวหรือได้เมล์ดังกล่าว ก็ควรไล่เช็คตั้งแต่โพลิซีตามบั๊กเก็ต, ACL บนแต่ละคีย์, การเปิดยืนยันตนผ่านสตริงหรือลิงค์สำหรับแต่ละคีย์, รวมไปถึงผู้ใช้และโพลิซีของแต่ละ IAM ด้วย
สรุปอีกครั้ง อเมซอนไม่ผิด คุณจะหาคลาวด์ IaaS ดีๆ แบบนี้จากไหนอีกที่รับประกันความอายุมั่นขวัญยืนของข้อมูลได้ถึง 99.999999999% และอัพไทม์มากถึง 99.99%แถมคุ้มค่าใช้จ่ายเอามากๆ อีกทั้งมีฟีเจอร์และลูกเล่นมากมายอย่าง Amazon Athena (สำหรับ Query ข้อมูล), Amazon Quicksight (สำหรับทำเวอร์ช่วลข้อมูล), และ Amazon Glacier (สำหรับสำรองข้อมูลระยะยาว) ยังไม่นับรวมทูลตรวจเช็คการตั้งค่าอย่าง AWS Config, AWS CloudTrail, และ Amazon CloudWatch Events เอาว่ามันจะดีหรือจะรั่วก็อยู่ที่คุณจะรั่วเองหรือเปล่า (หมดสงกรานต์แล้วน่าหายเมาหายรั่ว หันมาเช็คการตั้งค่าตัวเองกันดีกว่า)
ที่มา : https://read.acloud.guru/how-to-secure-an-s3-bucket-7e2dbd34e81b