AWS 계정 간 CloudTrail 로그 파일 공유 - AWS CloudTrail

AWS 계정 간 CloudTrail 로그 파일 공유

이 단원에서는 여러 AWS 계정 간에 CloudTrail 로그 파일을 공유하는 방법을 설명합니다. 모든 로그 파일이 단일 Amazon S3 버킷에 수신된다고 가정합니다. 이것이 CloudTrail 콘솔에서 생성된 추적에 대한 기본 설정입니다. 첫 번째 시나리오에서는 Amazon S3 버킷으로 전송된 로그 파일을 생성한 계정에 읽기 전용 액세스를 부여하는 방법을 알아봅니다. 두 번째 시나리오에서는 사용자 대신 파일을 분석할 수 있는 타사 계정에 모든 로그 파일에 대한 액세스를 부여하는 방법을 알아봅니다.

여러 AWS 계정 간에 로그 파일을 공유하려면 다음과 같은 일반적인 단계를 수행해야 합니다. 이 단계는 이 단원의 뒷부분에서 자세히 설명합니다.

  • 로그 파일을 공유할 각 계정에 대해 IAM 역할을 생성합니다.

  • 각 IAM 역할에 대해 로그 파일을 공유할 계정에 읽기 전용 액세스를 부여하는 액세스 정책을 생성합니다.

  • 각 계정의 IAM 사용자가 프로그래밍 방식으로 적절한 역할을 수임하고 로그 파일을 검색하도록 합니다.

이 단원에서는 서로 다른 두 가지 공유 시나리오 컨텍스트에서 앞의 단계를 안내합니다. 하나는 로그 파일을 생성한 각 계정에 로그 파일에 대한 액세스를 부여하는 시나리오이고 다른 하나는 로그 파일을 타사와 공유하는 시나리오입니다. 두 시나리오에서 수행하는 단계는 대부분 동일하지만 IAM 역할이 각 계정에 부여하는 권한의 종류가 다르다는 것이 중요한 차이점입니다. 즉, 계정에 해당 계정의 로그 파일만 읽을 수 있는 권한을 부여하거나 계정에 모든 로그 파일을 읽을 수 있는 권한을 부여할 수 있습니다. IAM 역할의 권한 관리에 대한 자세한 내용은 IAM 사용 설명서역할(위임 및 연동)을 참조하십시오.

시나리오 1: 로그 파일을 생성한 계정에 액세스 부여

이 시나리오에서는 기업이 두 개의 사업 부문으로 구성되어 있고 세 개의 AWS 계정을 유지 관리한다고 가정합니다. 첫 번째 계정인 계정 A는 최상위 계정입니다. 예를 들어 이 계정은 기업 IT 부서에서 관리하며 따라서 모든 다른 부서 및 사업 부문의 로그 파일을 단일 버킷 내에 수집하는 작업을 담당할 수 있습니다. 다른 두 계정인 B와 C는 기업의 사업 부문에 해당합니다.

이 시나리오에서는 다음 그림과 같이 모든 세 계정의 로그 파일이 단일 Amazon S3 버킷으로 전송되도록 이미 구성했으며 계정 A가 버킷에 대한 모든 권한을 가지고 있다고 가정합니다.


                    모든 로그 파일이 단일 버킷 상태에 놓임

Amazon S3 버킷에 계정 A, B, C가 생성한 로그 파일이 포함되지만 처음에는 계정 B와 C에 계정 B와 C가 생성한 로그 파일에 대한 액세스가 없습니다. 다음 그림과 같이 각 사업 부문에 사업 부문이 생성한 로그 파일에 대한 읽기 전용 액세스를 부여합니다.


                        로그 파일에 액세스 부여

계정 B와 C가 생성한 로그 파일에 읽기 전용 액세스를 부여하려면 Amazon S3 버킷에 대한 모든 권한을 가지고 있는 계정 A에서 다음을 수행해야 합니다.

  • 계정 B에 대해 IAM 역할을 하나 생성하고 계정 C에 대해 IAM 역할을 하나 더 생성합니다. 방법: 역할 생성

  • 계정 B에 대해 생성된 IAM 역할에 대해 계정 B가 생성한 로그 파일에 대한 읽기 전용 액세스를 부여하는 액세스 정책을 생성합니다. 계정 C에 대해 생성된 IAM 역할에 대해 계정 C가 생성한 로그 파일에 대한 읽기 전용 액세스를 부여하는 액세스 정책을 생성합니다. 방법: 소유 계정에 대해 액세스 권한을 부여하는 액세스 정책 생성

  • 계정 B의 IAM 사용자가 계정 B에 대해 생성된 역할을 프로그래밍 방식으로 수임하도록 합니다. 계정 C의 IAM 사용자가 계정 C에 대해 생성된 역할을 프로그래밍 방식으로 수임하도록 합니다. 각 IAM 사용자에게는 해당 계정 소유자가 역할을 수임할 수 있는 권한이 부여되어야 합니다. 방법: IAM 사용자에 대한 권한 정책 생성

  • 마지막으로, 권한을 부여하는 계정 소유자는 관리자여야 하고 수임될 계정 A의 역할 ARN을 알고 있어야 합니다. 방법: AssumeRole 호출

그러면 계정 B와 계정 C의 IAM 사용자가 프로그래밍 방식으로 자신의 로그 파일을 검색할 수 있습니다. 다른 계정의 로그 파일은 검색할 수 없습니다.

시나리오 2: 모든 로그에 액세스 부여

이 시나리오에서는 기업의 구조가 이전 시나리오와 동일하다고(두 개의 사업 부문으로 구성되어 있고 세 개의 AWS 계정을 유지 관리) 가정합니다. 첫 번째 계정인 계정 A는 최상위 계정입니다. 예를 들어 이 계정은 기업 IT 부서에서 관리하며 따라서 모든 다른 로그 파일을 단일 버킷 내에 배치하는 작업을 담당할 수 있습니다. 다른 두 계정인 B와 C는 기업의 각 사업 부문에 해당합니다.

이전 시나리오와 마찬가지로 이 시나리오에서는 모든 세 계정의 로그 파일이 단일 Amazon S3 버킷으로 전송되도록 이미 구성했으며 계정 A가 버킷에 대한 모든 권한을 가지고 있다고 가정합니다.

마지막으로, 기업이 모든 계정(A, B, C)의 로그 파일을 타사와 공유하려 한다고 가정합니다. 다음 그림과 같이 타사는 계정 Z라는 AWS 계정을 가지고 있습니다.


                    계정 A, B, C의 로그 파일을 읽는 계정 Z

기업의 모든 로그 파일을 계정 Z와 공유하려면 Amazon S3 버킷에 대한 모든 권한을 가지고 있는 계정 A에서 다음을 수행해야 합니다.

  • 계정 Z에 대해 IAM 역할을 생성합니다. 방법: 역할 생성

  • 계정 Z에 대해 생성된 IAM 역할에 대해 계정 A, B, C가 생성한 로그 파일에 대한 읽기 전용 액세스를 부여하는 액세스 정책을 생성합니다. 방법: 타사에 대해 액세스 권한을 부여하는 액세스 정책 생성

  • 계정 Z의 IAM 사용자가 프로그래밍 방식으로 적절한 역할을 수임한 다음 적절한 로그 파일을 검색하도록 합니다. IAM 사용자에게는 계정 Z의 소유자가 역할을 수임할 수 있는 권한이 부여되어야 합니다. 방법: IAM 사용자에 대한 권한 정책 생성. 또한, 권한을 부여하는 계정 소유자는 관리자여야 하고 수행될 계정 A의 역할 ARN을 알고 있어야 합니다. 방법: AssumeRole 호출