Skip to content

IAM이란?


AWS IAM(Identity and Access Management)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다. IAM을 사용하여 리소스를 사용할 수 있도록 인증 및 권한 부여를 제어한다.

AWS 계정을 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 루트 사용자(단일 로그인 ID)로 시작한다. 일상적인 작업에 루트 사용자를 사용하지 않을 것을 강력히 권장한다.


1. IAM 기능

IAM에서는 다음 기능을 제공한다.

  1. AWS 계정에 대한 공유 액세스

    • 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 있는 권한을 다른 사람에게 부여할 수 있다.
  2. 세분화된 권한

    • 리소스에 따라 여러 사람에게 다양한 권한을 부여할 수 있다. 예를 들어 일부 사용자에게 Amazon EC2, S3, DynamoDB 및 기타 AWS 서비스에 대한 완전한 액세스를 허용할 수 있다. 다른 사용자에게는 일부 S3 버킷에 대한 읽기 전용 권한, 일부 EC2 인스턴스를 관리할 수 있는 권한 또는 결제 정보에만 액세스할 수 있는 권한을 허용할 수 있다.
  3. Amazon EC2에서 실행되는 애플리케이션을 위한 보안 AWS 리소스 액세스

    • EC2 인스턴스에서 실행되는 애플리케이션의 경우 IAM 기능을 사용하여 크레덴셜을 안전하게 제공할 수 있다. 이러한 크레덴셜은 애플리케이션에 다른 AWS 리소스(S3 버킷 등)에 액세스할 수 있는 권한을 제공한다.
  4. 멀티 팩터 인증(MFA)

    • 보안 강화를 위해 계정과 개별 사용자에게 2팩터 인증을 추가할 수 있다. MFA를 사용할 경우 계정 소유자나 사용자가 계정 작업을 위해 암호나 액세스 키뿐 아니라 특별히 구성된 디바이스의 코드도 제공해야 한다.
  5. 아이덴터티 페더레이션(Federation)

  6. 보장을 위한 아이덴터티 정보

  7. PCI DSS 준수

  8. 많은 AWS 서비스와의 통합

  9. 최종 일관성

  10. 무료 사용


2. IAM에 액세스

다음 방법 중 하나를 사용하여 AWS IAM으로 작업할 수 있다.

  1. AWS Management Console

    • 콘솔은 IAM 및 AWS 리소스를 관리하기 위한 브라우저 기반 인터페이스이다.
  2. AWS 명령줄 도구(CLI)

    • AWS 명령줄 도구를 통해 시스템 명령줄에서 명령을 실행하여 IAM 및 AWS 작업을 수행할 수 있다. 명령줄을 사용하는 것이 콘솔을 사용하는 것보다 더 빠르고 편리할 수 있다. AWS 작업을 수행하는 스크립트를 작성할 때도 명령줄 도구가 유용하다.
  3. AWS SDK

    • AWS에서는 다양한 프로그래밍 언어 및 플랫폼(Java, Python, Ruby, .NET, iOS, Android 등)을 위한 라이브러리와 샘플 코드로 구성된 소프트웨어 개발 키트(SDK)를 제공한다. SDK를 사용하면 편리하게 IAM 및 AWS에 프로그래밍 방식으로 액세스할 수 있다.
  4. IAM HTTPS API

    • 서비스로 직접 HTTPS 요청을 실행할 수 있는 IAM HTTPS API를 사용하여 프로그래밍 방식으로 IAM 및 AWS에 액세스할 수 있다. HTTPS API를 사용할 때는 크레덴셜을 사용하여 요청에 디지털 방식으로 서명하는 코드를 포함해야 한다.

References