IAM이란?
AWS IAM(Identity and Access Management)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다. IAM을 사용하여 리소스를 사용할 수 있도록 인증 및 권한 부여를 제어한다.
AWS 계정을 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 루트 사용자(단일 로그인 ID)로 시작한다. 일상적인 작업에 루트 사용자를 사용하지 않을 것을 강력히 권장한다.
1. IAM 기능
IAM에서는 다음 기능을 제공한다.
-
AWS 계정에 대한 공유 액세스
- 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 있는 권한을 다른 사람에게 부여할 수 있다.
-
세분화된 권한
- 리소스에 따라 여러 사람에게 다양한 권한을 부여할 수 있다. 예를 들어 일부 사용자에게 Amazon EC2, S3, DynamoDB 및 기타 AWS 서비스에 대한 완전한 액세스를 허용할 수 있다. 다른 사용자에게는 일부 S3 버킷에 대한 읽기 전용 권한, 일부 EC2 인스턴스를 관리할 수 있는 권한 또는 결제 정보에만 액세스할 수 있는 권한을 허용할 수 있다.
-
Amazon EC2에서 실행되는 애플리케이션을 위한 보안 AWS 리소스 액세스
- EC2 인스턴스에서 실행되는 애플리케이션의 경우 IAM 기능을 사용하여 크레덴셜을 안전하게 제공할 수 있다. 이러한 크레덴셜은 애플리케이션에 다른 AWS 리소스(S3 버킷 등)에 액세스할 수 있는 권한을 제공한다.
-
멀티 팩터 인증(MFA)
- 보안 강화를 위해 계정과 개별 사용자에게 2팩터 인증을 추가할 수 있다. MFA를 사용할 경우 계정 소유자나 사용자가 계정 작업을 위해 암호나 액세스 키뿐 아니라 특별히 구성된 디바이스의 코드도 제공해야 한다.
-
아이덴터티 페더레이션(Federation)
-
보장을 위한 아이덴터티 정보
-
PCI DSS 준수
-
많은 AWS 서비스와의 통합
-
최종 일관성
-
무료 사용
2. IAM에 액세스
다음 방법 중 하나를 사용하여 AWS IAM으로 작업할 수 있다.
-
AWS Management Console
- 콘솔은 IAM 및 AWS 리소스를 관리하기 위한 브라우저 기반 인터페이스이다.
-
AWS 명령줄 도구(CLI)
- AWS 명령줄 도구를 통해 시스템 명령줄에서 명령을 실행하여 IAM 및 AWS 작업을 수행할 수 있다. 명령줄을 사용하는 것이 콘솔을 사용하는 것보다 더 빠르고 편리할 수 있다. AWS 작업을 수행하는 스크립트를 작성할 때도 명령줄 도구가 유용하다.
-
AWS SDK
- AWS에서는 다양한 프로그래밍 언어 및 플랫폼(Java, Python, Ruby, .NET, iOS, Android 등)을 위한 라이브러리와 샘플 코드로 구성된 소프트웨어 개발 키트(SDK)를 제공한다. SDK를 사용하면 편리하게 IAM 및 AWS에 프로그래밍 방식으로 액세스할 수 있다.
-
IAM HTTPS API
- 서비스로 직접 HTTPS 요청을 실행할 수 있는 IAM HTTPS API를 사용하여 프로그래밍 방식으로 IAM 및 AWS에 액세스할 수 있다. HTTPS API를 사용할 때는 크레덴셜을 사용하여 요청에 디지털 방식으로 서명하는 코드를 포함해야 한다.