WHAT IS IAM?
a. 인증 : 클라이언트가 자신이 주장하는 사용자와 같은 사용자인지를 확인하는 과정
b. 인가 : 클라이언트가 하고자 하는 작업이 해당 클라이언트에게 허가된 작업인지를 확인하는 권한 부여와 관련있는 작업
a. I : Identity는 AWS로 요청할 수 있는 보안 주체를 AWS 계정 내에 만들어 줌.
b. AM : Access Management는 누가 어떤 리소스들에 대해 어떤 일을 할 수 있는 권한을 가지는지를 정의하는 도구로 동작
4 key concepts
Identity(인증)
1. AWS에서 만든 계정은 Root 계정으로 모든 권한을 가지고 있어서 이 계정으로 작업하면 보안에 취약하다.
2. IAM USER/ROLE을 활용한다.
3. IAM USER는 장기 credential을 이용하기 때문에 명시적인 로테이션을 통해 따로 관리가 필요하다.
4. IAM ROLE은 자동으로 로테이션 되는 임시 credential을 이용하기 때문에 가장 적합하다.
※ HMAC 서명값 + 일정시간 후 만료되는 session token)
Role을 사용한다. == Role을 assume한다.
※ AWS 외부의 보안주체에게 임시적으로 권한을 부여해 AWS 리소스에 접근하게 하는경우, SAML이나 OpenIDC와 같은 연계 프로토콜을 사용해 외부 사용자를 IAM Role과 매핑해 줄 수 있다.
Cross Account
Access Management(인가)
인증 & 인가
보안주체(요청자)는 AWS 리소스 접근 시 인증과 인가를 모두 통과해야한다.
1. IAM 보안주체의 적법한 서명 값이 포함되어있음(인증)
2. 정책에 의해 해당 요청이 정확하게 인가되어야 함.