[Practitioner] IAM (Identity & Access Management)

2020. 9. 5. 15:12AWS/Practitioner

1. IAM (Identity & Access Management)

1) IAM

통합 계정 관리를 지칭하는 용어로, IAM은 일반적인 환경 SOA(Services-Orientied Architecture) 및 웹 서비스 환경에서도 IT 관리에 대한 통합적인 관리 방법을 제시하면서 ID 및 액세스 관리를 효과적으로 수행할 수 있도록 지정하는 솔루션이다. 지속적으로 증가하는 내/외부 사용자의 사용자 계정을 생성, 수정 및 삭제하는 작업을 자동화하고, 메인프레임에서 웹 애플리케이션에 이르는 모든 범위의 전사적 시스템 상에서 감사 기능을 제공해 고객들의 비즈니스를 보다 안정적이고 효율적으로 지원한다.

 

AWS IAM은 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있게 해주는 서비스로 AWS 사용자 및 그룹을 만들고 관리하며 권한을 사용해 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있다. 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 잇는 권한을 다른 사람에게 부여할 수 있고, 리소스에 따라 여러 사람에게 권한을 부여하거나 특정 EC2 및 애플리케이션에서 실행 가능하도록 안전한 방법을 제공한다. 또한 멀티 팩터 인증(MFA)을 통해 사용자 계정 및 암호에 추가적인 인증을 통한 계정 보호 기능을 제공한다. 프리티어로는 어떠한 비용이 발생하지 않는다.

2) 계정 관리 시스템의 종류

구분 설명
SSO (Single-Sign-On) - 한번의 인증으로 다양한 시스템에 추가적인 인증없이 접속 가능하도록 하는 보안 솔루션
- 다수의 인증 절차 없이 1개의 계정으로 다양한 시스템 및 서비스에 접속 가능
- 사용자 편의성과 관리 비용 절감 가능
EAM (Extranet Access Management) - 가트너 그룹에서 정의한 용어
- SSO, 사용자 인증 관리 및 애플리케이션, 데이터에 대한 접근 관리 기능 제공
- 보안 정책 기반의 단일 메커니즘을 이용한 솔루션
IAM (Identity & Access Management) - 계정 관리 전반 및 프로비저닝 기능을 포함한 포괄적인 의미의 계정 관리 솔루션
- EAM과 SSO 기능보다 포괄적으로 확장된 개념
- 고객의 요구를 반영한 기능 조합 및 확장 기능
- 업무 프로세스를 정의하고 관리하는 인프라
- 업무 효율성, 생선성, 보안성의 극대화를 통해 확실한 이익 창출을 보장하는 비즈니스 툴

3) IAM 사용자 (User)

AWS에서 생성하는 개체로 AWS와 서비스 및 리소스와 상호 작용하기 위해 그 개체를 사용하는 사람 또는 서비스를 말한다. IAM 사용자는 필요에 따라 신구 생성/수정/삭제가 가능하며 하나의 AWS 계정에 최대 5,000개의 계정을 생성할 수 있다. 각 IAM 사용자는 오직 한개의 AWS 계정만 연결된다.

 

신규 생성된 IAM 사용자는 아무런 권한도 할당되지 않으며, AWS 작업을 수행하거나 AWS 리소스에 액세스할 수 있는 권한이 없다. 이 후 필요한 AWS 리소스에 접근하기 위해 사용자 계정에 직접 권한을 할당하거나 IAM 그룹, IAM 역할과 사용자 계정으 ㄹ추가하여 권한 및 자격증명을 할당할 수 있다. 또한 개별 IAM 사용자에게 권한을 할당하여 이들이 AWS 리소스를 관리하고 다른 IAM 사용자까지 생성하고 관리하도록 구성할 수 있다.

4) IAM 그룹 (Group)

IAM 그룹은 IAM 사용자들의 집합으로, 다수의 사용자들에 대한 권한을 지정하여 해당 사용자들에 대한 권한을 더 쉽게 관리할 수 있다. 예시로 Admin 그룹에는 관리자에게 필요한 권한을 부여하고 이 그룹에 속한 모든 사용자는 자동으로 관리자 권한이 부여된다.

5) IAM 역할 (Role)

AWS에서 자격증명을 처리하거나 하지 못하도록 권한 및 정책을 보유하고 있다는 측면에서 IAM 역할은 IAM 사용자와 유사하다. 하지만 IAM의 역할은 한 사용자만 연결되지 않고 그 역할이 필요한 사용자 또는 그룹이면 누구든지 연결할 수 있도록 고안되어있다.

6) IAM 서비스 동작 방식

IAM은 AWS 내 리소스 및 자원 관리를 위한 사용자와 그룹의 생성 및 관리 기능을 통해 고유한 보안 자격증명을 생성할 수 있고 AWS 서비스 API와 리소스에 대한 권한을 부여함으로 AWS 서비스와 내부 리소스에 대해 강력한 보안을 통해 안전하게 리소스를 관리할 수 있다. 관리자 계정은 EC2 인스턴스를 정지 및 종료가 가능하지만 권한이 없는 개발자 계정의 경우에는 EC2 인스턴스를 정지 및 종료가 불가능하다. 이처럼 IAM은 사용자 계정을 통해 개별 AWS 리소스에 대해 세부적인 권한을 부여할 수 있다.

IAM으로 제어할 수 있는 대상
AWS 리소스를 관리하기 위한 콘솔에 대한 접속 권한
AWS 내부 리소스에 대한 접속 권한
AWS 내 데이터에 대해 프로그래밍 방식(API)으로 접속하는데 필요한 권한

7) IAM의 역할을 이용한 임시 자격증명 관리

IT 서비스 중 영구적인 자격증명이 필요하지 않고, 일시적으로 임시 자격증명이 필요한 경우 IAM 역할을 사용하면 AWS 리소스에 대한 액세스 권한이 없는 사용자나 서비스에 임시적인 액세스 권한을 부여할 수 있다.

시나리오 설명
EC2 인스턴스의 애플리케이션에 권한 부여 EC2 인스턴스의 애플리케이션에 AWS 리소스에 대한 액세스 권한을 부여하려면 개발자는 각 인스턴스에 자격증명을 배포해야 할 수 있다. 애플리케이션이 이러한 자격증명을 사용해 S3 Bucket 도는 DynamoDB 데이터 등 리소스에 액세스할 수 있다.
교차 계정 액세스 개발 환경을 프로덕션 환경과 분리하는 등 리소스에 대한 액세스를 제어 또는 관리하려면 여러 AWS 계정이 필요할 수 있다. 하지만 간혹 한 계정의 사용자가 다른 계정의 리소스에 액세스해야 하는 경우도 있다.
AWS 서비스에 권한 부여 AWS 서비스가 사용자를 대신해 작업을 수행할 수 있으려면, 이러한 작업을 수행할 수 있는 권한을 해당 서비스에 부여해야한다. AWS IAM 역할을 사용하면 AWS 서비스가 사용자를 대신하여 다른 AWS 서비스를 호출하거나 사용자 계정에서 AWS 리소스를 생성하고 관리할 수 있는 권한을 부여할 수 있다.

8) IAM 자격증명 관리 기능

구분 설명
암호 AWS Management Console, AWS 토론 포럼 등 AWS 보안 페이지에 로그인하는데 사용한다.
액세스 키 AWS API, AWS CLI, AWS SDK 또는 Windows PowerShell용 AWS 도구에서 프로그래밍 방식으로 호출하는데 사용한다.
CloudFront 키 페어 CloudFront가 서명된 URL을 생성하는데 사용한다.
SSH 퍼블릭 키 AWS CodeCommit 리포지토리를 인증하는데 사용한다.
X.509 인증서 부 AWS 서비스에 안전한 SOAP 프로토콜 요청을 수행하는데 사용한다.

9) 타 인증 시스템과의 연동

AWS IAM의 Federation 서비스를 사용하면 AWS 리소스를 중앙에서 관리할 수 있다. Federation과 함께 SSO를 사용하여 회사 내에서 사용하는 LDAP나 Active Directory와 연동 가능하며, 이를 통해 AWS 계정에 액세스할 수 있다. 또한 Federation은 SAML (Security Assertion Markup Language 2.0)과 같은 개방형 표준 인증을 사용하여 ID 제공자와 애플리케이션 간에 ID 및 암호를 교환한다.

구분 설명
Federation을 사용하여 AWS 계정에 SSO - Federation 및 AWS IAM을 사용하여 AWS 계정에 SSO를 사용하도록 설정 가능
- 사용자는 AWS 계정을 연합하여 회사 디렉터리의 자격증명을 사용하여 AWS 관리 콘솔 및 CLI에 로그인
웹 및 모바일 애플리케이션 Federation 지원 추가 - Amazon Cognito를 사용하여 AWS Cloud에서 실행되는 웹 및 모바일 애플리케이션에 Federation 지원 추가
- Amazon Cognito를 사용하면 모바일 및 웹 애플리케이션에 사용자 등록 및 로그인을 쉽게 추가 가능
- Amazon Cognito를 사용하면 Facebook, Twitter 및 Amazon과 같은 소셜 ID 제공자를 통해 사용자를 인증하거나 사용자 고유의 ID 시스템을 사용하여 사용자 인증 가능
SAML 없이 AWS 리소스에 대한 SSO 액세스 활성화 - AWS Directory Services for Microsoft Active Directory를 사용하여 AWS 클라우드에서 실행되는 Windows 애플리케이션에 SSO를 사용하도록 설정 가능
- AWS Microsoft AD를 사용하여 사내 Microsoft Active Directory 도메인과 AWS 클라우드의 AWS Microsoft AD 도메인 사이에 보안 Windows 트러스트를 만들 수 있음
- 트러스트를 사용하여 SSO를 AWS 관리 콘솔 및 CLI로 설정하고 윈도우 서버용 EC2, SQL 서버용 RDS 및 Amazon Workspace와 같은 윈도우 기반 워크로드 설정 가능

[참고] 아마존 웹 서비스 AWS Discovery Book

[참고] AWS - Practice - Practitioner IAM

728x90

'AWS > Practitioner' 카테고리의 다른 글

[Practitioner] AWS Certification  (0) 2020.09.06
[Practitioner] 호스팅, 트래픽, Lightsail  (0) 2020.09.05
[Practitioner] CDN 서비스  (0) 2020.09.03
[Practitioner] 가용성 확장 인프라  (0) 2020.09.03