top of page

AWS IAM 실전 가이드: 4가지 사례로 배우는 IAM 설정과 실습 (2/2)

AWS IAM 실전 가이드: 4가지 사례로 배우는 IAM 설정과 실습 (2/2)

AWS IAM 실전 가이드: 4가지 사례로 배우는 IAM 설정과 실습 (2/2)

Written by Hyojung Yoon


안녕하세요! 다시 돌아온 스마일샤크 IAM 가이드입니다.

이번 편에서는 실제 비즈니스 상황에서 IAM을 어떻게 활용할 수 있는지 살펴보고 직접 실습할 수 있는 내용을 준비했습니다. 자주 물어보는 질문과 함께 현장에서 바로 적용할 수 있는 핵심 노하우를 알아보도록 하겠습니다.


그럼 바로 시작하겠습니다!



실전 IAM 설정: 사례로 배우는 IAM

실제 비즈니스 상황에서 IAM을 어떻게 활용할 수 있는지 4가지 사례를 통해 알아보겠습니다.


1. 루트 계정 보안 강화하기

루트 계정은 AWS 계정의 모든 권한을 가진 "슈퍼 유저" 계정이라고 할 수 있습니다. 따라서 보안에 특별히 신경을 써야 합니다.


Q: 루트 계정을 안전하게 관리하는 방법이 궁금해요. 어떤 설정을 해야 할까요?

A: 루트 계정의 안전한 관리를 위해서는 다중 인증(MFA) 활성화, 액세스 키 삭제, 그리고 강력한 암호 정책 설정이 필수적입니다. 이러한 설정을 통해 무단 접근 위험을 크게 줄일 수 있습니다.

실습: 루트 계정 보안 설정

1) MFA(다중 인증) 활성화
  • AWS 콘솔 로그인 > 우측 상단 계정 이름 클릭 > '보안 자격 증명'

MFA(다중 인증) 활성화: AWS 콘솔 로그인 > 우측 상단 계정 이름>보안 자격 증명 클릭

  • 'MFA 할당' 선택 > 디바이스 이름을 입력하고 인증 관리자 앱 선택 > 다음을 선택합니다.


  • 가상 MFA 디바이스의 호스팅에 사용되는 앱을 확인한 후, QR코드 표시를 클릭합니다.

  • 앱에서 생성된 숫자를 'MFA 코드 1'에 입력 > 다음에 생성된 숫자를 'MFA 코드 2'에 입력 > 'MFA 추가'를 클릭합니다.


2) 루트 사용자 액세스 키 삭제 (있는 경우)
  • '내 보안 자격 증명' > '액세스 키' 섹션

  • 만약 기존 액세스 키가 있다면 '삭제'를 선택합니다.

기존 액세스 키가 있다면 루트 사용자 액세스 키를 삭제합니다.

3) 강력한 암호 정책 설정
  • IAM 대시보드 > '계정 설정'

  • 암호 정책을 아래와 같이 설정합니다.

    • 사용자 지정 > 최소 14자, 대소문자, 숫자, 특수문자 포함

💡 팁: 루트 계정은 초기 설정과 몇몇 중요한 작업에만 사용하고, 일상적인 작업은 IAM 사용자 계정으로 수행하세요.

2. 개발팀을 위한 IAM 구성

개발팀이 필요한 AWS 리소스에 안전하게 접근할 수 있도록 IAM을 구성하는 방법을 알아보겠습니다.


Q: 개발 팀원들에게 필요한 AWS 리소스 접근 권한을 어떻게 효율적으로 관리할 수 있을까요?

A: 리소스 접근 권한은 IAM 그룹을 생성하고, 해당 그룹에 필요한 정책을 연결한 뒤에 개발자들을 그룹에 추가하는 방식으로 관리할 수 있습니다. 이 방법을 통해 일괄적인 권한 관리가 가능해집니다.

실습: 개발팀 IAM 설정

1) IAM 그룹 생성 및 정책 연결
  • IAM 대시보드>'그룹'을 선택하고 '그룹 생성'을 클릭합니다.


  • 그룹 이름을 입력합니다. (예시: 'DevTeamA')

  • '그룹에 사용자 추가'에서 사용자 이름을 입력하고 생성한 그룹인 'DevTeamA'를 선택합니다.

  • 권한 정책 연결에서 'AWS 관리형 정책'을 선택하고 필요한 정책을 검색하여 추가합니다.

    • 예: AmazonS3ReadOnlyAccess, AmazonEC2FullAccess

  • '다음 단계'를 클릭하고 그룹 생성을 완료합니다.

그룹 이름을 입력하고, 그룹에 사용자 추가와 권한 정책을 연결합니다.

2) 액세스 키 생성
  • 사용자 생성 완료 후 '보안 자격 증명' 탭으로 들어갑니다.

  • '액세스 키 만들기'를 선택하여 액세스 키를 생성합니다.

내 보안 자격 증명으로 들어가 액세스 키를 만듭니다.
💡 팁: 정기적으로 액세스키를 교체하고, 사용하지 않는 키는 즉시 비활성화하세요.

3. 다중 계정 환경에서의 IAM 관리

대규모 조직에서는 여러 AWS 계정을 사용하는 경우가 많습니다. 이런 환경에서 IAM을 효과적으로 관리하는 방법을 알아보겠습니다.


Q: 여러 AWS 계정을 사용 중인데, 이를 효과적으로 관리하는 방법이 있을까요?

A: AWS Organizations를 사용하여 중앙 집중식 관리를 구현하고, 교차 계정 IAM 역할을 활용해 계정 간 안전한 접근을 구현할 수 있습니다.

실습: AWS Organizations 및 교차 계정 접근 설정

1) AWS Organizations 설정
  • AWS Organizations 콘솔에 접속합니다.

  • '조직 생성'을 선택한 후 설정을 완료합니다.

AWS Organizations 콘솔에서 조직을 생성한다

2) 교차 계정 역할 생성
  • 대상 계정의 IAM 콘솔에 접속합니다.

  • '역할'을 선택하고 '역할 생성'을 클릭합니다.


  • 'AWS 계정' > '다른 AWS 계정' 선택 후 접근을 허용할 계정 ID를 입력합니다.

  • 적절한 권한 정책을 연결합니다. (예: ReadOnlyAccess)


3) 교차 계정 접근 테스트
  • 소스 계정에서 AWS CLI를 사용합니다.

aws sts assume-role --role-arn arn:aws:iam::TARGET_ACCOUNT_ID:role/ROLE_NAME --role-session-name TEST_SESSION

4. 외부 협력 업체 접근 관리

외부 협력 업체에게 임시로 AWS 리소스 접근 권한을 부여해야 할 때가 있습니다. 이런 경우 IAM 역할을 활용할 수 있습니다.


Q: 외부 협렵 업체에게 일시적으로 AWS 리소스 접근 권한을 부여해야 하는데, 어떻게 하는 것이 가장 안전할까요?

A: IAM 역할을 생성하고, 해당 역할에 필요한 최소한의 권한만 부여한 뒤, AWS STS를 통해 임시 자격 증명을 발급하는 것이 가장 안전합니다.

실습: 외부 협력 업체용 IAM 역할 생성

1) IAM 역할 생성
  • AWS 관리 콘솔에 로그인하여 IAM 서비스로 이동합니다.

  • '역할'을 선택하고, '역할 생성'을 클릭합니다.


  • '다른 AWS 계정'을 선택하고 '계정 ID' 필드에 협력업체의 AWS 계정 ID를 입력합니다.

'다른 AWS 계정'을 선택하고 '계정 ID' 필드에 협력업체의 AWS 계정 ID를 입력합니다.

2) 권한 정책 연결
  • '정책 연결'에서 필요한 정책을 검색하여 추가합니다.

    • 예: AmazonS3ReadOnlyAccess

'정책 연결'에서 필요한 정책을 검색하여 추가합니다.

  • 역할 이름을 입력합니다 (예: ExternalCollaborateRole)

  • 필요한 경우 '태그'를 추가하고, 역할 생성을 클릭합니다.


3) 임시 자격 증명 생성
  • IAM 대시 보드에서 방금 생성한 역할을 찾아 클릭합니다.

IAM 대시 보드에서 방금 생성한 역할을 찾아 클릭합니다.

  • '신뢰 관계' 탭을 선택하고 '신뢰 관계 편집'을 클릭합니다.

  • JSON 정책 문서에서 협력업체의 AWS 계정 ID가 올바르게 설정되어 있는지 확인합니다.

  • '역할 URL 복사' 또는 '이 역할에 대해 링크 보내기' 옵션을 사용해 역할에 접근할 수 있는 URL을 생성합니다.

'신뢰 관계' 탭의 JSON 정책 문서에 협력업체의 AWS 계정ID가 제대로 입력되었는지 확인합니다.

4) 임시 자격 증명 제공
  • 위에서 생성된 역할 URL을 안전한 방법으로 협력 업체에 전달합니다.

  • 협력업체에게 역할 사용방법과 주의사항을 안내합니다.

💡팁: IAM 역할 설정에서 '최대 CLI/API 세션 기간'을 설정하여 임시 자격 증명의 유효 기간을 제한할 수 있습니다. 또한, 역할의 권한을 최소한으로 제한하여 보안을 강화하세요.

IAM 구현의 결과 및 효과

위의 4가지 IAM 실습을 구현함으로써 얻을 수 있는 주요 결과와 효과는 다음과 같습니다.


  1. 보안 강화

    1. 루트 계정 보호로 무단 접근 위험 감소

    2. MFA 사용으로 계정 탈취 위험 최소화

    3. 최소 권한 원칙의 적용으로 전반적인 보안 수준 향상

  2. 효율적인 관리

    1. 그룹 기반 권한 관리로 사용자 관리 간소화

    2. AWS Organizations를 통한 중앙 집중식 다중 계정 관리

    3. 교차 계정 역할을 통한 유연한 리소스 접근 관리

  3. 비용 최적화

    1. 불필요한 권한 제거로 리소스 오남용 방지

    2. 효율적인 리소스 공유로 중복 투자 감소

  4. 규정 준수 및 감사 용이성

    1. 세부적인 권한 제어로 규정 준수 요구사항 충족

    2. CloudTrail을 통한 모든 IAM 활동 로깅으로 감사 및 추적 용이

  5. 협업 강화

    1. 외부 협럭 업체와의 안전한 협업 환경 구축

    2. 프로젝트별, 팀별 맞춤형 권한 설정으로 원활한 협업 지원



IAM 보안 모범 사례

AWS IAM 보안 모범 사례를 따르면 AWS 환경의 전반적인 보안을 크게 향상시킬 수 있습니다.

  1. 루트 계정 사용 최소화: 루트 계정은 계정 생성 및 초기 설정 시에만 사용하고, 이후에는 IAM 관리자 계정을 통해 작업을 수행합니다.

  2. 강력한 비밀번호 정책: 모든 IAM 사용자에게 비밀번호 정책을 적용하여 비밀번호가 쉽게 유추되지 않도록 합니다.

  3. MFA 설정: 모든 사용자 계정에 다중 인증(MFA)을 설정하여 추가적인 보안 계층을 제공합니다.

  4. 정기적인 권한 검토: 정기적으로 IAM 사용자 및 역할의 권한을 검토하고, 불필요한 권한을 제거합니다.

  5. 정책 시뮬레이터 사용: IAM 정책 시뮬레이터를 사용하여 정책이 의도한 대로 작동하는지 확인합니다.

  6. CloudTrail을 통한 모니터링: CloudTrail을 사용하여 IAM 활동을 모니터링하고, 누가 어떤 작업을 했는지 추적합니다.


IAM 문제 해결 및 모니터링

일반적인 IAM 오류와 해결 방법

1. Access Denied 오류

  • 원인: 사용자나 역할이 필요한 권한을 가지지 않았을 때 발생합니다.

  • 해결 방법: 해당 사용자나 역할의 정책을 검토하고 필요한 권한을 추가합니다.


2. InvalidClientTokenId 오류

  • 원인: 액세스 키가 잘못되었거나 만료되었을 때 발생합니다.

  • 해결 방법: IAM 콘솔에서 액세스 키를 확인하고 필요시 새로운 키를 생성합니다.


3. MalfomedPolicyDocument 오류

  • 원인: IAM 정책 문서의 JSON 형식이 잘못되었을 때 발생합니다.

  • 해결 방법: JSON 유효성 검사 도구를 사용하여 정책 문서의 형식을 확인하고 수정합니다.


CloudTrail을 사용한 IAM 활동 모니터링

  • AWS Management Console에서 CloudTrail 서비스로 이동합니다.

  • '추적 생성'을 클릭하여 새로운 추적을 설정합니다.

CloudTrail > 추적생성

  • 추적 이름을 입력하고 모든 리전에 적용할지 선택합니다.

  • 기존 S3 버킷을 선택하거나 새로 생성하여 로그를 저장할 위치를 지정합니다.

  • 원하는 경우 CloudWatch Logs에 로그를 전송하도록 설정할 수 있습니다.


CloudTrail을 통해 IAM 활동을 상세히 모니터링하고, 보안 사고 발생 시 빠르게 대응할 수 있습니다.



자주 묻는 질문 (FAQ)

Q: IAM 사용자와 IAM 역할의 차이점은 무엇인가요?

A: IAM 사용자는 AWS 리소스에 지속적으로 접근할 수 있는 고유한 자격 증명입니다. 주로 특정 개인이나 애플리케이션에 할당됩니다. 반면, IAM 역할은 필요할 때 임시로 사용할 수 있는 권한 세트입니다. 사용자가 특정 작업을 수행하기 위해 일시적으로 AWS 리소스에 접근할 때 유용합니다.


Q: 액세스 키를 얼마나 자주 교체해야 하나요?

A: AWS는 보안 강화를 위해 액세스 키를 90일마다 교체할 것을 권장합니다. 하지만 각 조직의 보안 정책에 따라 더 자주 교체할 수도 있습니다. 정기적인 키 교체는 장기적인 보안 위험을 줄이는 데 도움이 됩니다.


Q: IAM 정책을 작성할 때 주의해야 할 점은 무엇인가요?

A: IAM 정책 작성 시 가장 중요한 것은 '최소 권한 원칙'을 따르는 것 입니다. 이는 작업 수행에 필요한 최소한의 권한만 부여해야한다는 의미입니다. 또한, 와일드카드(*)의 사용을 최소화하고 구체적인 리소스 ARN을 명시하는 것이 좋습니다.


Q: AWS Organizations 사용의 장점은 무엇인가요?

A: AWS Organizations를 사용하면 여러 AWS 계정을 중앙에서 관리할 수 있습니다. 이를 통해 자동화된 계정 생성, 그룹 기반 계정 관리, 정책 기반의 통합 관리 등이 가능해져 대규모 AWS 환경을 더욱 체계적이고 효율적으로 운영할 수 있습니다.


Q: MFA 디바이스를 분실했을 때 어떻게 대처해야 하나요?

A: 루트 계정의 MFA 디바이스를 분실한 경우, AWS 고객 지원 센터에 문의하여 상황을 설명합니다. 고객 지원팀이 본인 확인 절차를 거친 후 MFA를 비활성화할 수 있습니다. 이후 새로운 MFA 디바이스를 등록할 수 있습니다.

IAM 계정일 경우에는 루트 계정이나 관리자 권한이 있는 IAM 계정으로 접속하여 MFA 디바이스를 삭제합니다. 이후 MFA 디바이스를 등록할 수 있습니다.



마무리

이번 AWS IAM 실전 가이드를 통해 실제 비즈니스 상황에서 IAM을 어떻게 활용할 수 있는지 살펴보았습니다.

루트 계정 보안 강화부터 다양한 시나리오에 대한 실습을 통해 IAM의 실질적인 활용법을 익혔습니다.


IAM은 AWS 환경에서 가장 중요한 보안 서비스 중 하나입니다. 올바르게 구성된 IAM은 AWS 리소스를 안전하게 보호하고, 효율적인 접근 제어를 가능케 합니다. 이 가이드에서 다룬 모범 사례들을 적용하면, AWS 환경의 전반적인 보안 수준을 크게 향상시킬 수 있습니다.


보안은 일회성 작업이 아닌 지속적인 프로세스입니다. 정기적으로 IAM 설정을 검토하고, 최신 보안 권장 사항을 체크하며. 여러분의 AWS 환경이 항상 안전하고 효율적으로 운영되기를 바랍니다.


bottom of page