
왼쪽 → 오른쪽 순서대로 보면:
Users (사람들)
Identity provider (IdP)
SAML federation
Account 1, 2, … N
즉,
사람 → 회사 IdP → SAML로 AWS 각 계정에 접속
“누가 누구인지”를 관리하는 주체
회사 입장에선:
예시:
123456789@company.com 계정을 관리여기서 인증(로그인)까지 끝낸 후,
다른 서비스(AWS, Slack, GitHub 등)로 “이 사람 인증 끝났어”라고 알려주는 역할을 함.
Security Assertion Markup Language
XML 기반의 SSO 표준 프로토콜
SAML 메시지 안에는:
AWS는 이 SAML Assertion을 받아서
STS(보안 토큰 서비스) 로 짧은 기간짜리 임시 자격증명(AccessKeyId, SecretAccessKey, SessionToken)을 발급해 줘.
상황 가정:
회사에는 AWS 계정이 3개 있다:
Account 1: 개발계 (Dev)Account 2: 운영계 (Prod)Account 3: 로그/보안 계정 (Logging/Security)회사 IdP는 Azure AD
관리자가 해놓는 작업:
Azure AD ↔ AWS SAML 연동 설정
각 계정에 IAM Role 정의
Account 1 에서:
Dev-Admin RoleDev-ReadOnly Role 등Account 2 에서:
Prod-ReadOnly RoleAccount 3 에서:
Security-Analyst Role각 Role의 Trust Policy 에
“SAML Provider(Azure AD)에서 오는 SAML 인증서만 이 Role을 Assume 가능”
이라고 적어둠.
IdP에서 그룹 ↔ Role 매핑
Azure AD 그룹:
AWS-Dev-Admins → Account1:Dev-Admin RoleAWS-Prod-Viewers → Account2:Prod-ReadOnly Role이런 식으로 그룹에 따라 어느 계정의 어느 Role을 쓸 수 있는지 정의
여기까지가 그림에서
IdP ↔ 각 Account로 이어진 SAML federation 화살표에 해당.
옛날 방식:
kimdoyeon 이라는 IAM User를 만들고SAML Federation 방식:
계정에 User 없음
오직 Role만 있고, 로그인은 전부 IdP 통해서 들어옴
계정 삭제(퇴사)도 IdP에서만 하면 끝:
AssumeRoleWithSAML 세션 기본 TTL(예: 1시간, 4시간 등)을 짧게 설정 가능