본문 바로가기

자격증/AWS Certified SA - Professional

[AWS SAP] AWS IAM

728x90
반응형

AWS IAM 이해와 활용: 정책, 역할, 권한 경계까지 한눈에

IAM(Identity and Access Management)은 AWS 리소스에 대한 액세스 제어를 관리하는 핵심 서비스입니다. 이번 포스트에서는 IAM의 주요 구성 요소와 활용 사례를 살펴보며, 효율적으로 IAM을 활용하는 방법을 소개하겠습니다.


IAM의 주요 개념

1. 사용자(User)와 역할(Role)

  • 사용자: AWS 계정에 생성된 개별 엔터티로, 장기 자격 증명이 주어집니다.
  • 역할: AWS 리소스나 교차 계정에서 액세스 권한을 부여하기 위해 사용하는 엔터티로, 단기 자격 증명을 활용합니다.
    • 역할은 **STS(보안 토큰 서비스)**를 통해 발급된 임시 자격 증명을 사용하며, 필요한 작업만 수행합니다.

EC2 인스턴스 역할

  • EC2 인스턴스에는 EC2 메타데이터 서비스를 통해 단기 자격 증명이 부여됩니다.
  • 이를 통해 S3, DynamoDB 등의 AWS 서비스에 액세스할 수 있습니다.
  • 일반적으로 EC2 인스턴스당 하나의 역할만 할당 가능합니다.

2. 정책(Policy)

IAM 정책은 JSON 형식으로 작성되며, IAM 엔터티가 수행할 수 있는 작업을 정의합니다.

정책 유형

  1. AWS 관리형 정책
    • AWS에서 제공하는 정책으로, AWS 서비스의 주요 작업을 쉽게 수행할 수 있도록 설계되었습니다.
  2. 고객 관리형 정책
    • 사용자가 직접 정의하여 특정 사용자나 역할에 할당합니다.
  3. 인라인 정책
    • 특정 사용자 또는 역할에만 직접 연결되는 정책입니다.
  4. 리소스 기반 정책
    • S3 버킷, SQS 대기열 등 특정 리소스에 연결되는 정책입니다.

3. IAM 정책 문법

IAM 정책의 주요 구성 요소는 다음과 같습니다.

  • Effect: Allow 또는 Deny를 지정하여 액세스를 허용하거나 거부합니다.
  • Action: 수행 가능한 작업을 정의합니다.
  • Resource: 작업 대상 리소스를 지정합니다.
  • Condition: 정책의 조건을 설정합니다.

정책 예시

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AttachVolume",
        "ec2:DetachVolume"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ResourceTag/Department": "Development"
        }
      }
    }
  ]
}

 

이 정책은 Development 태그가 있는 EC2 인스턴스에서만 볼륨을 연결하거나 분리할 수 있도록 허용합니다.


4. IAM 역할과 리소스 기반 정책의 차이점

  • IAM 역할: 역할을 인수하면 기존 권한을 포기하고, 역할에 지정된 권한만 사용할 수 있습니다.
  • 리소스 기반 정책: 사용자의 기존 권한을 유지한 상태에서 추가 권한을 부여합니다.

교차 계정 액세스 예시

  • IAM 역할: 계정 A 사용자가 계정 B의 역할을 인수하여 B 계정의 S3 버킷에 액세스.
  • 리소스 기반 정책: 계정 B의 S3 버킷 정책에 계정 A 사용자의 액세스를 명시적으로 허용.

5. IAM 권한 경계

IAM 권한 경계는 사용자나 역할의 최대 권한을 제한하는 고급 기능입니다.

활용 사례

  • IAM 개체(사용자, 역할)에서 특정 작업의 범위를 제한.
  • 개발자가 특정 권한 내에서만 정책을 생성하도록 설정.
  • 계정 전체가 아닌 특정 사용자 또는 역할의 권한만 제한.

IAM 활용 도구

  1. IAM Access Advisor
    • 권한의 마지막 사용 시점을 확인하여 불필요한 권한을 제거.
  2. Access Analyzer
    • S3 버킷, Lambda 함수 등의 외부 리소스 공유 여부를 분석.

모범 사례: 최소 권한의 원칙

  1. 필요한 작업만 수행할 수 있는 권한을 부여.
  2. 자주 사용하지 않는 권한은 삭제.
  3. IAM 정책의 Condition과 변수(${aws:username}) 등을 적극 활용하여 정책을 간소화.

AWS IAM은 복잡하지만, 그만큼 강력한 액세스 제어를 제공합니다. IAM 정책과 역할, 권한 경계를 이해하고 활용하면 AWS 환경에서 더욱 안전하고 효율적인 리소스 관리를 할 수 있습니다.

728x90
반응형

'자격증 > AWS Certified SA - Professional' 카테고리의 다른 글

[AWS SAP] IAM Access Analyzer  (0) 2024.12.29