[AWS 101] Root User vs IAM User คืออะไร? ต่างกันอย่างไร?

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ถ้าตอนนี้คุณกำลังสงสัยว่า
? ทำไมถึงไม่ควรใช้ Root Account ทั้งๆ ที่เป็นบัญชีที่สิทธิในการควบคุมได้ทุกอย่าง
? Root User และ IAM User ต่างกันอย่างไร?

สำหรับคนที่พึ่งจะสร้างบัญชี AWS คงเคยได้อ่านบทความจากหลายๆที่ หรือแม้กระทั่ง AWS ก็แนะนำว่า ควรจะสร้าง IAM Account ไม่ควรใช้งาน Root Account แล้วทำไมหลาย ๆ ที่ถึงแนะนำเช่นนี้ บทความนี้มีคำตอบ

Root Account คืออะไร

อธิบายแบบเข้าใจง่าย Root account ก็คือ account หรือบัญชีเพื่อเข้าสู่คอนโซลการใช้งานแรกที่เกิดขึ้นมาพร้อมกับตอนเราสร้างบัญชี AWS ซึ่งเราสามารถ Log in เข้าสู่บัญชี Root ได้ด้วย อีเมลและรหัสผ่านที่ใช้ในการสร้างบัญชี AWS นั่นเอง ในหลายๆครั้ง คนจึงเรียก Root Account ว่า AWS account แต่หากจะระบุให้ชัดเจน Root account จัดเป็นหนึ่งในบัญชีเข้าใช้งานคอนโซล เพื่อบริหารจัดการ AWS account โดยเป็นบัญชีผู้ใช้งานที่มีสิทธิสูงสุด

จุดสำคัญเลยคือ Root Account นี้เป็นบัญชีที่มีสิทธิสูงสุดในการบริหารจัดการ และสิทธิในการเปลี่ยนแปลงข้อมูลการชำระเงิน สามารถมอบสิทธิหรือเพิ่มสิทธิให้กับ Account อื่นๆ, สร้างหรือลบทรัพยากรต่าง ๆ ในบัญชี หรือกระทั่งเปลี่ยนแปลงวิธีการชำระเงินกับ AWS

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

หรือร้ายแรงที่สุดคือเปลี่ยนอีเมลและรหัสผ่านที่จะใช้เข้าสู่ บัญชี Root จนคุณไม่สามารถเข้าถึงได้อีกต่อไป

ด้วยเหตุนี้ Root Account จึงควรจะเป็นบัญชีลับท่าไม้ตายที่คุณใช้แค่เท่าที่จำเป็น และไม่บอกให้ใครรู้โดดเด็ดขาด

และควรตั้งค่าการยืนยัน 2 ขั้นตอนเพื่อเพิ่มความปลอดภัยให้กับการเข้าใช้งาน Root account สามารถอ่านวิธีการตั้งค่าได้ที่บล็อกด้านล่างนี้ค่ะ

บัญชีที่คุณสามารถเข้าใช้งานได้ประหนึ่งเป็น Root Account ก็คือ IAM account ที่สิทธิ AdministratorAccess ทำให้คุณจัดการทรัพยากรต่าง ๆ ในบัญชีได้หมดเหมือนกับ Root account แต่ไม่สามารถเปลี่ยนแปลงข้อมูลการชำระเงินได้

IAM Account

IAM Account คือบัญชีที่สร้างขึ้นเพื่อเข้าใช้งานคอนโซล ซึ่งแนะนำให้ผู้ที่มีส่วนเกี่ยวข้องต้องเข้าใช้งานคอนโซลเพื่อตั้งค่าทรัพยากรต่างๆในบัญชี AWS มีบัญชี IAM เป็นของตัวเอง และมอบสิทธิการใช้งาน (permission) เท่าที่จำเป็น

บัญชี IAM สามารถสร้างได้ฟรี ด้วยบริการ AWS IAM ที่เป็นบริการควบคุมสิทธิในการ Access และใช้งาน AWS Resource พูดให้เห็นภาพมากขึ้นก็ขึ้นเป็นบริการที่ช่วยให้เราจัดการ Authentication และ Authorization ให้กับผู้ใช้งาน หรือกระทั่ง AWS Instance ด้วยกันเอง

วิธีการสร้างบัญชี AWS สามารอ่านได้ที่บล็อกนี้เลยค่ะ

ถึงแม้ว่า IAM Account จะมีการให้สิทธิในการใช้งานและเข้าถึงบริการต่างๆอย่างจำกัดตามความจำเป็นแล้ว ก็ยังคงแนะนำให้มีการเปิดการยืนยัน 2 ขั้นตอนเช่นเดียวกัน

สรุป

1- Root account บัญชีเข้าใช้งานคอนโซล ที่มีสิทธิการบริหารสูงสุด + สิทธิในการเปลี่ยนแปลงวิธีการชำระเงิน

2- IAM Account บัญชีเข้าใช้งานคอนโซล ที่ได้รับอนุญาตให้เข้าใช้งานตามที่ได้รับ permission แบบต่างๆ ซึ่งสิทธิ AdministratorAccess มีสิทธิการบริหารสูงสุด แต่ไม่มีสิทธิในการเปลี่ยนแปลงวิธีการชำระเงิน
IAM Account สามารถสร้างและใช้งานได้ฟรี แนะนำให้ทุกคนที่เข้าใช้งานมีบัญชี IAM เป็นของตัวเอง

3- แนะนำให้ตั้งค่ายืนยัน 2 ขั้นตอนกับทุกบัญชีที่เข้าใช้งาน AWS Management Console

อ่านบทความเพิ่มเติมเรื่อง AWS IAM ได้ที่บล็อกต่าง ๆ เหล่านี้

วิธีการเปิดใช้งาน AWS IAM MFA บนมือถือ | DevelopersIO

AWS IAM คืออะไร การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022 | DevelopersIO

【Update】วิธีสร้าง User เพื่อใช้ Login AWS Management Console | DevelopersIO