새소식

AWS 사용 방법

쉽게 설명하는 AWS : IAM의 뜻과 구성요소, 정책, 역할, JSON, 권한 예시

  • -
728x90

1. IAM 의 뜻과 소개

AWS의 IAM

IAM은 "Identity and Access Management"의 약자입니다. 이는 AWS 리소스에 대한 엑세스를 안전하게 관리할 수 있도록 돕는 일종의 장치라 볼 수 있습니다. IAM을 통해 AWS 사용자와 사용자를 포함하는 그룹을 만들고, 특정 리소스에 대한 액세스를 허용하거나 거부할 수 있습니다. 이름 때문에 처음에 볼때는 계정 안정장치 같지만, 결국 AWS 내에서 '누가 언제 무엇을 어떻게 할 수 있는가?' 를 결정하고 관리하는 서비스라 볼 수 있습니다.

 

2. IAM의 주요 구성 요소

  • 사용자 : AWS를 실제로 사용하는 사람이나 애플리케이션.
  • 그룹 : 사용자의 집합, 그룹에 속한 사용자는 그룹에 부여된 권한을 가질 수 있습니다.
  • 정책 : 사용자, 그룹 및 역할이 무엇을 할 수 있는지 문서로 정리한 걸 뜻합니다.
  • 역할 : AWS 리소스나 다른 사용자에게 부여할 수 있는 권한을 설정함

 

3. 정책과 역할

정책(사용자들의 역할 정리)는 JSON(JavaScript Object Notation)을 통해 상세하게 명령을 내릴 수 있습니다. 예를 들어, '개발팀은 업무시간(10시~19시)에만 특정 *S3 버킷을 열람할 수 있다'는 세부적인 규칙을 정할 수도 있습니다.

 

*S3 버킷 - AWS에서 제공하는 객체 저장 서비스인 S3에 데이터를 저장하는 기본 컨테이너. 버킷은 파일들과 파일에 대한 메타 데이터를 포함하고 있다.

AWS 정책 JSON 작성 방법 예시 코드

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DevTeamS3AccessDuringBusinessHours",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::account-ID-without-hyphens:root"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::example-bucket/*",
      "Condition": {
        "DateGreaterThan": {"aws:CurrentTime": "2023-10-11T10:00:00Z"},
        "DateLessThan": {"aws:CurrentTime": "2023-10-11T19:00:00Z"}
      }
    }
  ]
}

 

4. AWS 리소스와 IAM

활용 방법

AWS에서는 EC2, S3, RDS 와 같은 다양한 서비스와 리소스를 제공합니다. IAM을 이용하면 이러한 서비스에 대한 접근을 제어할 수 있는 것이죠. 예를 들어, 특정 EC2 인스턴스에서는 오직 시스템 관리자만 접근할 수 있도록, 특정 S3버킷에서는 개발팀만 접근할 수 있도록 설정할 수 있습니다.

 

예시 

시스템 관리자만이 EC2 인스턴스를 시작하거나 중지할 수있도록 IAM 정책을 설정할 수 있습니다. 

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["ec2:StartInstances", "ec2:StopInstances"],
      "Resource": "arn:aws:ec2:region:account-ID-without-hyphens:instance/instance-ID"
    }
  ]
}

 

5. 권한 검증 과정

활용방법

AWS는 서비스를 사용하려는 사용자가 있을때, IAM은 먼저 그 사용자의 권한을 검증합니다. 검증 과정은 다음과 같은 순서로 이루어집니다.

  1. 사용자가 요청한 작업과 리소스에 대한 접근 권한을 확인합니다.
  2. 사용자에게 직접 부여된 IAM 정책이 있는지 확인합니다.
  3. 사용자에게 직접 부여된 정책이 없다면, 사용자가 속한 IAM 그룹의 정책을 확인합니다.
  4. 그래도 권한이 없다면 요청을 거부합니다. 

 

예를 들어, 사용자 'Alice'가 'DevBucket'이라는 S3 버킷에 파일을 업로드하려고 시도했다고 가정해봅시다.

  1. AWS는 'Alice'가 'DevBucket'에 파일을 업로드할 권한이 있는지 확인합니다.
  2. 'Alice'의 IAM 정책에는 이 권한이 없지만, 그녀는 'Developers' 그룹의 일원입니다.
  3. 'Developers' 그룹의 IAM 정책에는 'DevBucket'에 파일을 업로드할 권한이 있습니다.
  4. 따라서 'Alice'의 요청은 승인됩니다.

이런 식으로 IAM을 통해 세밀한 권한 제어와 검증이 이루어집니다. 이를 통해 AWS 리소스를 보다 안전하고 효율적으로 관리할 수 있습니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.