AWS IAM Access Analyzer 에 대해 알아보았습니다

AWS IAM Access Analyzer 에 대해 알아보았습니다

AWS IAM의 기능인 IAM Access Analyzer에 대하여 알아보는 글입니다.
Clock Icon2025.01.28

안녕하세요 클래스메소드의 이수재입니다.

AWS를 이용하다보면 환경을 구축하기 위해 생성한 IAM 엔티티의 권한을 제대로 설계하지 못하고 리소스를 생성하거나 의도치않게 S3 버킷의 정책을 과도하게 공개해버리는 경우가 있습니다.
AWS에는 의도치않게 최소 권한을 지키지 못한 리소스를 탐색해주는 IAM Access Analyzer란 서비스가 있습니다.
이 글에서는 해당 서비스에 대해 알아보겠습니다.

IAM Access Analyzer란?

최소 권한은 요구 사항의 변화에 따라 적절하게 세분화된 권한을 부여하는 지속적인 여정을 통해 달성할 수 있습니다. IAM Access Analyzer는 권한을 설정, 확인 및 조정할 수 있는 기능을 제공하여 최소 권한을 사용하도록 안내합니다. IAM Access Analyzer는 입증 가능한 보안을 사용하여 외부 액세스를 분석하고 정책이 지정된 기업 보안 표준과 일치하는지 확인합니다. - 공식 문서

IAM Access Analyzer는 리소스에 대한 외부 접근을 분석하고 모니터링하는 보안 서비스입니다.
주요 목적으로는 리소스에 대한 의도하지 않은 외부 접근을 식별하고 최소 권한 원칙을 준수하고 있는지 확인할 수 있도록 지원해줍니다.
결과적으로 AWS 환경의 보안 태세를 강화하는데 도움이 서비스입니다.

주요 기능으로는 다음과 같습니다.

  1. 외부 액세스 감지 : 외부에서 액세스할 수 있는 리소스 검색하고 삭제
  2. 사용하지 않는 액세스 감지 : 사용되지 않는 IAM 사용자/역할/권한 감지
  3. IAM 정책 검증 : 정책이 IAM 모범 사례 및 특정 보안 표준과 일치하는지 검증
  4. 최소 권한 적용 : 액세스 분석 및 정책 검증을 통해 최소 권한을 적용하여 권한을 설정, 확인 및 세분화
  5. IAM 정책 생성 : IAM 사용자/역할의 과거 API 실행 기록에서 IAM 정책 생성

분석기와 아카이브 규칙

IAM Access Analyzer에는 분석기와 아카이브 규칙이라는 리소스 유형이 있습니다.
이 중 주요한 작업을 하는 것은 분석기 입니다.

IAM Access Analyzer를 활성화할 때 전체 조직 또는 계정에 대한 분석기를 생성하게 됩니다.
선택한 조직 또는 계정을 분석기의 신뢰 영역이라고 합니다.

IAM Access Analyzer가 활성화되면 신뢰 영역에서 지원되는 모든 리소스에 적용되는 정책이 분석됩니다.
첫 번째 분석 후 IAM Access Analyzer는 정기적으로 이들 정책을 분석합니다.
새 정책을 추가하거나 기존 정책을 변경한 경우, IAM Access Analyzer는 약 30분 내에 새 정책 또는 업데이트 된 정책을 분석합니다.

지원 리소스

외부 액세스 분석기의 경우 IAM Access Analyzer에서는 IAM Access Analyzer를 활성화한 리전의 AWS 리소스에 적용되는 리소스 기반 정책을 분석합니다.

외부 액세스에 대해 지원하는 리소스 유형 [1]

  • Amazon Simple Storage Service 버킷
  • Amazon Simple Storage Service 디렉터리 버킷
  • AWS Identity and Access Management 역할
  • AWS Key Management Service 키
  • AWS Lambda 함수 및 계층
  • Amazon Simple Queue Service 대기열
  • AWS Secrets Manager 보안 암호
  • Amazon Simple Notification Service(Amazon SNS) 주제
  • Amazon Elastic Block Store 볼륨 스냅샷
  • Amazon Relational Database Service DB 스냅샷
  • Amazon Relational Database Service DB 클러스터 스냅샷
  • Amazon Elastic 컨테이너 레지스트리 리포지토리
  • Amazon Elastic File System 파일 시스템
  • Amazon DynamoDB Streams
  • Amazon DynamoDB 테이블

각 서비스에 대한 분석기의 작동에 대해서는 공식 문서를 참고해주세요.

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/access-analyzer-resources.html

미사용 액세스 분석기는 IAM 사용자 및 역할만 지원합니다.

대략적인 작동 방식

IAM Access Analyzer는 외부 액세스 조사와 미사용 액세스 조사에 대해 다른 접근 방식을 가지고 있습니다.

외부 액세스 조사의 경우 Zelkova라는 기술을 사용하여 IAM 정책을 분석하고 리소스에 대한 외부 액세스를 식별합니다.
Zelvoka는 자동화된 추론 엔진이며 정책과 함께 세트로 질문(쿼리) [2] 을 하고 그 결과를 백그라운드에서 처리합니다.
그리고 이 정책이 해당 액세스를 허가하는지 아닌지 결과를 얻을 수 있습니다.

Zelkova는 AWS Lambda에 의해 호스팅되며 서버리스 환경에서 실행됩니다.

미사용 액세스 조사의 경우 분석기를 생성하는 동안 지정된 일수를 기준으로 선택한 계정 또는 조직 내의 IAM 엔터티에 대해 생성됩니다.
다음 조건 중 하나가 충족되는 경우 다음 번에 분석기가 엔터티를 스캔할 때 새로운 조사 결과가 생성됩니다.

  • 지정된 일수 동안 역할이 비활성 상태입니다.
  • 미사용 권한, 미사용 사용자 암호 또는 미사용 사용자 액세스 키가 지정된 일수를 초과했습니다.

또한 외부 액세스 조사 결과를 생성하는 분석기를 이미 생성했더라도 역할에 미사용 액세스 조사 결과에 대한 별도의 분석기를 만들어야 합니다.

비용

외부 액세스 분석은 추가 비용 없이 이용이 가능합니다.

미사용 액세스 분석은 매월 분석기별로 분석된 IAM 역할 및 사용자 수를 기준으로 요금이 청구됩니다.
만약 여러 리전에 걸쳐 미사용 액세스 분석기를 생성하면 각 분석기에 대한 요금이 부과됩니다. [3]
또한 서비스 연결 역할은 미사용 액세스 활동이 분석되지 않으며 분석된 총 IAM 역할 수에 포함되지 않습니다.

https://aws.amazon.com/ko/iam/access-analyzer/pricing/

사용 방법

IAM 콘솔의 메뉴에서 [액세스 보고서] 탭을 보시면 [액세스 분석기] 메뉴가 있습니다.
처음에 아무것도 활성화되어 있지 않은 상황이라면 분석기를 생성할 수 있습니다.
이후 분석기를 삭제하거나 추가는 [분석기 설정] 메뉴에서 할 수 있습니다.

생성 후에는 분석 결과가 표시됩니다.

222

각 분석 결과를 클릭하면 상세한 내용을 확인할 수 있습니다.
내용을 확인한 후 해당 설정이 의도한 설정인 경우에는 화면 가장 아래의 아카이브 를 클릭하여 상태를 변경합니다.
아카이브 상태가 아닌 항목은 해당 리소스로 이용하여 적절한 설정으로 변경합니다.

333

항목의 정리가 끝났다면 EventBridge와 AWS SNS를 이용한 Access Analyzer 결과 모니터링을 추천합니다.

EventBridge에 송신되는 이벤트 내용에 대해서는 다음 공식 문서를 참고해주세요.
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/access-analyzer-eventbridge.html

EventBridge와 AWS SNS를 연계하는 방법은 다음 공식 문서를 참고해주세요.
https://docs.aws.amazon.com/ko_kr/eventbridge/latest/userguide/eb-s3-object-created-tutorial.html

사례 소개

서비스의 이미지를 잡기 위해 사용되는 사례를 몇 가지 소개하도록 하겠습니다.

가장 많이 사용하는 기능으로는 정책 검증이 있습니다.
별도의 분석기를 생성할 필요 없이 IAM 에서 새로운 IAM 정책 생성 시 정책에 과도한 권한이 있는지 자동으로 검사해줍니다.
만약 보안 모범 사례를 벗어나는 설정 발견 시 경고가 표시됩니다.

자세한 내용은 아래 공식 문서를 참고해주세요.
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/access-analyzer-checks-validating-policies.html

다른 사례로는 S3 버킷의 관리가 있습니다.
만약 회사의 중요한 데이터가 저장된 S3 버킷이 있는 경우, 이 버킷이 외부에 공개될 가능성이 없는지 검토가 필요합니다.
이러한 경우 외부 액세스 분석을 실행하여 해당 버킷이 다른 AWS 계정이나 외부에 공개되어 있음을 감지하면 관리자에게 알림을 보내고 접근 권한을 수정할 수 있도록 할 수 있습니다.

외부에 공유된 IAM 역할을 검증하는 경우에도 사용됩니다.
만약 외부 파트너사와 협업을 위해 만든 IAM 역할이 있는 경우,
이 역할이 어떤 계정에서 사용 가능한지 확인해야 한다면 외부 액세스 분석기를 사용하여 검토가 가능합니다.
필요에 따라 더 이상 협업하지 않는 파트너사의 접근 권한은 삭제하는 식으로 진행됩니다.

마무리

AWS 환경을 사용하면 보안 책임의 일부분은 사용자에게 있습니다.
이러한 부분들을 면밀히 검토하여 보안사고가 일어나지 않도록 Access Analyzer를 사용하는 것을 권장하고 있으므로 사용을 검토해보는 것이 좋다고 생각합니다.

긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 must01940 지메일로 보내주시면 감사합니다.

脚注
  1. 공식 문서 발췌 ↩︎

  2. S3의 버킷 정책이 퍼블릭인지? Config에서 암호화되지 않은 쓰기를 막고 있는지 등 ↩︎

  3. IAM 역할과 사용자는 리전에 상관없이 전역적인 엔티티이므로 여러 리전을 포괄하는 분석기가 생성될 수 있습니다. ↩︎

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.