Security & IdentitySection 175 min read5 questions

Advanced Identity

STS, Cognito, Directory Services & SSO

บริการด้าน identity ระดับสูงของ AWS ที่ไปไกลกว่า IAM พื้นฐาน — ครอบคลุม STS (temporary credentials), Cognito (app users), Directory Services (Active Directory) และ IAM Identity Center (SSO หลาย account) เพื่อรองรับ external users, mobile/web apps, on-prem AD และ multi-account environment

ในหน้านี้8 sections
  1. 01Beyond Basic IAM
  2. 02AWS STS (Security Token Service)
  3. 03Amazon Cognito
  4. 04Microsoft Active Directory (AD) Background
  5. 05AWS Directory Services
  6. 06AWS IAM Identity Center (formerly AWS SSO)
  7. 07Comparison: When to Use Each
  8. 08Summary
01

Beyond Basic IAM

ทบทวนเร็วๆ: IAM = Users + Groups + Roles + Policies ภายใน AWS account ของคุณเอง เหมาะกับการจัดการพนักงาน/ระบบในองค์กรของคุณที่เข้าถึง AWS

แต่ในโลกจริงเรามักเจอ use case ที่ IAM พื้นฐานทำไม่ได้ดี เช่น external users, ผู้ใช้ mobile/web app เป็นล้านคน, ผู้ใช้ที่อยู่ใน on-prem Active Directory, หรือการบริหาร multi-account — ตรงนี้คือที่มาของ Advanced Identity services

External / federated users

ผู้ใช้ที่ login ด้วย Google, Facebook, Apple, หรือ on-prem AD แล้วต้องการเข้าถึง AWS — ไม่ควรสร้าง IAM user ให้แต่ละคน

Web / Mobile app users

แอปพลิเคชันที่มีผู้ใช้หลักล้าน — ใช้ Cognito จัดการ sign-up / sign-in / MFA แทนการสร้าง IAM users

On-prem Active Directory

องค์กรที่มี Windows AD อยู่แล้ว ต้องการให้ user ใน AD เข้า AWS ได้ — ใช้ Directory Services

Multi-account SSO

บริษัทที่มี AWS account หลายตัว (dev, staging, prod) — ใช้ IAM Identity Center login ครั้งเดียวเข้าได้ทุก account

02

AWS STS (Security Token Service)

AWS STS คือบริการที่ออก temporary, limited-privilege credentials ให้กับ users หรือ services ที่ต้องการเข้าถึง AWS resources โดยที่ไม่ต้องใช้ long-term access keys

  • Temporary credentials — มีอายุจำกัด (configurable expiration ตั้งแต่ 15 นาที ไปจนถึงหลายชั่วโมง)
  • Limited privilege — ได้สิทธิ์เฉพาะที่ Role หรือ federation policy กำหนดไว้
  • หมดอายุอัตโนมัติ — ลด risk ของ credentials รั่วไหล (ไม่ต้อง rotate เอง)
  • ทำงานเบื้องหลังของ IAM Roles — ทุกครั้งที่ assume role จริงๆ STS เป็นคนออก token ให้

Use Case 1: Identity Federation

ผู้ใช้ภายนอก (on-prem AD, social login, SAML) ได้รับ STS token สำหรับเข้า AWS โดยไม่ต้องสร้าง IAM user

Use Case 2: Cross-Account Access

User ใน account A assume role ใน account B — STS ออก temp credentials ให้ใช้กับ account B

Use Case 3: IAM Roles for EC2

EC2 instance มี role attached — STS ออก temp credentials ให้ instance ใช้เรียก AWS services (วิธีที่ AWS แนะนำ)

03

Amazon Cognito

Amazon Cognito คือบริการ identity สำหรับ web และ mobile app users (อาจมีถึงหลักล้านคน) — แทนที่จะสร้าง IAM user ให้แต่ละคน เราสร้าง user ใน Cognito

Cognito User Pools (CUP)

Sign-in สำหรับ app users — รองรับ sign up, sign in, MFA, password reset, email/phone verification หลังจาก login สำเร็จจะคืน JSON Web Token (JWT) ให้แอป

Cognito Identity Pools (Federated Identities)

ออก AWS credentials ให้ user เข้าถึง AWS resources ตรงๆ (เช่น S3, DynamoDB) — ใช้ต่อจาก User Pool หรือ social login ก็ได้

  • Integrate กับ social identity providers: Facebook, Google, Amazon, Apple
  • รองรับ OIDC และ SAML 2.0 สำหรับ enterprise federation
  • รองรับผู้ใช้จำนวนมหาศาล (สเกลได้ถึงหลักล้าน)
  • เหมาะกับ mobile app, web app, IoT devices ที่มีผู้ใช้ภายนอกองค์กร
04

Microsoft Active Directory (AD) Background

Active Directory (AD) คือบริการที่อยู่บน Windows Server พร้อม AD Domain Services ใช้กันอย่างแพร่หลายในองค์กร — เป็น database ของ objects ทุกอย่างในองค์กร

  • User Accounts — บัญชีพนักงานทุกคน
  • Computers — เครื่องคอมในองค์กร
  • Printers — เครื่องพิมพ์
  • File Shares — โฟลเดอร์ที่แชร์ในเครือข่าย
  • Security Groups — กลุ่มสิทธิ์
05

AWS Directory Services

AWS Directory Services คือกลุ่มบริการที่ช่วยใช้/integrate Active Directory บน AWS — มี 3 ตัวเลือกหลัก

AWS Managed Microsoft AD

สร้าง AD ของจริง ใน AWS — จัดการ users ใน cloud ได้, รองรับ MFA, สามารถสร้าง trust relationship เชื่อมกับ on-prem AD ได้ (เหมาะกับ hybrid)

AD Connector

เป็น directory gateway (proxy) ที่ redirect คำขอกลับไปยัง on-prem AD — users และ data ยังอยู่ on-prem ทั้งหมด AWS เป็นเพียงทางผ่าน

Simple AD

AD-compatible managed directory บน AWS — ราคาประหยัด แต่ เชื่อมกับ on-prem AD ไม่ได้ เหมาะกับ workload เล็กๆ ที่ไม่ต้องการ feature เต็มของ Microsoft AD

06

AWS IAM Identity Center (formerly AWS SSO)

AWS IAM Identity Center (เดิมชื่อ AWS Single Sign-On / AWS SSO) คือบริการ One login ที่เข้าถึงได้หลาย AWS account และ business application พร้อมกัน

  • Login portal เดียว — user เข้าได้ทุก AWS account ที่ได้รับสิทธิ์
  • Integrate กับ AWS Organizations — จัดการสิทธิ์ข้าม account ได้สะดวก
  • Integrate กับ business apps: Salesforce, Box, Microsoft 365, ฯลฯ
  • รองรับ identity sources หลายแบบ: built-in IAM Identity Center, AD Connector (เชื่อม on-prem AD), หรือ external SAML 2.0 IdP
  • ช่วยลดภาระการสร้าง IAM user แยกในแต่ละ account
07

Comparison: When to Use Each

ตารางสรุปว่าเมื่อไรควรใช้บริการตัวไหน — ออกสอบบ่อยมาก!

IAM

Users ภายใน AWS account ของคุณเอง — พนักงาน, services, scripts ที่ต้องเข้าถึง AWS resource

AWS STS

Temporary credentials สำหรับ federation, cross-account access หรือ EC2/Lambda assume role

Amazon Cognito

App users (web/mobile) — ผู้ใช้แอปพลิเคชันภายนอก (ลูกค้า) ที่อาจมีหลักล้านคน

Directory Services

Integrate กับ Microsoft Active Directory — ทั้ง managed AD บน AWS และเชื่อมกับ on-prem AD

IAM Identity Center

SSO ข้ามหลาย AWS account + business apps — login เดียวเข้าได้ทุกที่

08

Summary

  • IAM = users / groups / roles ภายใน account — ของพื้นฐาน
  • STS ออก temporary credentials ให้ federation, cross-account, EC2 roles (15 นาที ถึงหลายชั่วโมง)
  • Cognito = identity สำหรับ web/mobile app users — User Pools (sign-in, JWT) + Identity Pools (AWS credentials)
  • Directory Services 3 แบบ: Managed Microsoft AD (full AD ใน AWS, trust ได้), AD Connector (proxy ไป on-prem), Simple AD (AD-compatible เล็กๆ)
  • IAM Identity Center (AWS SSO) = one login เข้าได้หลาย AWS account + business apps
  • หลักการสำคัญ: ห้าม embed access keys ใน code — ใช้ Role + STS แทนเสมอ
ทดสอบ

คำถามทบทวน

5 ข้อ — เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย

ข้อ 1 / 5คะแนน 0

AWS STS (Security Token Service) ให้สิ่งใดเป็นหลักกับผู้ใช้หรือ service ที่ต้องการเข้าถึง AWS?