[AWS] IAM(Identity & Access Management)

IAM(Identity & Access Management)

IAM이란, 통합 계정 관리를 지칭하는 용어이다. 전 산업에 걸쳐 IT 시스템의 중요도와 사용자가 늘어남에 따라 전사적 리스크 및 IT 보안을 관리하고 컴플라이언스 이슈에 대한 요구사항을 해결하기 위해 기업 IT팀의 해결 과제도 지속적으로 증가하고 있다. 회사에서 사용자 ID와 계정 및 권한에 대한 관리가 느슨할 경우 이로 인해 기대 비용이 증가하고 리스크가 증가하여 사용자 환경은 악화될 수 있다.

IAM은 일반적인 환경과 SOA(Services-Oriented Architecture) 및 웹 서비스 환경에서도 IT 관리에 대한 통합적인 관리 방법을 제시하면서, ID 및 액세스 관리를 효과적으로 수행할 수 있도록 지원하는 솔루션이라 할 수 있다.

지속적으로 증가하는 내/외부 사용자의 사용자 계정을 생성, 수정 및 삭제하는 작업을 자동화하고, 메인프레임에서 웹 애플리케이션에 이르는 모든 범위의 전사적 시스템 상에서 감사 기능을 제공해 고객들의 비즈니스를 보다 안정적이고 효율적으로 지원한다.

계정 관리 시스템의 종류

계정 관리 시스템은 회사 내 시스템에 대한 계정 정보(아이디/비밀빈호) 관리 및 시스템에 대한 통합 권한 관리 솔루션으로 SSO(Single Sign-On), EAM(Extranet Access Management), IAM(Identity Access Management)으로 분류할 수 있다.

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

IAM 서비스

AWS IAM(Identity & Access Management)는 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있게 해주는 서비스로 AWS 사용자 및 그룹을 만들고 관리하며, 권한을 사용해 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있다.

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

기업 네트워크나 인터넷 자격증명 공급자와의 연계를 통해 이미 다른 곳에 암호가 있는 사용자에 AWS 계정에 대한 임시 액세스 권한을 부여할 수 있다. 이러한 다양한 인증 처리 기능과 강력한 보안 기능을 통해 AWS 내부 리소스에 대한 보호와 체계적인 자원 관리 기능을 제공한다.

구분내용
서비스명IAM(Identity & Access Management)
설명AWS 서비스 및 리소스에 대한 액세스를 안전하게 관리
주요 특징– AWS Identity & Access Management(IAM)를 통해 사용자의 AWS 서비스와 리소스에 대한 액세스를 안전하게 통제 가능
– AWS 사용자 및 그룹을 만들고 관리하며, AWS 리소스에 대한 액세스 허용 및 거부 가능
– AWS를 안전하게 사용하기 위한 인증/허가 시스템
-AWS 사용자 인증 및 접근 정책 관리
– AWS 관리를 위한 그룹, 사용자 및 Role(역할) 생성 가능
– 그룹별 제한된 권한의 부여, 사용자별 인증 및 권한 부여 기능
프리티어 (Free Tier)IAM 사용에 대해 비용이 발생하지 않음
AWS IAM(Identity & Access Management)

Amazon IAM에서 더 많은 내용을 확인할 수 있다.

IAM 주요 특징

1. 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 역할(Role)은 IAM의 사용자와 유사하다. 하지만 IAM의 역할은 한 사용자만 연결되지 않고 그 역할이 필요한 사용자 또는 그룹이면 누구든지 연결할 수 있도록 고안되었다.

예를 들어, AWS 계정 사용자에게 리소스에 대한 액세스 권한을 부여하거나, 하나의 AWS 계정 사용자에게 다른 계정 리소스에 대한 액세스 권한을 부여해야 할 경우나, 모바일 앱에서 AWS 리소스를 사용할 수 있도록 하되 앱에 AWS 키를 내장(교체하기 어렵고 사용자가 추출할 가능성이 있음)하길 원치 않는 경우도 있다. 이러한 경우 IAM 역할을 사용하여 AWS 리소스에 대한 액세스 권한을 위임할 수 있다.

2. IAM 서비스의 동작 방식

IAM은 AWS 내 리소스 및 자원 관리를 위한 사용자와 그룹의 생성 및 관리 기능을 통해 고유한 보안 자격증명을 생성할 수 있으며, AWS 서비스 API와 리소스에 대한 권한을 부여함으로써 AWS 서비스와 내부 리소스에 대해 강력한 보안을 통해 안전하게 리소스를 관리할 수 있다.

관리자 계정은 EC2에 대해 모든 작업이 가능한 권한을 보유하고 있기 때문에 그림과 같이 EC2에 대해 정지(Stop), 종료(Terminate)가 가능하다. 하지만 EC2 권한이 없는 개발자 계정의 경우 EC2 인스턴스에 대해 정지/종료가 불가능하다.

IAM은 사용자 계정을 통해 개별 AWS 리소스에 대해 세부적인 권한을 부여할 수 있다. IAM을 통해 제어할 수 있는 대상은 다음과 같다.

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

3. IAM 자격증명 관리 기능

IAM의 역할을 사용한 임시 자격증명 관리

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

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

IAM 자격증명 관리 기능

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나 Active Directory와 연동 가능하며, 이를 통해 AWS 계정에 액세스할 수 있다.

또한 Federation은 SAML(Security Assertion Markup Language 2.0)과 같은 개방형 표준 인증을 사용하여 ID 제공자(IdP)와 애플리케이션 간에 ID 및 암호를 교환한다.

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

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다