Identity and Access Management(IAM) - 고급

AWS Organizations

그룹 유닛 예시

비즈니스, 환경, 프로젝트 모두 그룹 단위로 짤라서 분리가 가능하다

장점

Security: Service Control Policies(SCP)

Management Account

계정 A

계정 B

계정C

SCP Blocklist & Allowlist

계정이 사용하지 못할 서비스(Deny) → 모든 작업을 허용한 다음 특정 엑세스만 허용,

특정 작업만 허용하고 나머지는 사용 불가능

IAM Conditions

IAM 내부의 정책이 적용된다 → ex) s3 버킷에 대한 리소스 정책, 엔드포인트 관련 등

aws:SourceIp

aws:RequestedRegion

ec2:ResourceTag

aws:MultiFactorAuthPresent

IAM for S3

Resource Policies & aws:PrincipalOrgID

이 외에도 사용 사례를 잘 연구하면 보안성을 더 높힐 수 있다

IAM Roles vs Resource Based Policies

Amazon EventBridge - Security

공식 문서를 통한 구분

IAM Permission Boundaries

→ 관리자 엑세스를 부여하는 정책에 연결했음에도 권한 경계로 인해 s3 정책에만 연결된다

Permission Boundaries

사용사례

IAM Policy Evaluation Logic(IAM 정책 평가 로직)

IAM Policy 예시

AWS Cognito

Cognito User Pools(CUP)

User Features

Integrations

Cognito Identity Pools(Federated Identities)

웹 혹은 모바일 애플리케이션에서 사용자가 직접 s3 버킷, DynamoDB 테이블에 직접 엑세스를 원함

  1. 타사 로그인 혹은 Cognito User Pools에서 토큰을 받는다
  2. 이후 토큰을 Cognito Identity Pools에서 임시 AWS 자격 증명과 교환
  3. 전달받은 토큰이 유효한 토큰인지 검증
  4. 해당 사용자에게 적용되는 IAM 정책을 생성
  5. 관련 임시 자격 증명으로 직접 엑세스하는 방식이다

Identity Pools를 사용하면 사용자에게 Row Level 자격 증명을 생성할 수 있다.

정리

웹이나 모바일 애플리케이션의 사용자 기반으로 생성할 수 있고 세분화된 엑세스 제어를 위해 Identity Pools를 활용 가능, 마지막으로 Cognito 사용자 풀은 API gateway 또는 ALB와 통합 가능

AWS IAM Identity Center

AWS의 SSO(Single Sign-On) 후속 제품

Identity providers

Login Flow

한 번의 로그인으로 여러 AWS 계정 사용 가능

작동 방식

IAM Identity Center

세분화된 권한 및 할당

AWS Directory Service

로그인 정보가 있는지 Domain 컨트롤러를 확인한 다음 로그인을 허용

사용자는 어떤 단일 컴퓨터든지 로그인이 가능하다

AWS Directory Services

온프레미스 사용자를 프록시 → AD 커넥터

AWS 클라우드에서 사용자관리가 필요하고 MFA → AWS Managed AD

온프레미스가 없을 떄 → SImple AD

IAM Identity Center - Active Directory Setup


AWS Control Tower

Guardrails