추적 이벤트를 이벤트 데이터 스토어에 복사 - AWS CloudTrail

추적 이벤트를 이벤트 데이터 스토어에 복사

추적 이벤트를 CloudTrail Lake 이벤트 데이터 스토어에 복사하여 추적에 기록된 이벤트의 특정 시점 스냅샷을 생성할 수 있습니다. 추적의 이벤트를 복사해도 추적의 이벤트 로깅 기능에 지장을 주지 않으며 어떤 식으로든 추적은 수정되지 않습니다.

CloudTrail 이벤트를 위해 구성한 기존 이벤트 데이터 스토어에 추적 이벤트를 복사하거나, 새 CloudTrail 이벤트 데이터 스토어를 생성하고, 이벤트 데이터 스토어를 생성할 때, 추적 이벤트 복사 옵션을 선택할 수 있습니다. 기존 이벤트 데이터 스토어에 추적 이벤트를 복사하는 방법에 대한 자세한 내용은 CloudTrail 콘솔을 사용하여 기존 이벤트 데이터 저장소에 추적 이벤트 복사를 참조하세요. 새 이벤트 데이터 스토어 생성에 대한 자세한 내용은 콘솔을 사용하여 CloudTrail 이벤트에 대한 이벤트 데이터 저장소 생성을 참조하세요.

추적 이벤트를 조직 이벤트 데이터 스토어에 복사하는 경우 조직의 관리 계정을 사용해야 합니다. 조직의 위임된 관리자 계정을 사용하여 추적 이벤트를 복사할 수 없습니다.

CloudTrail Lake 이벤트 데이터 스토어에는 요금이 발생합니다. 이벤트 데이터 스토어를 생성할 때 이벤트 데이터 스토어에 사용할 요금 옵션을 선택합니다. 요금 옵션에 따라 이벤트 모으기 및 저장 비용과 이벤트 데이터 스토어의 기본 및 최대 보존 기간이 결정됩니다. CloudTrail 요금 Lake 비용 관리에 대한 자세한 내용은 AWS CloudTrail 요금CloudTrail Lake 비용 관리를 참조하세요.

CloudTrail Lake 이벤트 데이터 스토어에 추적 이벤트를 복사하면, 요금은 이벤트 데이터 스토어에 수집한 압축되지 않은 데이터의 양을 기준으로 발생합니다.

CloudTrail Lake에 추적 이벤트를 복사하면. CloudTrail은 gzip(압축) 형식으로 저장된 로그의 압축을 푼 다음 이벤트 데이터 스토어에 로그에 포함된 이벤트를 복사합니다. 압축되지 않은 데이터의 크기는 실제 S3 스토리지 크기보다 클 수 있습니다. 압축되지 않은 데이터 크기에 대한 일반적인 추정치를 구하려면, S3 버킷의 로그 크기에 10을 곱하면 됩니다.

복사한 이벤트의 시간 범위를 좁혀 비용을 줄일 수 있습니다. 이벤트 데이터 스토어를 복사한 이벤트를 쿼리하기 위해서만 사용하려는 경우, 이벤트 수집을 해제하여 향후 이벤트에 대한 요금이 발생하지 않도록 할 수 있습니다. 자세한 내용은 AWS CloudTrail 요금CloudTrail Lake 비용 관리 섹션을 참조하세요.

시나리오

다음 표는 추적 이벤트를 복사하는 몇 가지 일반적인 시나리오와 콘솔을 사용하여 각 시나리오를 수행하는 방법을 설명합니다.

시나리오 콘솔에서 이 작업을 수행하려면 어떻게 해야 하나요?

새로운 이벤트를 수집하지 않고 CloudTrail Lake의 과거 추적 이벤트를 분석 및 쿼리

새 이벤트 데이터 스토어를 생성하고, 이벤트 데이터 스토어를 생성할 때 Copy trail events(추적 이벤트 복사) 옵션을 선택합니다. 이벤트 데이터 스토어를 만들 때, 수집 이벤트(본 절차의 15단계)를 선택 취소하여 이벤트 데이터 스토어에 추적에 대한 과거 이벤트만 저장하고, 미래 이벤트는 저장하지 않도록 합니다.

CloudTrail Lake 이벤트 데이터 스토어로 기존 추적 교체

이벤트 데이터 스토어가 추적과 동일한 커버리지를 갖도록 추적과 동일한 이벤트 선택기를 사용하여 이벤트 데이터 스토어를 생성합니다.

소스 추적과 대상 이벤트 데이터 스토어 간에 이벤트가 중복되지 않도록 하려면 복사된 이벤트의 날짜 범위를 이벤트 데이터 스토어 생성 이전으로 선택합니다.

이벤트 데이터 스토어가 생성된 후에는 추가 요금이 부과되지 않도록 추적 로깅을 비활성화할 수 있습니다.

추적 이벤트 복사 시의 고려 사항

추적 이벤트를 복사할 때는 다음 요소를 고려합니다.

  • 추적 이벤트를 복사할 때 CloudTrail은 S3 GetObject API 작업을 사용하여 소스 S3 버킷에서 추적 이벤트를 검색합니다. S3 아카이브형 스토리지 클래스, 예를 들어 S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive, S3 Outposts, S3 Intelligent-Tiering Deep Archive 티어 등은 GetObject를 사용하여 액세스할 수 없습니다. 이러한 아카이브된 스토리지 클래스에 저장된 추적 이벤트를 복사하려면 먼저 S3 RestoreObject 작업을 사용하여 복사본을 복원해야 합니다. 아카이브된 객체 복원에 대한 자세한 내용은 Amazon S3 사용 설명서아카이브된 객체 복원 섹션을 참조하세요.

  • 추적 이벤트를 이벤트 데이터 스토어에 복사하면 CloudTrail은 대상 이벤트 데이터 스토어의 이벤트 유형, 고급 이벤트 선택기 또는 AWS 리전의 구성과 관계없이 모든 추적 이벤트를 복사합니다.

  • 기존 이벤트 데이터 스토어에 추적 이벤트를 복사하기 전에 이벤트 데이터 스토어의 요금 옵션과 보존 기간이 사용 사례에 맞게 적절하게 구성되어 있는지 확인합니다.

    • 요금 옵션: 요금 옵션에 따라 이벤트 모으기 및 저장 비용이 결정됩니다. 요금 옵션에 대한 자세한 내용은 AWS CloudTrail 요금이벤트 데이터 스토어 요금 옵션 섹션을 참조하세요.

    • 보존 기간: 보존 기간에 따라 이벤트 데이터가 이벤트 데이터 스토어에 보관되는 기간이 결정됩니다. CloudTrail은 이벤트 데이터 스토어의 보존 기간 내에 있는 eventTime를 가진 추적 이벤트만 복사합니다. 적절한 보존 기간을 결정하려면 복사하려는 가장 오래된 이벤트(일수)와 이벤트 데이터 스토어에 이벤트를 유지할 일수의 합계를 구합니다(보존 기간 = oldest-event-in-days + number-days-to-retain). 예를 들어, 복사 중인 가장 오래된 이벤트가 45일이고 이벤트 데이터 스토어에 이벤트를 추가로 45일 동안 보관하려는 경우 보존 기간을 90일로 설정합니다.

  • 조사를 위해 이벤트 데이터 스토어에 추적 이벤트를 복사하고, 향후 이벤트를 모으지 않으려면 이벤트 데이터 스토어에서 모으기를 중지할 수 있습니다. 이벤트 데이터 스토어를 만들 때, 수집 이벤트(본 절차의 15단계)를 선택 취소하여 이벤트 데이터 스토어에 추적에 대한 과거 이벤트만 저장하고, 미래 이벤트는 저장하지 않도록 합니다.

  • 추적 이벤트를 복사하기 전에 소스 S3 버킷에 연결된 모든 액세스 제어 목록(ACL)을 비활성화하고 대상 이벤트 데이터 스토어의 S3 버킷 정책을 업데이트합니다. S3 버킷 정책 업데이트에 대한 자세한 내용은 추적 이벤트 복사를 위한 Amazon S3 버킷 정책 섹션을 참조하세요. ACL 비활성화에 대한 자세한 내용은 객체 소유권 제어 및 버킷에 대해 ACL 사용 중지를 참조하세요.

  • CloudTrail은 소스 S3 버킷에 있는 Gzip 압축 로그 파일의 추적 이벤트만 복사합니다. CloudTrail은 압축되지 않은 로그 파일 또는 Gzip 이외의 형식을 사용하여 압축된 로그 파일의 추적 이벤트를 복사하지 않습니다.

  • 소스 추적과 대상 이벤트 데이터 스토어 간에 이벤트가 중복되지 않도록 하려면 복사된 이벤트의 시간 범위를 이벤트 데이터 스토어 생성 이전으로 선택합니다.

  • 기본적으로 CloudTrail은 S3 버킷의 CloudTrail 접두사와 CloudTrail 접두사 내의 접두사에 포함된 CloudTrail 이벤트만 복사하고 기타 AWS 서비스의 접두사는 확인하지 않습니다. 다른 접두사에 포함된 CloudTrail 이벤트를 복사하려면 추적 이벤트를 복사할 때 접두사를 선택해야 합니다.

  • 추적 이벤트를 조직 이벤트 데이터 스토어에 복사하려면 조직의 관리 계정을 사용해야 합니다. 위임된 관리자 계정을 사용하여 트레일 이벤트를 조직 이벤트 데이터 스토어에 복사할 수 없습니다.

추적 이벤트 복사에 필요한 권한

추적 이벤트를 복사하기 전에 IAM 역할에 필요한 모든 권한이 있는지 확인합니다. 추적 이벤트를 복사할 기존 IAM 역할을 선택한 경우 IAM 역할 권한을 업데이트하기만 하면 됩니다. 새 IAM 역할을 생성하기로 선택한 경우 CloudTrail은 역할에 필요한 모든 권한을 제공합니다.

소스 S3 버킷에서 데이터 암호화에 KMS 키를 사용하는 경우 KMS 키 정책에서 CloudTrail이 버킷의 데이터를 복호화하도록 허용하는지 확인합니다. 소스 S3 버킷에서 여러 KMS 키를 사용하는 경우 CloudTrail이 버킷의 데이터를 복호화할 수 있도록 각 키의 정책을 업데이트해야 합니다.

추적 이벤트 복사를 위한 IAM 권한

추적 이벤트를 복사할 때 새 IAM 역할을 생성하거나 기존 IAM 역할을 사용할 수 있습니다. 새 IAM 역할을 선택하면 CloudTrail에서 필요한 권한이 있는 IAM 역할을 생성하므로 별도의 조치가 필요하지 않습니다.

기존 역할을 선택하는 경우 IAM 역할의 정책에 따라 CloudTrail이 추적 이벤트를 소스 S3 버킷에서 복사할 수 있는지 확인합니다. 이 섹션에서는 필요한 IAM 역할 권한 및 신뢰 정책의 예제를 제공합니다.

다음 예제에서는 CloudTrail이 추적 이벤트를 소스 S3 버킷에서 복사할 수 있도록 하는 권한 정책을 제공합니다. amzn-s3-demo-bucket, myAccountID, region, prefix, eventDataStoreId를 구성에 대한 적절한 값으로 바꿉니다. myAccountID는 CloudTrail Lake에 사용되는 AWS 계정 ID로, S3 버킷의 AWS 계정 ID 동일하지 않을 수 있습니다.

key-region, KeyAccount IDKeyID를 소스 S3 버킷 암호화에 사용하는 KMS 키 값으로 대체합니다. 원본 S3 버킷이 암호화에 KMS 키를 사용하지 않는다면 AWSCloudTrailImportKeyAccess 문을 생략할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailImportBucketAccess", "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetBucketAcl"], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } }, { "Sid": "AWSCloudTrailImportObjectAccess", "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/prefix", "arn:aws:s3:::amzn-s3-demo-bucket/prefix/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } }, { "Sid": "AWSCloudTrailImportKeyAccess", "Effect": "Allow", "Action": ["kms:GenerateDataKey","kms:Decrypt"], "Resource": [ "arn:aws:kms:key-region:keyAccountID:key/keyID" ] } ] }

다음 예제에서는 CloudTrail이 추적 이벤트를 소스 S3 버킷에서 복사할 수 있는 IAM 역할을 수임하도록 하는 IAM 신뢰 정책을 제공합니다. myAccountID, region, eventDataStoreArn을 구성에 적절한 값으로 바꿉니다. myAccountID는 CloudTrail Lake에 사용되는 AWS 계정 ID로, S3 버킷의 AWS 계정 ID 동일하지 않을 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } } ] }

추적 이벤트 복사를 위한 Amazon S3 버킷 정책

기본적으로 Amazon S3 버킷 및 객체는 프라이빗입니다. 리소스 소유자(버킷을 생성한 AWS 계정)만 버킷과 버킷에 포함된 객체에 액세스할 수 있습니다. 리소스 소유자는 액세스 정책을 작성하여 다른 리소스 및 사용자에게 액세스 권한을 부여할 수 있습니다.

추적 이벤트를 복사하기 전에 CloudTrail이 소스 S3 버킷에서 추적 이벤트를 복사할 수 있도록 S3 버킷 정책을 업데이트해야 합니다.

S3 버킷 정책에 다음 명령문을 추가하여 이러한 권한을 부여할 수 있습니다. roleArnamzn-s3-demo-bucket을 구성에 대해 적절한 값으로 바꿉니다.

{ "Sid": "AWSCloudTrailImportBucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketAcl", "s3:GetObject" ], "Principal": { "AWS": "roleArn" }, "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] },

소스 S3 버킷의 데이터 해독을 위한 KMS 키 정책

소스 S3 버킷에서 데이터 암호화에 KMS 키를 사용하는 경우, KMS 키 정책에서 SSE-KMS 암호화가 활성화된 S3 버킷에서 추적 이벤트를 복사하는 데 필요한 kms:Decryptkms:GenerateDataKey 권한을 CloudTrail에 제공하는지 확인합니다. 소스 S3 버킷에서 여러 KMS 키를 사용하는 경우, CloudTrail 각 키의 정책을 업데이트해야 합니다. KMS 키 정책을 업데이트하면 CloudTrail에서 소스 S3 버킷의 데이터를 복호화하고, 유효성 검사를 실행하여 이벤트가 CloudTrail 표준을 준수하는지 확인하고, 이벤트를 CloudTrail Lake 이벤트 데이터 스토어에 복사할 수 있습니다.

다음 예제는 CloudTrail이 소스 S3 버킷의 데이터를 복호화할 수 있도록 허용하는 KMS 키 정책을 제공합니다. roleArn, amzn-s3-demo-bucket, myAccountID, region, eventDataStoreId를 구성에 대한 적절한 값으로 바꿉니다. myAccountID는 CloudTrail Lake에 사용되는 AWS 계정 ID로, S3 버킷의 AWS 계정 ID 동일하지 않을 수 있습니다.

{ "Sid": "AWSCloudTrailImportDecrypt", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Principal": { "AWS": "roleArn" }, "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } }