Develop/AWS

[AWS] IAM(Identity and Access Management) 이란

DevPi 2023. 7. 2. 19:08
반응형

 

정의

IAM(Identity and Access Management)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다.

IAM을 사용하면 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 중앙에서 관리할 수 있으며, IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어한다.


특징

  • 기본적으로 생성된 Root 계정은 사용하거나 공유해서는 안된다. Root 계정은 최상위 계정으로서 모든 리소스와 서비스에 대한 완전한 액세스 권한을 가지고 있으므로 보안상의 이유로 사용를 피해야 한다.
  • 사용자(User)는 조직 내의 사람들을 나타내며 예를들어 회사 내의 직원들이 IAM 사용자로 생성될 수 있다. 사용자는 개별적으로 생성되며, 각각 고유 권한을 액세스 권한을 가질 수 있다.
  • 그룹(Group)은 사용자만 포함하며, 다른 그룹을 포함할 수 없다. 그룹은 사용자를 논리적으로 묶는 용도로 사용될 수 있으며, 여러 사용자를 쉽게 관리하고 권한을 할당하는 데 도움을 준다.
  • 사용자는 반드시 그룹에 속할 필요가 없으며, 한 사용자가 여러 그룹에 속할 수 있다. 이는 유연한 액세스 제어를 가능하게 해주는 기능이다. 사용자는 개별적으로 권한이 할당될 수 있고, 필요에 때라 여러 그룹에 속하여 다양한 권한을 가질 수 있다.

출처 : https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/

IAM 이라는 유저를 만들 수 있고, 이 유저는 각각 쓰임에 맞게 그룹화 할 수 있다.

 

IAM은 클라우드 서비스 환경에서 액세스 제어와 보안 관리를 효육적으로 수행하기 위한 중요한 도구이다.

위의 내용은 IAM의 일반적인 특징을 정리한 것이며, 실제 사용시에는 해당 클라우드 플랫폼의 문서와 가이드를 참조하여 적절한 IAM 정책과 권한 모델을 구성하는 것이 좋다.


권한관리

  • 사용자 또는 그룹에서 정책이라고 불리는 JSON 문서를 할당할 수 있다. 이 정책은 사용자의 권한을 정의하며 특정 작업, 리소스 또는 서비스에 대한 액세스 권한을 명시적으로 지정할 수 있다.
  • 이러한 정책은 사용자의 권한을 정의하며 읽기, 쓰기, 수정, 삭제 등의 권한을 포함할 수 있다.
  • AWS에서는 최소 권한 원칙을 적용한다. 이는 사용자에게 필요한 권한 이상의 권한을 부여하지 않는것을 의미하며 사용자는 수행해야 하는 작업에 필요한 최소한의 권한만 부여되어야 한다. 이를 통해 보안성을 높이고 권한 남용에 대한 위험을 최소화할 수 있다.

IAM은 사용자와 그룹에 대한 권한을 세밀하게 관리하기 위한 도구이며 JSON 기반의 정책을 사용하여 권한을 할당한다.
이를 통해 필요한 작업만 수행할 수 있는 최소한의 권한을 부여하여 보안을 강화할 수 있다.


주용용어

  • Users (사용자) : 물리적인 사용자에 매핑되며, AWS 콘솔에 로그인하기 위한 비밀번호를 가지고 있다.
  • Groups (그룹) : 사용자들을 그룹에 추가하여 그룹 단위로 권한을 관리할 수 있다.
  • Policies (정책) : 사용자나 그룹에 대한 권한을 기술하는 JSON 형식의 문서로 정책을 통해 특정 작업이나 리소스에 대한 액세스 권한을 설정할 수 있습니다.
  • Roles (역할) : EC2 인스턴스나 AWS 서비스를 위한 역할로 특정 작업을 수행하는 데 필요한 권한을 가지고 있으며, 인스턴스나 서비스에 할당하여 사용한다.
  • Security (보안) : MFA(Multi-Factor Authentication)와 비밀번호 정책을 포함한 보안 관련 기능을 제공한다. MFA는 추가적인 인증 요소를 요구하여 계정 보안을 강화한다.
  • AWS CLI (Command Line Interface) : Command Line 인터페이스를 통해 AWS 서비스를 관리하는 도구로 CLI를 사용하여 다양한 작업을 자동화하고 스크립트를 작성할 수 있다.
  • AWS SDK (Software Development Kit) : 프로그래밍 언어를 통해 AWS 서비스를 관리하는 데 사용되는 개발 도구로 SDK를 사용하면 애플리케이션 내에서 AWS 리소스를 조작하고 관리할 수 있다.
  • Access Keys (액세스 키) : AWS CLI나 SDK를 사용하여 AWS에 액세스할 때 사용되는 인증 정보이다. 액세스 키는 보안을 유지하기 위해 안전하게 관리되어야 한다.
  • Audit : 계정의 액세스 권한 상태를 확인하고 보안을 강화할 수 있다.
반응형