IAM(Identity & Access Management)
- 통합 계정 관리를 지칭하는 용어
- 일반적인 환경과 SOA(Services-Oriented Architecture) 및 웹 서비스 환경에서도 IT 관리에 대한 통합적인 관리 방법을 제시하면서, ID 및 액세스 관리를 효과적으로 수행할 수 있도록 지원하는 솔루션
계정 관리 시스템 종류
- SSO(Single-Sign-On)
한 번의 인증으로 다양한 시스템에 추가적인 인증없이 접속 가능하도록 하는 보안 솔루션
다수의 인증 절차 없이 1개의 계정으로 다양한 시스템 및 서비스에 접근 가능
사용자 편의성과 관리 비용 절감 가능
- EAM(Extranet Access Management)
가트너 그룹에서 정의한 용어
SSO, 사용자 인증 관리 및 애플리케이션, 데이터에 대한 접근 관리 기능 제공
보안 정책 기반의 단일 메커니즘을 이용한 솔루션
- IAM(Identity Access Managment)
계정 관리 전반 및 프로비저닝 기능을 포함한 포괄적인 의미의 계정 관리 솔루션
EAM과 SSO 기능보다 포괄적으로 확장된 개념
고객의 요구를 반영한 기능 조합 및 확장 가능
업무 프로세스를 정의하고 관리하는 인프라
업무 효율성, 생산성, 보안성의 극대화를 통해 확실한 이익 창출을 보장하는 비즈니스 툴
IAM 서비스
- AWS IAM은 Amazon Web Servicees 리소스에 대한 액세스를 안전하게 관리할 수 있게 해주는 서비스로 AWS 사용자 및 그룹을 만들고 관리하며, 권한을 사용해 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있다.
IAM 주요 특징
- IAM 사용자(User)
AWS에서 생성하는 개체로 AWS와 서비스 및 리소스와 상호 작용하기 위해 그 개체를 사용하는 사람 또는 서비스
사용자는 필요에 따라 신규 생성/수정/삭제할 수 있으며, 하나의 AWS 계정에 최대 5,000개의 계정을 생성할 수 있고 각 IAM 사용자는 오직 한 개의 AWS 계정만 연결된다.
- IAM 그룹(Group)
IAM 사용자들의 집합이다.
그룹을 활용하여 다수의 사용자들에 대한 권한을 지정함으로써 해당 사용자들에 대한 권한을 더 쉽게 관리할 수 있다.
- IAM 역할(Role)
AWS에서 자격증명을 처리하거나 하지 못하도록 권한 및 정책을 보유하고 있다는 측면에서 IAM 역할(Role)은 IAM의 사용자와 유사하다.
IAM의 역할은 한 사용자만 연결되지 않고 그 역할이 필요한 사용자 또는 그룹이면 누구든지 연결할 수 있도록 고안되었다.
IAM 서비스의 동작 방식
- AWS 리소스를 관리하기 위한 콘솔(Console)에 대한 접속 권한
- AWS 내부 리소스에 대한 접속 권한
- AWS 내 데이터에 대해 프로그래밍 방식(API)으로 접속하는데 필요한 권한
IAM의 자격증명 관리 기능
- IAM의 역할을 사용한 임시 자격증명 관리
IT 서비스 중 영구적인 자격증명이 필요하지 않는 일시적으로 임시 자격증명이 필요한 경우 IAM 역할을 사용하면 AWS 리소스에 대한 액세스 권한이 없는 사용자나 서비스에 임시적인 액세스 권한을 부여할 수 있다.
- IAM 자격증명 관리 기능
암호 : AWS Management Console, AWS 토론 포럼 등 AWS 보안 페이지에 로그인하는데 사용
액세스 키 : AWS API, AWS CLI, AWS SDK 또는 Windows PowerShell용 AWS 도구에서 프로그래밍 방식으로 호출하는데 사용
Amazon CloudFront 키 페어 : CloudFront가 서명된 URL을 생성하는데 사용
SSH 퍼블릭 키 : AWS CodeCommit 리포지토리를 인증하는데 사용
X, 509 인증서 : 부 AWS 서비스에 안전한 SOAP 프로토콜 요청을 수행하는데 사용
- 타 인증 시스템과의 연동
AWS IAM의 Federation 서비스를 이용하면 AWS 리소스를 중앙에서 관리할 수 있다.
Federation과 SSO(Single Sign-On)를 사용하여 회사 내에서 상룡하는 LDAP나 Actiove Directory와 연동 가능하며, 이를 통해 AWS 계정에 액세스할 수 있다.
IAM User 및 Group 생성
- AWS에 로그인하여 [서비스] -> [보안] -> [IAM]에 들어와서 좌측 메뉴에 [그룹]페이지로 이동하여 [새로운 그룹 생성]을 진행한다.
- 이름을 설정하고 다음으로 넘어간다.
- "AmazonEC2ReadOnlyAccess"라 검색하여 선택하고 다음으로 이동한다.
- 검토 페이지에서 검토 후에 그룹 생성을 마무리한다.
- 그룹 생성 완료
- 이후 사용자 생성을 위해서 좌측 메뉴에서 [사용자] 페이지에서 [사용자 추가]를 진행한다.
- 사용자 이름을 지정하고 액세스 유형은 "AWS Management Console 액세스"를 체크해주고 비밀번호는 "사용자 지정 비밀 번호"로 한다. 그리고 "비밀번호 재설정 필요"의 체크를 풀어주고 다음으로 넘어간다.
- [사용자 추가 페이지]에서 [그룹에 사용자 추가]로 하고 아까 만든 그룹을 선택한다.
- 이후 사용자 그룹 생성을 하면 추가 된 것을 확인
- 생성한 사용자에 들어와서 보안 자격 증명에서 콘솔 로그인 링크를 복사한다.
- 아까 복사한 링크로 들어가도 되고 아니면 aws 콘솔 로그인 페이지에서 링크에서 숫자부분을 넣어주고 다음으로 이동하면
- 아까 만들었던 사용자의 이름과 암호를 입력해서 로그인을 한다.
- 로그인 확인
IAM Role 생성 및 IAM Role 정책을 통한 EC2 권한 할당
- [IAM]에서 좌측 메뉴에서 [역할]로 이동하여 [역할 만들기]를 진행한다.
- "AWS 서비스"로 선택하고 사례는 "EC2"로 하여 다음으로 이동한다.
- 권한 정책 연결에서 검색창에 "RDS"라 입력하고 "AmazonRDSFullAccess"를 선택하고 다음으로 넘어간다.
- 검토 페이지에서 이름을 "IAMRole-DEV"로 하고 생성한다.
- 테스트를 위해서 인스턴스를 하나 만들어주는데 "Amazon Linux 2 AMI"로 선택한다.
- 유형은 "t2.micro"로 한다.
- vpc는 "Tutorial-vpc" IAM 역할에서 생성한 역할을 선택한다. 그러고 생성한다.
- 생성한 인스턴스의 퍼블릭 IP를 확인하여 SSH로 접속한다.
- 접속하여 S3에 접근하려 하지만 EC2가 권한이 없어서 접근하지 못한다.
- IAM페이지로 와서 생성했던 "IAMRole-DEV"의 상세페이지로 들어와서 [정책 연결]을 누른다.
- "AmazonS3FullAccess"를 찾아서 선택하고 [정책 연결]해준다.
- 다시 시도하여 접근이 가능하게 된 것을 확인한다.