사이드 프로젝트 중에 IAM 을 통해 협업해야할 일이 생겼다.
AWS 에서 사용자의 접근권한을 관리하는 서비스
IAM을 통해서 사용자는 root 계정의 암호나 액세스 키를 공유하지 않고도 AWS root 계정 내 자원을 사용하는 모든 공유 사용자들에게 세분화된 권한을 부여할 수 있다.
기존 그룹이 너무 많아져 임시적인 해당 권한을 행사하는 역할이라는 새로운
- AWS 리소스에 부여하여 AWS 리소스가 무엇을 할 수 있는가를 정의
- 혹은 다른 사용자의 역할을 부여받아 사용가능
- 다른 자격에 대해 신뢰관계 구축 가능
- 역할을 바꾸어 가며 서비스를 사용 가능
IAM 을 구성하는 리소스는 다음과 같다. 해당 리소스들은 IAM 콘솔에서 추가, 편집, 제거할 수있다.
Principal (주체)
AWS 리소스를 요청할 수 있는 주체이다.
Root user
: AWS 계정 소유자의 계정으로 모든 권한을 가진다.MFA(일회용 패스워드) 사용하여 로그인
하는 것을 권장IAM user
: 리소스에 접근할 수 있는 사용자. 어플리케이션도 포함된다.Access Key
Secret Access Key
Admin Access
권한을 설정하더라도 별도의 설정을 하지 않으면 Billing 기능을 사용할 수 없IAM role
: 리소스에 접근할 수 있는 역할Entity (엔티티)
주체 중에서 실제 AWS에서 리소스에 액세스하는 역할을 하는 요소들이다.
IAM user
: AWS 계정 내에서 생성된 사용자로, 인증 후 리소스에 접근할 수 있다.IAM role
: 특정 역할을 수행하도록 부여된 권한이다. 다른 계정의 서비스나 애플리케이션이 이 역할을 통해 AWS 리소스에 접근할 수 있다.Identity (아이덴티티)
AWS 내에서 인증을 통해 리소스에 접근할 수 있는 모든 엔티티이다.
IAM group
: 여러 사용자를 묶어 동일한 정책을 부여할 수 있도록 만든 그룹이다.Resource (리소스)
AWS에서 관리되는 모든 리소스를 포함하는 큰 영역이다.
Policy
: IAM 엔티티나 리소스에 접근할 수 있는 권한을 정의한 문서이다.Instance profile
: EC2 인스턴스가 역할을 통해 리소스에 접근할 수 있게 하는 프로파일이다.OIDC provider
: OpenID Connect 프로토콜을 사용하여 IAM 역할과 외부 ID 제공자 간 신뢰 관계를 설정할 때 사용된다.기타 등등
실제로 사용자가 AWS 에 접근할 때 어떤 과정으로 권한 검증이 이뤄질까?
다음으로는 IAM 설정 과정에 대해 설명하겠다.