AWS

AWS IAM (Identity and Access Management) 개요 및 설정 방법

Somaz 2022. 2. 13. 21:55
728x90
반응형

 

 

Overview

이 글에서는 AWS IAM(Identity and Access Management)의 개념과 사용자 및 보안 설정 방법을 다룬다.
IAM을 사용하면 AWS 리소스에 대한 액세스 제어를 보다 안전하게 할 수 있으며, 최소 권한 원칙을 적용하여 보안을 강화할 수 있다.

IAM 클릭

 

 

 

 

 


 

 

 

IAM이란?

AWS IAM(Identity and Access Management)은 AWS 리소스에 대한 사용자 인증(Authentication)과 권한 부여(Authorization)를 관리하는 웹 서비스이다.

 

 

IAM의 주요 기능

기능 설명
사용자(User) 관리 AWS에 접근할 사용자(개인 또는 서비스)를 생성하고 관리
그룹(Group) 관리 여러 사용자를 그룹으로 묶고 공통 정책 적용
정책(Policy) 적용 JSON 기반의 정책을 사용하여 특정 리소스에 대한 액세스 권한을 세부적으로 제어
역할(Role) 관리 AWS 서비스 또는 외부 애플리케이션이 AWS 리소스에 접근할 수 있도록 역할 부여
MFA (Multi-Factor Authentication) 다중 인증을 사용하여 보안 강화

 

 

IAM을 사용하는 이유

1️⃣ AWS 계정 보안 강화: IAM을 통해 사용자를 개별적으로 관리하고 루트 계정 사용을 최소화할 수 있다.
2️⃣ 최소 권한 원칙 적용: 사용자마다 필요한 권한만 부여하여 보안 사고를 방지할 수 있다.
3️⃣ 세밀한 액세스 제어: 특정 AWS 리소스에 대한 액세스를 제어할 수 있다.
4️⃣ 다중 인증(MFA) 지원: 보안을 더욱 강화할 수 있다.

 

 

 

 


 

 

 

 

 

1. IAM 사용자 생성

IAM 사용자는 AWS 리소스에 액세스할 수 있는 개별적인 계정이며, 권한(Policy)을 부여하여 접근을 제한할 수 있다.

 

 

IAM 사용자(User) 추가하기

1️⃣ AWS 콘솔 접속IAM 서비스 이동

2️⃣ 사용자(User) 선택사용자 추가(Add user)

 

3️⃣ 사용자 세부 정보 입력

  • 사용자 이름 입력 (예: IAM_USER01)
  • AWS Management Console 액세스 설정 (프로그래밍 방식 액세스 및 AWS 콘솔 액세스 선택 가능)
  • 초기 비밀번호 설정

 

4️⃣ 그룹(Group) 생성 및 추가

  • 관리자 그룹(AdministratorAccess)을 생성하여 사용자를 추가할 수도 있다.
  • 또는 특정 권한만 부여할 수도 있음 (예: EC2FullAccess, S3ReadOnlyAccess)

 

5️⃣ 태그 추가(선택 사항)

  • 사용자의 역할이나 부서 등을 태그로 지정 가능

 

6️⃣ 설정 검토 후 IAM 사용자 생성

  • 생성된 IAM 사용자는 AWS 리소스에 접근할 수 있는 사용자 계정이 된다.

 

7️⃣ IAM 사용자 로그인 URL 확인

  • 생성된 IAM 사용자는 다음 URL을 통해 로그인할 수 있음
https://aws_account_id.signin.aws.amazon.com/console
  • .csv 다운로드 버튼을 클릭하여 엑세스 키(Access Key ID 및 Secret Access Key)를 저장

 

 

 

중요

  • 보안 액세스 키(Secret Access Key)는 한 번만 확인 가능
  • 분실하면 새 키를 생성해야 함
  • 절대 공유 금지 (유출 시 AWS 리소스 해킹 위험)

사용자 클릭
사용자 추가
사용자 정보 세부 설정!!

 

그룹 생성!

 

그룹 이름을 만들고 ‘AdministratorAccess 를 체크한다. 관리자 권한을 해당 그룹에 부여하는 것이다. [그룹 생성] 을 클릭한다.
이제 생성된 관리자 그룹에 사용자를 추가하겠다. [다음: 태크] 를 클릭한다.
사용자 세부 정보와 그룹이름을 확인하고 [사용자 만들기] 를 클릭한다.

 

밑줄 친 위치에는 사용자의 콘솔 액세스 주소를 알려준다.
IAM_USER01 사용자가 생성된 것을 볼 수 있다. 앞으로는 이 IAM 유저로 로그인하여 네트워크를 구성할 수 있고, 루트 계정은 안전하게 보관할 수 있다.




 

 

 

 

IAM 정책(Policy) 적용

IAM 정책은 JSON 형식으로 작성되며, 특정 사용자가 AWS 리소스에 접근할 수 있는 권한을 부여한다.

 

 

정책 예시: S3 ReadOnly 접근 권한

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::example-bucket",
        "arn:aws:s3:::example-bucket/*"
      ]
    }
  ]
}

 

 
 

설명

  • Effect: Allow → 해당 액션을 허용
  • Action: "s3:GetObject", "s3:ListBucket"S3 객체 가져오기 및 목록 조회 가능
  • Resource: "arn:aws:s3:::example-bucket" → 특정 S3 버킷에 적용

이러한 정책을 사용하면 사용자가 읽기 전용 권한만 가지게 되어 데이터 보호가 가능하다.

 

 

 

 

 

 

3. 루트 계정 보안 강화를 위한 MFA 설정

IAM 사용자를 활용하는 주요 목적 중 하나는 루트 계정 사용을 최소화하고 보안을 강화하는 것이다.
AWS MFA(Multi-Factor Authentication)를 사용하여 추가 인증을 요구할 수 있다.

 

MFA 활성화 절차

1️⃣ IAM 콘솔 접속IAM 대시보드로 이동

2️⃣ [루트 계정에서 MFA 활성화] 클릭

3️⃣ [MFA 관리] 버튼 선택

 

4️⃣ MFA 유형 선택

  • 가상 MFA 디바이스 선택 (Google Authenticator 또는 Authy 사용)
  • QR 코드 스캔 후 MFA 코드 2개 입력
  • [MFA 할당] 클릭

 

성공 메시지가 나오면 MFA 활성화 완료! 


이제 AWS 루트 계정으로 로그인 시 MFA 코드 입력이 필수가 된다.

 

 

MFA 활성화 후 AWS 로그인 과정

  1. AWS 로그인 화면에서 루트 계정 이메일 및 비밀번호 입력
  2. Google Authenticator 앱에서 MFA 코드 확인
  3. MFA 코드 입력 후 로그인 완료

[멀티 팩터 인증(MFA)] -> [MFA 활성화] 를 클릭
가상 MFA 디바이스를 체크하고 [계속] 을 클릭

 

스마트폰에서 [Google OTP] 를 설치하고 [바코드 스캔] 을 이용하여 QR코드를 스캔하면 MFA 코드가 생성된다. 연속된 MFA코드 2개를 입력하고 [MFA 할당] 을 클릭합니다.

 

위와 같은 창이 생기면 성공적으로 MFA가 할당된 것이다. 이제 루트 계정으로 로그인을 할 때는 MFA 인증을 추가로 거쳐야만 로그인할 수 있다.

 

루트 계정으로 로그인 시 MFA 코드를 입력하라는 화면이 뜬다. Google OTP에서 해당 MFA 코드를 입력하면 로그인할 수 있다.

 

 

 

 

 

 

 

4. IAM 역할(Role) 생성 및 사용

IAM 역할(Role)은 사용자가 아닌 서비스(AWS Lambda, EC2, ECS 등)가 AWS 리소스에 접근할 수 있도록 권한을 부여하는 것이다.

 

 

IAM 역할 생성 방법

1️⃣ IAM 콘솔 이동역할(Role) 클릭

 

2️⃣ 새 역할(Role) 생성

  • AWS 서비스 (예: EC2) 선택
  • 적절한 정책(예: AmazonS3FullAccess) 추가
  • 역할 이름 지정 후 생성

 

 

IAM 역할을 EC2에 할당하는 방법

  1. EC2 인스턴스 생성 시 IAM 역할을 선택
  2. 또는 기존 인스턴스에 역할을 할당 (AWS CLI 사용 가능)
aws ec2 associate-iam-instance-profile --instance-id i-12345678 --iam-instance-profile Name=MyIAMRole

 

 

 

 

 


 

 

 

 

 

 

마무리

IAM을 사용하여 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있다.
IAM 사용자(User) 및 그룹(Group)을 생성하여 AWS 접근 권한을 관리한다.
정책(Policy)을 활용하여 최소 권한 원칙을 적용한다.
MFA를 설정하여 루트 계정의 보안을 강화한다.
IAM 역할(Role)을 생성하여 AWS 서비스가 다른 AWS 리소스에 접근할 수 있도록 한다.

 

 

IAM을 올바르게 설정하면 AWS 계정 보안을 한층 더 강화할 수 있다!

 

 

 

 

 

 

 


Reference

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'AWS' 카테고리의 다른 글

AWS IAM이란?  (0) 2023.03.30
AWS S3 권한이란?  (0) 2023.03.29
AWS S3란?(개념, 속성)  (0) 2023.03.28
AWS S3 (Simple Storage Service) 개요 및 활용 방법  (0) 2022.02.13
AWS EC2 인스턴스 생성  (0) 2022.02.07