Wisdom’s Cloud
[AWS] 22. Amazon IAM 본문
구분 | 내용 |
서비스명 | Amazon Identity & Access Management(IAM) |
설명 | AWS 서비스 및 리소스에 대한 액세스를 안전하게 관리 |
주요 특징 | - AWS IAM를 통해 사용자의 AWS 서비스와 리소스에 대한 액세스를 안전하게 통제 가능 - AWS 사용자 및 그룹을 만들고 관리하며, AWS 리소스에 대한 액세스 허용 및 거부 가능 - AWS를 안전하게 사용하기 위한 인증/허가 시스템 - AWS 사용자 인증 및 접근 정책 관리 - AWS 관리를 위한 그룹, 사용자 및 역할 생성 가능 - 그룹별 제한된 권한의 부여, 사용자별 인증 및 권한 부여 가능 |
프리티어(Free Tier) | IAM 사용에 대해 비용이 발생하지 않음 |
IAM 사용자(User)
- IAM 사용자란 AWS에서 생성한 개체로, AWS와 서비스 및 리소스와 상호 작용하기 위해 그 개체를 사용하는 사람 또는 서비스를 말한다.
- IAM 사용자는 필요에 따라 신규 생성/수정/삭제할 수 있으며, 하나의 AWS 계정에 최대 5,000개의 계정을 생성할 수 있고, 각 IAM 사용자는 오직 한 개의 AWS 계정만 연결된다.
- 신규 생성된 IAM 사용자는 아무런 권한도 할당되지 않으며, AWS 작업을 수행하거나 AWS 리소스에 액세스할 수 있는 권한이 없다.
- 따라서 필요한 AWS 리소스에 접근하기 위해 사용자 계정에 직접 권한을 할당하거나 IAM 그룹, IAM 역할과 사용자 계정을 추가하여 권한 및 자격증명을 할당할 수 있다.
- 또한 개별 IAM 사용자에게 권한을 할당하여 이들이 AWS 리소스를 관리하고 다른 IAM 사용자까지 생성하고 관리하도록 구성할 수 있다.
IAM 그룹(Group)
- IAM 그룹은 IAM 사용자들의 집합으로, 그룹을 활용하면 다수의 사용자들에 대한 권한을 지정함으로써 해당 사용자들에 대한 권한을 더 쉽게 관리할 수 있다.
- 예를 들어 Admins라는 그룹을 만들어 관리자에게 필요한 유형의 권한을 부여할 수 있다.
- 이 그룹에 할당된 권한이 이 그룹에 속하는 모든 사용자에게 자동으로 부여되며, 관리자 권한을 필요로 하는 새로운 사용자가 조직에 들어올 경우 해당 사용자를 이 그룹에 추가하여 적절한 권한을 할당할 수 있다.
- 또한 조직에서 직원의 업무가 바뀌면 해당 사용자의 권한을 편집하는 대신 이전 그룹에서 해당 사용자를 제거한 후 적절한 새 그룹에 추가하면 된다.
IAM 역할(Role)
- AWS에서 자격증명을 처리하거나 하지 못하도록 권한 및 정책을 보유하고 있다는 측면에서 IAM 역할은 IAM 사용자와 유사하다.
- 하지만 IAM의 역할은 한 사용자만 연결되지 않고 그 역할이 필요한 사용자 또는 그룹이면 누구든지 연결할 수 있도록 고안되었다.
- 예를 들어 AWS 계정 사용자에게 리소스에 대한 액세스 권한을 부여하거나, 하나의 AWS 계정 사용자에게 다른 계정 리소스에 대한 액세스 권한을 부여해야 할 경우나, 모바일 앱에서 AWS 리소스를 사용할 수 있도록 하되 앱에 AWS 키를 내장하길 원치 않는 경우도 있다.
- 이러한 경우 IAM 역할을 사용하여 AWS 리소스에 대한 액세스 권한을 위임할 수 있다.
IAM 서비스 동작 방식
- IAM은 AWS 내 리소스 및 자원 관리를 위한 사용자와 그룹의 생성 및 관리 기능을 통해 고유한 보안 자격증명을 생성할 수 있으며, AWS 서비스 API와 리소스에 대한 권한을 부여함으로써 AWS 서비스와 내부 리소스에 대해 강력한 보안을 통해 안전하게 리소스를 관리할 수 있다.
- 관리자 계정은 EC2에 대해 모든 작업이 가능한 권한을 보유하고 있기 때문에 EC2에 대해 정지(Stop), 종료(Terminate)가 가능하지만, EC2 권한이 없는 개발자 계정의 경우 EC2 인스턴스에 대해 정지/종료가 불가능하다.
- IAM은 사용자 계정을 통해 개별 AWS 리소스에 대해 세부적인 권한을 부여할 수 있으며, IAM을 통해 제어할 수 있는 대상은 AWS 리소스를 관리하기 위한 콘솔에 대한 접속 권한과 AWS 내부 리소스에 대한 접속 권한, AWS 내 데이터에 대해 프로그래밍 방식으로 접속하는데 필요한 권한이 있다.
IAM 자격증명 관리 기능
- IT 서비스 중 영구적인 자격증명이 필요하지 않고 일시적으로 임시 자격증명이 필요한 경우, IAM 역할을 사용하면 AWS 리소스에 대한 액세스 권한이 없는 사용자나 서비스에 임시적인 액세스 권한을 부여할 수 있다.
- IAM은 암호, 액세스 키, Amazon CloudFront 키 페어, SSH 퍼블릭 키, X.509 인증서와 같은 유형의 자격증명 관리 기능을 제공한다.
- AWS IAM의 Federation 서비스를 사용하면 AWS 리소스를 중앙에서 관리할 수 있다. Federation과 함께 SSO를 사용하여 회사 내에서 사용하는 LDAP나 Active Directory와 연동 가능하며, 이를 통해 AWS 계정에 액세스할 수 있다. 또한 Federation은 SAML과 같은 개방형 표준 인증을 사용하여 ID 제공자와 애플리케이션 간에 ID 및 암호를 교환한다.
실습: IAM User 및 Group 생성
* 해당 IAM 계정은 EC2 Read Only Access 권한만을 가지고 있으므로
위와 같이 인스턴스 종료 오류가 표시되며 EC2 인스턴스가 삭제되지 않는다.
따라서 해당 EC2에 대해 종료 권한을 추가하기 위해서는 루트 계정으로 로그인한 후
IAM 그룹에 EC2FullAccess 권한을 추가해야 한다. *
실습: IAM Role 생성 및 IAM Role 정책을 통한 EC2 권한 할당
'AWS > Beginner' 카테고리의 다른 글
[AWS] 24. Amazon Lightsail (0) | 2021.03.12 |
---|---|
[AWS] 23. 클라우드 용어 정리(10) (0) | 2021.03.12 |
[AWS] 21. 클라우드 용어 정리(9) (0) | 2021.03.11 |
[AWS] 20. Amazon CloudFront (0) | 2021.03.11 |
[AWS] 19. 클라우드 용어 정리(8) (0) | 2021.03.10 |