ในบทความนี้จะพูดถึง AWS SSO นะครับ หลักๆจะเป็นการ Review ว่ามันทำอะไรยังไงได้บ้าง จะไม่พูดถึงหลักการ SSO นะ ถ้าอยากทราบ อันนี้หาอ่านได้ทั่วไปเลย ส่วน Config แบบ Step by Step เดี๋ยวถ้าผมมีเวลาจะเขียนเพิ่มให้เเล้วกัน
เราคงรู้จัก SSO กันเเล้วใช่มั๊ยครับ ถ้ายังไปศึกษามาก่อนนะ ผมจะอธิบายง่ายๆตามชื่อของมันว่า Log in ครั้งเดียว ใช้ได้หลายบริการ ไปได้หลายๆที่ประมาณนี้
ส่วนในเคสของ AWS ถ้าเกิดว่าเรามี AWS Account หลายๆ Account ล้ะ อย่างของผมเองมีอยู่ 4 Account ไม่รวม Account ของลูกค้าที่ผมดูแลอยู่อีก 555
ถ้าเราจะ Log in เข้า Account A เราก็ต้องใช้ Email ของ Account A เพื่อ Log in เข้าไป (Root Account) หรือจะใช้ IAM Account ก็ได้ เพียงเเค่ป้อน Account ID หรือชื่อเเทนเพิ่มเข้าไป
เเล้วถ้าเกิดเราอยากเข้า Account B , C , D อีกล้ะ เริ่มยุ่งยากเเล้วใช่มั๊ยครับ และเราเองก็อาจจำ Account ID หรือชื่อเเทนของมันไม่ได้
จะดีกว่ามั๊ย ถ้าเรา Log in ครั้งเดียว เเล้วไปได้ทุกๆ Account ที่เรามีสิทธ์ ????
AWS SSO จะช่วยจัดการปัญหานี้ได้ครับ
สำหรับ AWS SSO โดยตัวของมันเองสามารถทำตัวเป็น IdP ได้เลย (Auth ได้ที่ AWS) หรือถ้าเราสร้าง Active Directory บน AWS ก็เลือกใช้เป็น IdP ได้ และถ้าเราอยาก Auth กับผู้ให้บริการภายนอกล้ะ ?? ก็ทำได้ครับ จะเป็น GSuit , Microsoft365 หรือผู้ให้บริการอื่นๆที่รองรับ SAML ก็ทำได้ครับ

อย่างของผมเองจะใช้ GSuite เป็น IdP หรือ มา Log in ที่ GSuit ถ้าผ่านก็เด้งไปยังขั้นตอนต่อไป
และถ้าใครมี Account เยอะๆ ก็จับมันมา Join เข้า AWS Organization ได้เลยครับ แล้วกด Enable เพื่อเปิดใช้ AWS SSO ตั้งค่า IdP , เพิ่ม User ให้เรียบร้อย , จัดการตั้งค่า Policy ก็ใช้ได้เเล้วครับ


อย่างภาพด้านบน Account ที่เป็นชื่อผม มีรูปดาวด้านหน้า คือ Account หลักที่เป็นตัวสร้าง Organization ครับ Account ที่เหลือเป็น Account ลูกๆมันที่ Join เข้ามา ส่วนภาพด้านล่างก็จะเป็น User ที่ผมอนุญาตให้ Log in เข้ามาได้ ตรง Username จะเป็น Email ของ Account GSuite ของผมที่ใช้เป็น IdP นะครับ ถ้าผมอยากให้คนอื่นเข้ามาได้ ผมก็ Add Account ตรงนี้เพิ่มเอา
นอกจากนี้ ก็จัดการ Add Group ได้ เพื่อกำหนด Policy ที่แตกต่างกันในเเต่ละ Group
เอ้ะ !!! แล้วถ้าเราสามารถ Log in เข้า Account อื่นได้ล้ะ เเต่อันนั้น มันเป็น Account ที่เราดูแลอยู่ก็จริง เเต่จะเอามาจับ Join เข้า AWS Organization ไม่ได้ จะใช้ได้มั๊ย ???
คำตอบคือทำได้ครับ โดยให้เราเพิ่ม App เอา ซึ่ง AWS จะใช้ชื่อเรียกว่า External AWS Account ครับ
หลักการ Set up ก็ไม่มีไรมากครับ จำไว้สั้นๆว่า “อยากเข้า Account ใคร เอาไข่ไปวาง” (ในความจริงคือเอา SAML Template ไปยัดใส่ไว้ + Role นิดๆหน่อยๆ)
นอกจาก External AWS Account แล้ว ยังมี App อื่นอีกเพียบเลยครับ สนใจ App ไหน ลองกดเข้ามาดูได้ มีเยอะจริงๆครับ 555+

หากเราตั้งค่าต่างๆเรียบร้อย ต่อไปก็คือ เราจะ Login ผ่าน SSO ยังไงล้ะ เพราะหน้า AWS Management Console มันมีให้เฉพาะ Root Account กับ IAM เท่านั้น
คำตอบคือ AWS จะมีลิ๊งมาให้เราครับ และเราก็สามารถตั้งค่าเป็นชื่อที่เราต้องการได้ เเต่ต้องไม่ซ้ำกับชาวบ้านเค้านะ

อันนี้ตัวอย่างของผมจะเป็น https://paocloudacademy.awsapps.com/start
ซึ่งถ้าเราเข้าไป ก็จะโดน Redirect ไปยังหน้า Log in ของผมใช้ GSuite เป็น IdP ก็จะเจอหน้าแบบนี้

ถ้า Log in ค้างไว้เเล้ว มันจะมี List User ให้เรากดได้เลย ไม่ต้องพิมพ์ เเต่อันนี้ผมเปิดจากโหมดไม่ระบุตัวตน มันเลยเป็นแบบนี้
ซึ่งถ้าเรา Log in ผ่าน ก็จะเจอหน้าเเบบนี้ครับ

ตรง AWS Account จะเป็น Account ที่เรา Join เข้า Organization ครับ ถ้ากดเข้าไป มันจะเเสดงรายการ Account ทั้งหมดให้เราเลือก ซึ่งเราก็สามารถเข้าหน้า AWS Management Console ได้เลย
ส่วน Account อื่นๆ จะเป็น App ที่เราได้เพิ่มไว้ครับ ในที่นี้ก็จะเป็น AWS Account อื่นๆที่ไม่ได้ Join เข้า Organization ของเรา
เป็นยังไงกันบ้างครับ หวังว่าทุกๆท่านคงได้ความรู้อะไรเพิ่มเติม ใครยังไม่เคยลองใช้ ก็ลอง Set up ดูได้นะครับ ไม่ต้องกลัวจะพังเเล้วเข้าไม่ได้ เพราะยังไงก็ตาม เรายังมี Root Account และ IAM Account ให้ Log in เข้าไปได้
หรือถ้าไม่อยากทำเอง จะให้เราทำให้ก็ได้ครับ ยินดี ติดต่อเข้ามาได้เลย