IAM 개요
- Identity and Access Management의 약자
- 누가, 무엇을, 어떻게 접근하나 를 관리
- AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스
- 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 관리할 수 있다
- 처음엔 AWS 계정 Root 사용자라는 단일 로그인 자격 증명으로 시작하여 IAM을 사용해 다른 ID 를 설정하고 액세스 권한을 부여
- IAM 사용 시의 장점
- AWS 계정에 대한 공유 엑세스 생성이 가능
- 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 있는 권한을 다른 이에게 부여 가능(계정이 가진 권한을 계정 주인이 다른 사람에게 부여가 가능하다는 의미)
- 세분화된 권한
- 예를 들어서 한 AWS 서비스에 대해 어떤 이에게는 읽기 권한을, 또 다른 이에겐 액세스 권한을 주는 것처럼 세부적으로 권한을 부여할 수 있다.
- EC2 인스턴스에서 실행되는 애플리케이션을 위한 AWS 리소스 액세스
- EC2 인스턴스에게 IAM 기능을 사용하여 자격 증명을 제공할 수 있다. 이로 인해 애플리케이션은 다른 AWS 리소스에 액세스할 수 있는 권한을 받게 됨
- 멀티 팩터 인증(MFA) 을 사용해 보안 강화
- 아이덴티티 페더레이션(Identity Federation)
- 다른 곳에 이미 암호가 있는 사용자에게 AWS 계정에 대한 액세스를 허용을 해주나, 임시 자격 증명으로 부여
- 예시로 들만한 것은 인스타그램 로그인을 위해 구글 계정으로 로그인 하는 것(같은 인물의 다른 계정)
- AWS 계정에 대한 공유 엑세스 생성이 가능
IAM의 매커니즘
- AWS에서 요청이 발생하는 경우
- 사용자가 직접 행동하는 경우
- 외부 프로그램이 API로 호출하는 경우
- AWS 서비스가 다른 서비스를 호출하는 경우
- 자동화 및 스케줄 설정에 의해 발생하는 경우
- 단계 및 작업 내용
- Principal(주체)
- 요청을 하는 주체, 요청을 보내기전 Authentication을 먼저 거치고 성공해야 함
- 종류
- IAM User
- IAM Role
- Federated User
- Application
- Request(요청)
- 구성요소
- Principal
- 요청을 하는 보안 주체의 정보
- Actions/Operations(콘솔/API 및 CLI)
- 보안 주체가 하려는 작업에 대한 정보
- Environment data
- 보안 주체에 대한 컨텍스트에 대한 정보
- Resource
- 보안 주체가 요청하려는 자원에 대한 정보
- Resource data
- 요청하려는 자원에 대한 메타데이터에 대한 정보
- Principal
- 예시 : '아무개'가 '이런일'을 하려하는데 '어느시점에 어떤 방법'으로 '어떤 자원중'에 '특별히 이렇게 생긴 것'을 요청
- 구성요소
- Authorization(권한 평가)
- 들어온 요청에 대해 이 요청을 보낸 사람이 권한을 만족하는지 검사
- IAM은 모든 적용 가능한 정책을 한꺼번에 평가해 허용여부를 결정
- 종류
- Identity-based policies
- 사용자/역할에 붙는 정책
- JSON이나 Visual Editor 형태
- Resource-based policies
- 리소스 자체에 붙는 정책
- JSON 형태
- other policies
- 기타 검사 정책
- JSON 형태
- Identity-based policies
- Actions/Operations(행동 실행)
- 허용 완료 후 요청처리 단계
- 요청 내 Actions/Operations 에 대하여 실행
- Resources(자원 저장)
- 요청 내 Resource, Resource data에 대하여 실행
- Principal(주체)
IAM 자격 증명
- IAM 단어
- IAM 리소스
- IAM 서비스가 저장하는 리소스
- 종류
- IAM 사용자
- IAM 그룹
- IAM 역할
- 권한 정책
- 자격 증명 공급자 객체
- IAM 엔터티
- AWS가 인증에 사용하는 IAM 리소스
- RBAC에서는 엔터티를 보안 주체로 지정
- 종류
- IAM 사용자
- IAM 역할
- 보안 주체
- AWS 리소스에 대한 작업/연산을 요청할 수 있는 AWS 계정 루트 사용자, IAM 사용자, IAM 역할
- 보안 주체에는 인간 사용자, 워크로드, 페더레이션 보안 주체 및 맡은 역할 등이 포함
- 인간 사용자
- 사용하는 인간
- 워크로드
- 비즈니스 가치를 창출하는 리소스 및 코드 모음
- 페더레이션 보안 주체
- Active Directory, Okta 등 같은 다른 ID 공급자가 자격 증명과 보안 인증 정보를 관리하는 사용자
- 비슷한 것으로는 SSO라고 생각된다.
- IAM 역할
- 계정이 가능한 것, 불가능한 것을 결정하는 특정 권한을 지닌 IAM 자격 증명
- 인간 사용자
- 보안 주체의 유형에 따라 AWS에 요청할 수 있는 영구/임시 보안 인증 정보를 부여
- IAM 리소스
기타 정리 내용
IAM 리소스는
- Policy
- Instance profile
- OIDC provider
- Etc
- Identity
- IAM group
- Entity
- Principal
- IAM user
- IAM role
로 이루어지고 Root user 만이 리소스에 해당되지 않으면서 Principal에 해당
- Principal
기존 자격 증명 소스의 사용자 페더레이션 과정
- 사용자가 외부 디렉토리에서 ID, PW를 입력해서 정보를 요청
- 외부 디렉토리는 그 요청을 사용해 정보를 찾아 응답
- 사용자는 받은 정보로 AWS에 로그인 요청
- IAM에서 해당 요청을 받아 처리
- IAM이 처리 후 데이터를 사용자에게 응답
- 사용자는 받은 데이터로 AWS 리소스에 접근
'Cloud Native > AWS' 카테고리의 다른 글
| AWS 이론: S3 (0) | 2026.02.24 |
|---|---|
| AWS 이론: RDS (0) | 2026.02.24 |
| AWS 이론: ELB (0) | 2026.02.24 |
| AWS 이론: EC2 Auto Scaling (0) | 2026.02.24 |
| AWS 이론: EC2 (0) | 2026.02.24 |