기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IAM 루트 사용자 활동 모니터링
작성자: Mostefa Brougui(AWS)
코드 리포지토리: aws-iam-root-user -활동 모니터 | 환경: PoC 또는 파일럿 | 기술: 보안, 자격 증명, 규정 준수, 관리 및 거버넌스 |
워크로드: 기타 모든 워크로드 | AWS 서비스: 아마존 EventBridge, AWS Lambda, 아마존 SNS, AWS ID 및 액세스 관리 |
요약
모든 Amazon Web Services(AWS) 계정에는 루트 사용자가 있습니다. AWS Identity and Access Management(IAM)의 보안 모범 사례로서, 루트 사용자만 수행할 수 있는 작업을 완료하는 데 루트 사용자를 사용하는 것이 좋습니다. 이러한 작업의 전체 목록은 일반 참조의 루트 사용자 보안 인증이 필요한 작업을 참조하세요. 루트 사용자는 모든 AWS 리소스 및 결제 정보에 대한 전체 액세스 권한을 가지므로 이 계정을 사용하지 말고 루트 사용자 보안 인증 정보가 손상되었음을 나타내는 활동이 있는지 모니터링하는 것이 좋습니다.
이 패턴을 사용하여 IAM 루트 사용자를 모니터링하는 이벤트 기반 아키텍처
IAM 루트 사용자 자격 증명을 사용하면 CloudWatch Amazon과 AWS는 각각 로그와 트레일에 활동을 CloudTrail 기록합니다. 스포크 계정에서 Amazon EventBridge 규칙은 이벤트를 허브 계정의 중앙 이벤트 버스로 보냅니다. 허브 계정에서 EventBridge 규칙은 이벤트를 AWS Lambda 함수로 보냅니다. 이 함수는 루트 사용자 활동을 알려주는 Amazon Simple Notification Service(SNS) 주제를 사용합니다.
이 패턴에서는 AWS CloudFormation 템플릿을 사용하여 스포크 계정에 모니터링 및 이벤트 처리 서비스를 배포합니다. HashiCorp Terraform 템플릿을 사용하여 허브 계정에 이벤트 관리 및 알림 서비스를 배포합니다.
사전 조건 및 제한 사항
사전 조건
AWS 환경에 AWS 리소스를 배포할 수 있는 권한.
스택 세트를 배포할 수 있는 권한. CloudFormation 자세한 내용은 스택 세트 작업의 사전 요구 사항 (CloudFormation 문서) 을 참조하십시오.
Terraform 설치 및 사용할 준비 완료. 자세한 내용은 시작하기 – AWS
(Terraform 설명서)를 참조하세요. 각 스포크 계정의 기존 트레일. 자세한 내용은 AWS 시작하기 CloudTrail (CloudTrail 설명서) 를 참조하십시오.
트레일은 CloudWatch Logs로 이벤트를 전송하도록 구성되어 있습니다. 자세한 내용은 CloudWatch 로그로 이벤트 전송 (CloudTrail 문서) 을 참조하십시오.
허브 및 스포크 계정은 AWS Organizations에서 관리해야 합니다.
아키텍처
다음 다이어그램은 구현의 구성 요소를 보여 줍니다.
IAM 루트 사용자 자격 증명을 사용하는 경우 CloudWatch 로그와 트레일에 각각 활동을 CloudTrail 기록하십시오.
스포크 계정에서 EventBridge 규칙은 허브 계정의 중앙 이벤트 버스로 이벤트를 전송합니다.
허브 계정에서 EventBridge 규칙은 Lambda 함수로 이벤트를 전송합니다.
Lambda 함수는 루트 사용자 활동을 알려주는 Amazon SNS 주제를 사용합니다.
도구
서비스
AWS는 AWS CloudFormation 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및 지역 전반의 수명 주기 전반에 걸쳐 리소스를 관리할 수 있도록 지원합니다.
AWS는 AWS 계정의 거버넌스, 규정 준수 및 운영 위험을 감사할 수 있도록 CloudTrail 지원합니다.
Amazon CloudWatch Logs를 사용하면 모든 시스템, 애플리케이션 및 AWS 서비스의 로그를 중앙 집중화하여 로그를 모니터링하고 안전하게 보관할 수 있습니다.
EventBridgeAmazon은 다양한 소스의 실시간 데이터와 애플리케이션을 연결하는 데 도움이 되는 서버리스 이벤트 버스 서비스입니다. AWS Lambda 함수, API 대상을 사용하는 HTTP 간접 호출 엔드포인트 또는 다른 AWS 계정의 이벤트 버스를 예로 들 수 있습니다.
AWS Identity and Access Management(IAM)를 사용하면 사용자에 대해 인증 및 권한 부여를 제어함으로써 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있습니다.
AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.
Amazon Simple Notification Service(Amazon SNS)를 사용하면 웹 서버 및 이메일 주소를 포함하여 게시자와 클라이언트 간의 메시지 교환을 조정하고 관리할 수 있습니다.
기타 도구 및 서비스
Terraform
은 구성 파일 형태의 코드를 사용하여 클라우드 인프라 및 리소스를 프로비저닝하고 관리하는 CLI 애플리케이션입니다.
코드 리포지토리
이 패턴의 소스 코드와 템플릿은 GitHub 리포지토리에서
허브 계정에 배포하는 리소스가 포함된 Terraform 템플릿
스포크 계정에서 스택 세트 인스턴스로 배포하는 CloudFormation 템플릿입니다.
리포지토리의 전체 구조는 다음과 같습니다.
. |__README.md |__spoke-stackset.yaml |__hub.tf |__root-activity-monitor-module |__main.tf # contains Terraform code to deploy resources in the Hub account |__iam # contains IAM policies JSON files |__ lambda-assume-policy.json # contains trust policy of the IAM role used by the Lambda function |__ lambda-policy.json # contains the IAM policy attached to the IAM role used by the Lambda function |__outputs # contains Lambda function zip code
에픽 섹션에서는 템플릿 배포 step-by-step 지침을 제공합니다.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
샘플 코드 리포지토리를 복제합니다. |
| 일반 AWS |
TerraForm 템플릿을 업데이트합니다. |
| 일반 AWS |
리소스를 AWS 허브 계정에 배포합니다. |
| 일반 AWS |
작업 | 설명 | 필요한 기술 |
---|---|---|
템플릿을 배포하세요. CloudFormation |
자세한 내용 및 지침은 스택 세트 생성 (CloudFormation 설명서) 을 참조하십시오. | 일반 AWS |
작업 | 설명 | 필요한 기술 |
---|---|---|
루트 사용자 보안 인증을 사용합니다. |
| 일반 AWS |
관련 리소스
추가 정보
GuardDutyAmazon은 로그를 분석하고 처리하여 AWS 환경에서 예상치 못한 잠재적 무단 활동을 식별하는 지속적 보안 모니터링 서비스입니다. 이 솔루션의 대안으로 GuardDuty, 활성화한 경우 루트 사용자 자격 증명이 사용되면 알림을 받을 수 있습니다. GuardDuty 결과는 이며Policy:IAMUser/RootCredentialUsage
, 기본 심각도는 낮음입니다. 자세한 내용은 Amazon GuardDuty 조사 결과 관리를 참조하십시오.