Cognito- CUP과 같은 IdP에서 유저 인증 후 FIP를 통해 STS 자격 증명 할당
Directory Service - On-Premise Active Directory와 연동하는 3가지 서비스
Organizations- 계정을 묶에 SCP로 관리하는 방식
RAM- 다른 계정에 리소스를 공유(VPC Subnet 등)
SSO- 한 번의 인증(AD or SAML)으로 여러 서비스에 접근 가능
Policy Evaluation Logic - 위 그림
1. STS
AWS 리소스에 접근 가능한 권한을 임시로 제공하는 서비스이다. 최대 1시간까지 유효하며 갱신해서 사용한다. 해당하는 역할을 미리 만들어 놓고 그 역할을 할당한다.
AssumeRole - IAM 유저에게 자격 증명. 다른 계정끼리도 가능하다.
AssumeRoleWithSAML - SAML 2.0 인증을 거쳐서 자격 증명
AssumeRoleWithWebIdentity - IdP(구글, 네이버 로그인)을 통해 자격 증명
GetSessionToken - MFA 인증을 통해 자격 증명
2. Cognito
Identity Federation
서드 파티 서버에서 인증을 하고 credential을 받는다. 해당 credential로 AWS 서비스에 접근할 수 있다. 이렇게 하면 AWS에 따로 유저를 생성할 필요가 없다.
SAML 2.0
Custom Identity Broker
Microsoft AD
SSO 등등
만약 인증이 호환되지 않으면 Identity Broker를 OnPremise에 설치해 STS와 소통하게 한다.
Cognito
CUP은 Cognito의 자격 증명 공급자(IdP)이다.
1.
IdP에 로그인을 하고 토큰을 받는다
2.
FIP는 IdP에 토큰이 타당한지 확인한다.
3.
Federated Identity(FIP)에 토큰을 넘긴다.
4.
타당하면 STS에서 자격 증명을 뽑아서 App한테 준다.
5.
App은 해당 자격 증명으로 S3에 접근할 수 있다.
3. Directory Services
AWS에서 Microsoft Active Directory를 호환시키는 서비스이다.
AWS Managed Microsoft AD - AWS AD와 On-Premise AD를 호환되게 만들어서 어느 쪽으로 인증이 들어와도 인증 가능하게 한다.
AD Connector - AD Connector로 들어오는 모든 인증은 On-Premise AD에서 처리한다.
Simple AD - AWS 위에 AD를 만들어서 인증한다.
4. Organizations
여러 AWS 계정을 묶어서 권한 제어, 비용 관리를 용이하게 하는 서비스. 하나의 마스터 계정이 나머지 계정을 관리한다.
사용자에 따라 VPC를 여러 개 만들어 필요한 만큼 할당할 수도 있고, 여러 계정에서 각각 서비스를 실행하게 할 수도 있다. 뭘 선택해도 상관 없지만 Organizations는 통합하고 싶은 건(비용) 통합하고 분리하고 싶은 건(로그) 분리할 수 있는 장점이 있다. 또한 Organization SCP를 통해 권한을 제한할 수도 있다.
Service Control Policies
할당할 수 있는 최대 권한 범위를 작성하여 계정이나 OU에 할당한다. SCP는 루트 계정을 포함한 모든 유저와 역할에 적용된다. 단, 서비스 연결 역할은 영향을 받지 않는다.
계정 옮기기
일반 계정 - 기존 organization에서 삭제하고 새로 초대한다.
마스터 계정 - organization을 지우고 새로 초대한다.
5. Resource Access Manager (RAM)
다른 계정이나 Organization에 리소스를 공유할 수 있는 서비스이다.
VPC Subnet
AWS Transit Gateway
Route53 Resolver Rules
License Manager Configurations
6. Single Sign-On (SSO)
SAML이나 Active Directory 인증 한 번으로 여러 계정(AWS + 외부 어플리케이션)에 접근할 수 있게 하는 서비스이다.
7. 정책 평가 논리 로직
IAM의 허용/거부 여부를 결정하는 로직이다.
권한 경계 -유저와 역할에 최대 권한 범위를 설정하여 나중에 다른 권한이 부여될 때 최대 권한 범위를 넘지 않도록 강제한다.