추적 생성 - AWS CloudTrail

추적 생성

다음 절차를 따라 모든 리전에 적용되는 추적을 생성하십시오. 모든 리전에 적용되는 추적은 모든 리전에서 S3 버킷으로 로그 파일을 전송합니다. 추적을 생성하면 AWS CloudTrail은 사용자가 지정한 이벤트에 대한 로깅을 자동으로 시작합니다.

참고

추적을 생성한 후에는 CloudTrail 로그에서 수집된 이벤트 데이터를 추가 분석 및 처리하도록 다른 AWS 서비스를 구성할 수 있습니다. 자세한 내용은 섹션을 참조하세요CloudTrail 지원 서비스 및 통합

콘솔에서 사용하도록 설정한 모든 AWS 리전의 이벤트를 로그하는 추적을 생성합니다. 이것이 권장되는 모범 사례입니다. 단일 리전에 이벤트를 로그하려면(권장하지 않음) AWS CLI를 사용합니다.

아직 고급 이벤트 선택기를 사용하도록 설정하지 않은 경우 다음 절차를 따릅니다. 고급 이벤트 선택기를 사용하도록 설정한 경우 콘솔에서 추적 생성(고급 이벤트 선택기)을 참조하여 추적에 대한 데이터 이벤트 로깅을 구성합니다.

AWS Management Console을 사용하여 CloudTrail 추적을 생성하려면

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/cloudtrail/에서 CloudTrail 콘솔을 엽니다.

  2. CloudTrail 서비스 홈 페이지의 [추적(Trails)] 페이지 또는 [대시보드(Dashboard)] 페이지의 [추적(Trails)] 섹션에서 [추적 생성(Create trail)]을 선택합니다.

  3. [Create Trail] 페이지에서 [Trail name]의 경우 추적 이름을 입력합니다. 자세한 내용은 섹션을 참조하세요CloudTrail 추적 이름 지정 요구 사항

  4. AWS Organizations 조직 추적인 경우 조직의 모든 계정에 대해 추적을 사용하도록 선택할 수 있습니다. 관리 계정의 IAM 사용자 또는 역할로 콘솔에 로그인한 경우에만 이 옵션이 표시됩니다. 조직 추적을 생성하려면 사용자 또는 역할에 충분한 권한이 있는지 확인합니다. 자세한 내용은 섹션을 참조하세요조직에 대한 추적 생성

  5. [스토리지 위치(Storage location)]에서 [새 S3 버킷 생성(Create new S3 bucket)]을 선택하여 버킷을 생성합니다. 버킷을 생성하면 CloudTrail은 필요한 버킷 정책을 생성하고 적용합니다.

    참고

    [기존 S3 버킷 사용(Use existing S3 bucket)]을 선택한 경우 [추적 로그 버킷 이름(Trail log bucket name)]에 버킷을 지정하거나 [찾아보기(Browse)]를 선택하여 버킷을 선택합니다. 버킷 정책은 쓰기 권한을 CloudTrail에 부여해야 합니다. 버킷 정책의 수동 편집에 대한 자세한 내용은 CloudTrail에 대한 Amazon S3 버킷 정책 단원을 참조하세요.

    로그를 더 쉽게 찾을 수 있도록 기존 버킷에 새 폴더(또는 ‘접두사’)를 생성하여 CloudTrail 로그를 저장할 수 있습니다. [접두사(Prefix)]에 접두사를 입력합니다.

  6. [로그 파일 SSE-KMS 암호화(Log file SSE-KMS encryption)]에서 SSE-S3 대신 SSE-KMS를 사용하여 로그 파일을 암호화하려면 [사용(Enabled)]을 선택합니다. 기본값은 [사용(Enabled)]입니다. 이 암호화 유형에 대한 자세한 내용은 Amazon S3 관리형 암호화 키(SSE-S3)를 사용하는 서버 측 암호화로 데이터 보호 단원을 참조하세요.

    SSE-KMS 암호화를 사용하도록 설정하는 경우 [신규(New)] 또는 [기존(Existing)] AWS KMS key를 선택합니다. AWS KMS 별칭(KMS Alias)에서 alias/MyAliasName 형식으로 별칭을 지정합니다. 자세한 내용은 섹션을 참조하세요KMS 키를 사용하도록 추적 업데이트 CloudTrail은 AWS KMS 다중 리전 키도 지원합니다. 다중 리전 키에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드다중 리전 키 사용 단원을 참조하세요.

    참고

    다른 계정에 있는 키의 ARN을 입력할 수도 있습니다. 키 정책은 CloudTrail이 키를 사용하여 로그 파일을 암호화하고 지정한 사용자가 암호화되지 않은 형태로 로그 파일을 읽을 수 있도록 허용해야 합니다. 키 정책의 수동 편집에 대한 자세한 내용은 CloudTrail에 대한 AWS KMS 키 정책 구성 단원을 참조하세요.

  7. [추가 설정(Additional settings)]에서 다음을 구성합니다.

    1. [로그 파일 검증(Log file validation)]에서 [사용(Enabled)]을 선택하여 로그 다이제스트를 S3 버킷에 전달합니다. 다이제스트 파일을 사용하면 CloudTrail이 로그 파일을 전달한 후 해당 파일이 변경되지 않았는지 확인할 수 있습니다. 자세한 내용은 섹션을 참조하세요CloudTrail 로그 파일 무결성 검증

    2. [SNS 알림 전달(SNS notification delivery)]에서 [사용(Enabled)]을 선택하여 로그가 버킷에 전달될 때마다 알림을 받습니다. CloudTrail은 여러 이벤트를 로그 파일에 저장합니다. 모든 이벤트가 아니라 모든 로그 파일에 대해 SNS 알림이 전송됩니다. 자세한 내용은 섹션을 참조하세요CloudTrail에 대한 Amazon SNS 알림 구성

      SNS 알림을 사용하도록 설정하는 경우 [새 SNS 주제 생성(Create a new SNS topic)]에서 [신규(New)]를 선택하여 주제를 생성하거나 [기존(Existing)]을 선택하여 기존 주제를 사용합니다. 모든 리전에 적용되는 추적을 생성하는 경우 모든 리전의 로그 파일 전송에 대한 SNS 알림이 사용자가 생성하는 단일 SNS 주제로 전송됩니다.

      [신규(New)]를 선택하는 경우 CloudTrail이 새 주제의 이름을 지정하거나 사용자가 이름을 입력할 수 있습니다. [기존(Existing)]을 선택하는 경우 드롭다운 목록에서 SNS 주제를 선택합니다. 다른 리전 또는 적절한 권한이 있는 계정에서 주제의 ARN을 입력할 수도 있습니다. 자세한 내용은 섹션을 참조하세요CloudTrail에 대한 Amazon SNS 주제 정책

      주제를 생성한 경우 로그 파일 전송에 대한 알림을 받으려면 해당 주제를 구독해야 합니다. Amazon SNS 콘솔에서 구독할 수 있습니다. 알림의 빈도로 인해 Amazon SQS 대기열을 사용하여 알림을 프로그래밍 방식으로 처리하도록 구독을 구성하는 것이 좋습니다. 자세한 내용은 Amazon Simple Notification Service 시작하기 가이드를 참조하세요.

  8. 선택적으로 CloudWatch Logs에서 [사용(Enabled)]을 선택하여 로그 파일을 CloudWatch Logs에 전송하도록 CloudTrail을 구성합니다. 자세한 내용은 섹션을 참조하세요CloudWatch Logs에 이벤트 전송

    1. CloudWatch Logs와의 통합을 사용하도록 설정하는 경우 [신규(New)]를 선택하여 새 로그 그룹을 생성하거나 [기존(Existing)]을 선택하여 기존 로그 그룹을 사용합니다. [신규(New)]를 선택하는 경우 CloudTrail이 새 로그 그룹의 이름을 지정하거나 사용자가 이름을 입력할 수 있습니다.

    2. [기존(Existing)]을 선택하는 경우 드롭다운 목록에서 로그 그룹을 선택합니다.

    3. 로그를 CloudWatch Logs에 전송할 수 있는 권한에 대한 새 IAM 역할을 생성하려면 [신규(New)]를 선택합니다. 드롭다운 목록에서 기존 IAM 역할을 선택하려면 [기존(Existing)]을 선택합니다. [정책 문서(Policy document)]를 확장하면 새 역할 또는 기존 역할의 정책 문이 표시됩니다. 이에 대한 자세한 내용은 모니터링을 위해 CloudWatch Logs를 사용하는 CloudTrail의 역할 정책 문서 단원을 참조하세요.

      참고

      추적을 구성할 때 다른 계정에 속한 S3 버킷 및 SNS 주제를 선택할 수 있습니다. 하지만 CloudTrail이 이벤트를 CloudWatch Logs 로그 그룹에 전달하도록 하려면 현재 계정에 있는 로그 그룹을 선택해야 합니다.

  9. 태그에 대해 하나 이상의 사용자 정의 태그(키-값 페어)를 추적에 추가합니다. 태그를 사용하면 CloudTrail 로그 파일이 포함된 Amazon S3 버킷과 CloudTrail 추적을 모두 식별할 수 있습니다. 그런 다음, CloudTrail 리소스의 리소스 그룹을 사용할 수 있습니다. 자세한 내용은 AWS Resource Groups추적에 태그를 사용하는 이유는 무엇입니까? 단원을 참조하세요.

  10. [로그 이벤트 선택(Choose log events)] 페이지에서 로그하려는 이벤트 유형을 선택합니다. Management events(관리 이벤트)에서 다음을 수행합니다.

    1. [API 활동(API activity)]에서 추적이 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 로그하도록 할지 선택합니다. 자세한 내용은 섹션을 참조하세요관리 이벤트

    2. AWS KMS 이벤트 제외(Exclude KMS events)를 선택하여 추적에서 AWS Key Management Service(AWS KMS) 이벤트를 필터링합니다. 기본 설정은 모든 AWS KMS 이벤트를 포함하는 것입니다.

      AWS KMS 이벤트를 로그하거나 제외하는 옵션은 추적에서 관리 이벤트를 로그하는 경우에만 사용할 수 있습니다. 관리 이벤트를 로그하지 않도록 선택하는 경우 AWS KMS 이벤트가 로그되지 않으며, AWS KMS 이벤트 로깅 설정을 변경할 수 없습니다.

      AWS KMS, Encrypt, Decrypt와 같은 GenerateDataKey 작업은 일반적으로 대량의 이벤트(99% 이상)를 생성합니다. 이러한 작업은 이제 [읽기(Read)] 이벤트로 로그됩니다. Disable, DeleteScheduleKey와 같은 저용량의 관련 AWS KMS 작업(일반적으로 AWS KMS 이벤트 볼륨의 0.5% 미만을 차지함)은 [쓰기(Write)] 이벤트로 로그됩니다.

      Encrypt, DecryptGenerateDataKey와 같은 대량의 이벤트를 제외하지만 Disable, DeleteScheduleKey와 같은 관련 이벤트를 계속 로그하려면 쓰기(Write) 관리 이벤트를 로그하도록 선택하고 AWS KMS 이벤트 제외(Exclude AWS KMS events) 확인란의 선택을 취소합니다.

    3. [Amazon RDS Data API 이벤트 제외(Exclude Amazon RDS Data API events)]를 선택하여 추적에서 Amazon Relational Database Service Data API 이벤트를 필터링합니다. 기본 설정은 모든 Amazon RDS Data API 이벤트를 포함하는 것입니다. Amazon RDS Data API 이벤트에 대한 자세한 내용은 Amazon RDS for Aurora 사용 설명서에서 AWS CloudTrail을 사용하여 데이터 API 호출 로깅 단원을 참조하세요.

  11. [데이터 이벤트(Data events)]에서는 Amazon S3 버킷, AWS Lambda 함수, Amazon DynamoDB 테이블 또는 이러한 리소스 유형의 조합에 대한 데이터 이벤트 로깅을 지정할 수 있습니다. 기본적으로 추적은 데이터 이벤트를 로그하지 않습니다. 데이터 이벤트 로깅에는 추가 요금이 부과됩니다. 자세한 내용은 섹션을 참조하세요데이터 이벤트 CloudTrail 요금은 AWS CloudTrail 요금을 참조하세요. 고급 이벤트 선택기를 사용하는 경우 더 많은 데이터 이벤트 유형을 사용할 수 있습니다. 자세한 내용은 이 주제의 콘솔에서 추적 생성(고급 이벤트 선택기) 단원을 참조하세요.

    Amazon S3 버킷의 경우:

    1. [데이터 이벤트 소스(Data event source)]에서 S3를 선택합니다.

    2. [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]을 로그하도록 선택하거나 개별 버킷 또는 함수를 지정할 수 있습니다. 기본적으로 데이터 이벤트는 현재 및 미래의 모든 S3 버킷에 대해 로그됩니다.

      참고

      기본값인 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)] 옵션을 유지하면 현재 AWS 계정에 있는 모든 버킷과 추적 생성을 완료한 후 생성하는 버킷에 대해 데이터 이벤트 로깅이 활성화됩니다. 또한 다른 AWS 계정에 속하는 버킷에 대한 데이터 이벤트 활동이더라도 본인 AWS 계정의 사용자 또는 역할이 수행한 활동이라면 데이터 이벤트 활동 로깅을 활성화할 수 있습니다.

      단일 리전에 대한 추적을 생성하는 경우(AWS CLI를 사용하여 수행) [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)] 옵션을 선택하면 추적과 동일한 리전의 모든 버킷과 해당 리전에서 나중에 생성하는 버킷에 대해 데이터 이벤트 로깅이 활성화됩니다. AWS 계정의 다른 리전에 있는 Amazon S3 버킷에 대해서는 데이터 이벤트를 로그하지 않습니다.

    3. 기본값인 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]을 그대로 둘 경우 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 로그하도록 선택합니다.

    4. 개별 버킷을 선택하려면 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]에서 [읽기(Read)] 및 [쓰기(Write)] 확인란의 선택을 해제합니다. [개별 버킷 선택(Individual bucket selection)]에서 데이터 이벤트를 로그할 버킷을 찾습니다. 원하는 버킷의 버킷 접두사를 입력하여 특정 버킷을 찾습니다. 이 창에서 여러 버킷을 선택할 수 있습니다. 더 많은 버킷의 데이터 이벤트를 로그하려면 [버킷 추가(Add bucket)]를 선택합니다. [읽기(Read)] 이벤트(예:GetObject), [쓰기(Write)] 이벤트(예:PutObject) 또는 둘 다를 로그하도록 선택합니다.

      이 설정은 개별 버킷에 대해 구성한 개별 설정보다 우선 적용됩니다. 예를 들어 모든 S3 버킷에 대해 [읽기(Read)] 이벤트 로깅을 지정한 다음, 데이터 이벤트 로깅 대상으로 특정 버킷을 추가하기로 선택하면 추가한 버킷에 대해 [읽기(Read)]가 사전 선택됩니다. 선택을 취소할 수 없습니다. [Write]에 대한 옵션만 구성할 수 있습니다.

      로깅에서 버킷을 제거하려면 X를 선택합니다.

  12. 데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다.

  13. Lambda 함수의 경우:

    1. [데이터 이벤트 소스(Data event source)]에서 Lambda를 선택합니다.

    2. [Lambda 함수(Lambda function)]에서 [모든 리전(All regions)]을 선택하여 모든 Lambda 함수를 로그하거나 [ARN으로 입력 함수(Input function as ARN)]를 선택하여 특정 함수에 대한 데이터 이벤트를 로그합니다.

      AWS 계정의 모든 Lambda 함수에 대한 데이터 이벤트를 로그하려면 [현재 및 미래의 모든 함수 로그(Log all current and future functions)]를 선택합니다. 이 설정은 개별 함수에 대해 구성한 개별 설정보다 우선합니다. 일부 함수가 표시되지 않더라도 모든 함수가 로그됩니다.

      참고

      모든 리전에 대해 추적을 생성할 경우 이 옵션을 선택하면 현재 AWS 계정에 있는 모든 함수와 추적 생성을 완료한 후 리전에서 생성할 수 있는 Lambda 함수에 대해 데이터 이벤트 로깅이 활성화됩니다. 단일 리전에 대해 추적을 생성할 경우(AWS CLI를 사용하여 수행) 이 옵션을 선택하면 현재 AWS 계정의 해당 리전에 있는 모든 함수와 추적 생성을 완료한 후 해당 리전에서 생성할 수 있는 Lambda 함수에 대해 데이터 이벤트 로깅이 활성화됩니다. 다른 리전에서 생성되는 Lambda 함수에 대한 데이터 이벤트 로깅은 활성화되지 않습니다.

      또한 모든 함수에 대한 데이터 이벤트 로깅은 활동이 다른 AWS 계정에 속한 함수에 대해 수행되더라도 AWS 계정의 사용자 또는 역할이 수행하는 데이터 이벤트 활동에 대한 로깅을 활성화할 수 있습니다.

    3. [ARN으로 입력 함수(Input function as ARN)]를 선택한 경우 Lambda 함수의 ARN을 입력합니다.

      참고

      계정의 Lambda 함수가 15,000개를 넘을 경우 추적을 생성할 때 CloudTrail 콘솔에서 함수를 모두 보거나 선택할 수 없습니다. 함수가 모두 표시되지는 않더라도 모든 함수를 로그하는 옵션을 선택할 수 있습니다. 특정 함수에 대한 데이터 이벤트를 로그하려면 함수를 수동으로 추가할 수 있습니다(함수의 ARN을 알고 있는 경우). 콘솔에서 추적 생성을 완료한 다음, AWS CLI 및 put-event-selectors 명령을 사용하여 특정 Lambda 함수에 대한 데이터 이벤트 로깅을 구성할 수도 있습니다. 자세한 내용은 섹션을 참조하세요AWS CLI를 사용하여 추적 관리

  14. DynamoDB 테이블의 경우:

    1. [데이터 이벤트 소스(Data event source)]에서 DynamoDB를 선택합니다.

    2. [DynamoDB 테이블 선택(DynamoDB table selection)]에서 [찾아보기(Browse)]를 선택하여 테이블을 선택하거나 액세스 권한이 있는 DynamoDB 테이블의 ARN을 붙여넣습니다. DynamoDB 테이블 ARN은 다음의 형식을 사용합니다.

      arn:partition:dynamodb:region:account_ID:table/table_name

      다른 테이블을 추가하려면 [행 추가(Add row)]를 선택하고 테이블을 찾거나 액세스 권한이 있는 테이블의 ARN을 붙여넣습니다.

  15. 추적이 CloudTrail Insights 이벤트를 로그하도록 하려면 [Insights 이벤트(Insights events)]를 선택합니다.

    [이벤트 유형(Event type)]에서 [Insights 이벤트(Insights events)]를 선택합니다. Insights 이벤트(Insights events)에서 API 호출률(API call rate), API 오류율(API error rate) 또는 둘 다를 선택합니다. Insights 이벤트를 로그하려면 [쓰기(Write)] 관리 이벤트를 로그 중이어야 합니다.

    CloudTrail Insights는 비정상적인 활동에 대한 관리 이벤트를 분석하고 이상이 감지되면 이벤트를 로그합니다. 기본적으로 추적은 인사이트 이벤트를 로그하지 않습니다. 인사이트에 이벤트에 대한 자세한 내용은 추적에 대한 Insights 이벤트 로깅 단원을 참조하세요. 인사이트 이벤트 로깅에는 추가 요금이 부과됩니다. CloudTrail 요금은 AWS CloudTrail 요금을 참조하세요.

    Insights 이벤트는 추적 세부 정보 페이지의 [스토리지 위치(Storage location)] 영역에 지정된 동일한 S3 버킷의 /CloudTrail-Insight라는 다른 폴더에 전달됩니다. CloudTrail은 새 접두사를 생성합니다. 예를 들어, 현재 대상 S3 버킷의 이름이 S3bucketName/AWSLogs/CloudTrail/인 경우 새 접두사가 있는 S3 버킷 이름은 S3bucketName/AWSLogs/CloudTrail-Insight/이 됩니다.

  16. 로그할 이벤트 유형의 선택을 마쳤으면 [다음(Next)]을 선택합니다.

  17. [검토 및 생성(Review and create)] 페이지에서 선택 사항을 검토합니다. 섹션에 표시된 추적 설정을 변경하려면 해당 섹션에서 [편집(Edit)]을 선택합니다. 추적을 생성할 준비가 되었으면 [추적 생성(Create trail)]을 선택합니다.

  18. [Trails] 페이지에 새 추적이 나타납니다. Trails(추적) 페이지는 계정에 있는 모든 리전의 추적을 보여 줍니다. 약 15분 내에 CloudTrail은 계정에서 발생한 AWS API 호출을 보여 주는 로그 파일을 게시합니다. 지정한 S3 버킷에서 로그 파일을 볼 수 있습니다. Insights 이벤트 로깅이 활성화되고 비정상적인 활동이 감지된 경우 CloudTrail이 첫 번째 Insights 이벤트를 전달하는 데 최대 36시간이 걸릴 수 있습니다.

참고

CloudTrail은 일반적으로 API 호출 후 평균 15분 이내에 로그를 전달합니다. 이 시간은 보장되지 않습니다. 자세한 내용은 AWS CloudTrail 서비스 수준 계약에서 검토하세요.

콘솔에서 모든 AWS 리전의 이벤트를 로그하는 추적을 생성합니다. 이것이 권장되는 모범 사례입니다. 단일 리전에 이벤트를 로그하려면(권장하지 않음) AWS CLI를 사용합니다.

고급 이벤트 선택기를 사용하도록 설정한 경우 다음 절차를 따릅니다. 기본 데이터 이벤트 선택기를 사용하려는 경우 콘솔에서 추적 생성(기본 이벤트 선택기)을 참조하여 추적에 대한 데이터 이벤트 로깅을 구성합니다.

AWS Management Console을 사용하여 CloudTrail 추적을 생성하려면

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/cloudtrail/에서 CloudTrail 콘솔을 엽니다.

  2. CloudTrail 서비스 홈 페이지의 [추적(Trails)] 페이지 또는 [대시보드(Dashboard)] 페이지의 [추적(Trails)] 섹션에서 [추적 생성(Create trail)]을 선택합니다.

  3. [Create Trail] 페이지에서 [Trail name]의 경우 추적 이름을 입력합니다. 자세한 내용은 섹션을 참조하세요CloudTrail 추적 이름 지정 요구 사항

  4. AWS Organizations 조직 추적인 경우 조직의 모든 계정에 대해 추적을 사용하도록 선택할 수 있습니다. 관리 계정의 IAM 사용자 또는 역할로 콘솔에 로그인한 경우에만 이 옵션이 표시됩니다. 조직 추적을 생성하려면 사용자 또는 역할에 충분한 권한이 있는지 확인합니다. 자세한 내용은 섹션을 참조하세요조직에 대한 추적 생성

  5. [스토리지 위치(Storage location)]에서 [새 S3 버킷 생성(Create new S3 bucket)]을 선택하여 버킷을 생성합니다. 버킷을 생성하면 CloudTrail은 필요한 버킷 정책을 생성하고 적용합니다.

    참고

    [기존 S3 버킷 사용(Use existing S3 bucket)]을 선택한 경우 [추적 로그 버킷 이름(Trail log bucket name)]에 버킷을 지정하거나 [찾아보기(Browse)]를 선택하여 버킷을 선택합니다. 버킷 정책은 쓰기 권한을 CloudTrail에 부여해야 합니다. 버킷 정책의 수동 편집에 대한 자세한 내용은 CloudTrail에 대한 Amazon S3 버킷 정책 단원을 참조하세요.

    로그를 더 쉽게 찾을 수 있도록 기존 버킷에 새 폴더(또는 ‘접두사’)를 생성하여 CloudTrail 로그를 저장할 수 있습니다. [접두사(Prefix)]에 접두사를 입력합니다.

  6. [로그 파일 SSE-KMS 암호화(Log file SSE-KMS encryption)]에서 SSE-S3 대신 SSE-KMS를 사용하여 로그 파일을 암호화하려면 [사용(Enabled)]을 선택합니다. 기본값은 [사용(Enabled)]입니다. 이 암호화 유형에 대한 자세한 내용은 Amazon S3 관리형 암호화 키(SSE-S3)를 사용하는 서버 측 암호화로 데이터 보호 단원을 참조하세요.

    SSE-KMS 암호화를 사용하도록 설정하는 경우 [신규(New)] 또는 [기존(Existing)] AWS KMS key를 선택합니다. AWS KMS 별칭(KMS Alias)에서 alias/MyAliasName 형식으로 별칭을 지정합니다. 자세한 내용은 섹션을 참조하세요KMS 키를 사용하도록 추적 업데이트 CloudTrail은 AWS KMS 다중 리전 키도 지원합니다. 다중 리전 키에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드다중 리전 키 사용 단원을 참조하세요.

    참고

    다른 계정에 있는 키의 ARN을 입력할 수도 있습니다. 자세한 내용은 섹션을 참조하세요KMS 키를 사용하도록 추적 업데이트 키 정책은 CloudTrail이 키를 사용하여 로그 파일을 암호화하고 지정한 사용자가 암호화되지 않은 형태로 로그 파일을 읽을 수 있도록 허용해야 합니다. 키 정책의 수동 편집에 대한 자세한 내용은 CloudTrail에 대한 AWS KMS 키 정책 구성 단원을 참조하세요.

  7. [추가 설정(Additional settings)]에서 다음을 구성합니다.

    1. [로그 파일 검증(Log file validation)]에서 [사용(Enabled)]을 선택하여 로그 다이제스트를 S3 버킷에 전달합니다. 다이제스트 파일을 사용하면 CloudTrail이 로그 파일을 전달한 후 해당 파일이 변경되지 않았는지 확인할 수 있습니다. 자세한 내용은 섹션을 참조하세요CloudTrail 로그 파일 무결성 검증

    2. [SNS 알림 전달(SNS notification delivery)]에서 [사용(Enabled)]을 선택하여 로그가 버킷에 전달될 때마다 알림을 받습니다. CloudTrail은 여러 이벤트를 로그 파일에 저장합니다. 모든 이벤트가 아니라 모든 로그 파일에 대해 SNS 알림이 전송됩니다. 자세한 내용은 섹션을 참조하세요CloudTrail에 대한 Amazon SNS 알림 구성

      SNS 알림을 사용하도록 설정하는 경우 [새 SNS 주제 생성(Create a new SNS topic)]에서 [신규(New)]를 선택하여 주제를 생성하거나 [기존(Existing)]을 선택하여 기존 주제를 사용합니다. 모든 리전에 적용되는 추적을 생성하는 경우 모든 리전의 로그 파일 전송에 대한 SNS 알림이 사용자가 생성하는 단일 SNS 주제로 전송됩니다.

      [신규(New)]를 선택하는 경우 CloudTrail이 새 주제의 이름을 지정하거나 사용자가 이름을 입력할 수 있습니다. [기존(Existing)]을 선택하는 경우 드롭다운 목록에서 SNS 주제를 선택합니다. 다른 리전 또는 적절한 권한이 있는 계정에서 주제의 ARN을 입력할 수도 있습니다. 자세한 내용은 섹션을 참조하세요CloudTrail에 대한 Amazon SNS 주제 정책

      주제를 생성한 경우 로그 파일 전송에 대한 알림을 받으려면 해당 주제를 구독해야 합니다. Amazon SNS 콘솔에서 구독할 수 있습니다. 알림의 빈도로 인해 Amazon SQS 대기열을 사용하여 알림을 프로그래밍 방식으로 처리하도록 구독을 구성하는 것이 좋습니다. 자세한 내용은 Amazon Simple Notification Service 시작하기 가이드를 참조하세요.

  8. 선택적으로 CloudWatch Logs에서 [사용(Enabled)]을 선택하여 로그 파일을 CloudWatch Logs에 전송하도록 CloudTrail을 구성합니다. 자세한 내용은 섹션을 참조하세요CloudWatch Logs에 이벤트 전송

    1. CloudWatch Logs와의 통합을 사용하도록 설정하는 경우 [신규(New)]를 선택하여 새 로그 그룹을 생성하거나 [기존(Existing)]을 선택하여 기존 로그 그룹을 사용합니다. [신규(New)]를 선택하는 경우 CloudTrail이 새 로그 그룹의 이름을 지정하거나 사용자가 이름을 입력할 수 있습니다.

    2. [기존(Existing)]을 선택하는 경우 드롭다운 목록에서 로그 그룹을 선택합니다.

    3. 로그를 CloudWatch Logs에 전송할 수 있는 권한에 대한 새 IAM 역할을 생성하려면 [신규(New)]를 선택합니다. 드롭다운 목록에서 기존 IAM 역할을 선택하려면 [기존(Existing)]을 선택합니다. [정책 문서(Policy document)]를 확장하면 새 역할 또는 기존 역할의 정책 문이 표시됩니다. 이에 대한 자세한 내용은 모니터링을 위해 CloudWatch Logs를 사용하는 CloudTrail의 역할 정책 문서 단원을 참조하세요.

      참고

      추적을 구성할 때 다른 계정에 속한 S3 버킷 및 SNS 주제를 선택할 수 있습니다. 하지만 CloudTrail이 이벤트를 CloudWatch Logs 로그 그룹에 전달하도록 하려면 현재 계정에 있는 로그 그룹을 선택해야 합니다.

  9. 태그에 대해 하나 이상의 사용자 정의 태그(키-값 페어)를 추적에 추가합니다. 태그를 사용하면 CloudTrail 로그 파일이 포함된 Amazon S3 버킷과 CloudTrail 추적을 모두 식별할 수 있습니다. 그런 다음, CloudTrail 리소스의 리소스 그룹을 사용할 수 있습니다. 자세한 내용은 AWS Resource Groups추적에 태그를 사용하는 이유는 무엇입니까?을 참조하십시오.

  10. [로그 이벤트 선택(Choose log events)] 페이지에서 로그하려는 이벤트 유형을 선택합니다. Management events(관리 이벤트)에서 다음을 수행합니다.

    1. [API 활동(API activity)]에서 추적이 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 로그하도록 할지 선택합니다. 자세한 내용은 섹션을 참조하세요관리 이벤트

    2. AWS KMS 이벤트 제외(Exclude KMS events)를 선택하여 추적에서 AWS Key Management Service(AWS KMS) 이벤트를 필터링합니다. 기본 설정은 모든 AWS KMS 이벤트를 포함하는 것입니다.

      AWS KMS 이벤트를 로그하거나 제외하는 옵션은 추적에서 관리 이벤트를 로그하는 경우에만 사용할 수 있습니다. 관리 이벤트를 로그하지 않도록 선택하는 경우 AWS KMS 이벤트가 로그되지 않으며, AWS KMS 이벤트 로깅 설정을 변경할 수 없습니다.

      AWS KMS, Encrypt, Decrypt와 같은 GenerateDataKey 작업은 일반적으로 대량의 이벤트(99% 이상)를 생성합니다. 이러한 작업은 이제 [읽기(Read)] 이벤트로 로그됩니다. Disable, DeleteScheduleKey와 같은 저용량의 관련 AWS KMS 작업(일반적으로 AWS KMS 이벤트 볼륨의 0.5% 미만을 차지함)은 쓰기(Write) 이벤트로 로그됩니다.

      Encrypt, DecryptGenerateDataKey와 같은 대량의 이벤트를 제외하지만 Disable, DeleteScheduleKey와 같은 관련 이벤트를 계속 로그하려면 쓰기(Write) 관리 이벤트를 로그하도록 선택하고 AWS KMS 이벤트 제외(Exclude KMS events) 확인란의 선택을 취소합니다.

    3. [Amazon RDS Data API 이벤트 제외(Exclude Amazon RDS Data API events)]를 선택하여 추적에서 Amazon Relational Database Service Data API 이벤트를 필터링합니다. 기본 설정은 모든 Amazon RDS Data API 이벤트를 포함하는 것입니다. Amazon RDS Data API 이벤트에 대한 자세한 내용은 Amazon RDS for Aurora 사용 설명서에서 AWS CloudTrail을 사용하여 데이터 API 호출 로깅 단원을 참조하세요.

  11. 데이터 이벤트를 로그하려면 [데이터 이벤트(Data events)]를 선택합니다.

  12. [데이터 이벤트 유형(Data event type)]에서 데이터 이벤트를 로그할 리소스 유형을 선택합니다.

  13. 로그 선택기 템플릿을 선택합니다. CloudTrail에는 리소스 유형에 대한 모든 데이터 이벤트를 로그하는 사전 정의된 템플릿이 포함되어 있습니다. 사용자 지정 로그 선택기 템플릿을 구축하려면 [사용자 지정(Custom)]을 선택합니다.

    참고

    S3 버킷에 대해 사전 정의된 템플릿을 선택하면 현재 AWS 계정에 있는 모든 버킷과 추적 생성을 완료한 후 생성하는 버킷에 대해 데이터 이벤트 로깅이 활성화됩니다. 또한 다른 AWS 계정에 속하는 버킷에 대한 데이터 이벤트 활동이더라도 본인 AWS 계정의 사용자 또는 역할이 수행한 활동이라면 데이터 이벤트 활동 로깅을 활성화할 수 있습니다.

    한 리전에만 추적을 적용하는 경우 모든 S3 버킷을 로그하는 사전 정의된 템플릿을 선택하면 추적과 동일한 리전의 모든 버킷과 해당 리전에서 나중에 생성하는 버킷에 대해 데이터 이벤트 로깅이 활성화됩니다. AWS 계정의 다른 리전에 있는 Amazon S3 버킷에 대해서는 데이터 이벤트를 로그하지 않습니다.

    모든 리전에 대해 추적을 생성할 경우 Lambda 함수에 대해 사전 정의된 템플릿을 선택하면 현재 AWS 계정에 있는 모든 함수와 추적 생성을 완료한 후 리전에서 생성할 수 있는 Lambda 함수에 대해 데이터 이벤트 로깅이 활성화됩니다. 단일 리전에 대해 추적을 생성할 경우(AWS CLI를 사용하여 수행) 이 옵션을 선택하면 현재 AWS 계정의 해당 리전에 있는 모든 함수와 추적 생성을 완료한 후 해당 리전에서 생성할 수 있는 Lambda 함수에 대해 데이터 이벤트 로깅이 활성화됩니다. 다른 리전에서 생성되는 Lambda 함수에 대한 데이터 이벤트 로깅은 활성화되지 않습니다.

    또한 모든 함수에 대한 데이터 이벤트 로깅은 활동이 다른 AWS 계정에 속한 함수에 대해 수행되더라도 AWS 계정의 사용자 또는 역할이 수행하는 데이터 이벤트 활동에 대한 로깅을 활성화할 수 있습니다.

  14. 사전 정의된 로그 선택기 템플릿을 적용하고 다른 데이터 이벤트 리소스 유형을 추가하지 않으려는 경우 18단계로 이동합니다. 사용자 지정 로그 선택기 템플릿을 적용하려면 다음 단계로 이동합니다.

  15. 사용자 지정 로그 선택기 템플릿을 생성하려면 [로그 선택기 템플릿(Log selector template)] 드롭다운 목록에서 [사용자 지정(Custom)]을 선택합니다.

  16. 선택적으로 사용자 지정 로그 선택기 템플릿의 이름을 입력합니다.

  17. [고급 이벤트 선택기(Advanced event selectors)]에서 데이터 이벤트를 로그하려는 특정 리소스에 대한 표현식을 작성합니다.

    1. 다음 필드 중에서 선택합니다. 배열(둘 이상의 값)을 허용하는 필드의 경우 CloudTrail은 값 사이에 OR을 추가합니다.

      • readOnly - readOnlytrue 또는 false 값과 [같음(Equals)]으로 설정할 수 있습니다. 읽기 전용 데이터 이벤트는 Get* 또는 Describe* 이벤트와 같이 리소스의 상태를 변경하지 않는 이벤트입니다. 쓰기 이벤트는 Put*, Delete* 또는 Write* 이벤트와 같이 리소스, 속성 또는 아티팩트를 추가, 변경 또는 삭제합니다. read 이벤트와 write 이벤트를 모두 로그하려면 readOnly 선택기를 추가하지 마세요.

      • eventName -eventName 은 연산자를 사용할 수 있습니다. 연산자를 사용하여 PutBucket, PutItem 또는 GetSnapshotBlock과 같이 CloudTrail에 로그된 데이터 이벤트를 포함하거나 제외할 수 있습니다. 이 필드에 대해 쉼표로 구분된 값을 여러 개 지정할 수 있습니다.

      • resources.type - AWS Management Console에서는 이 필드가 나타나지 않습니다. 데이터 이벤트 유형(Data event type) 드롭다운 목록에서 선택한 데이터 이벤트 유형으로 이미 채워져 있기 때문입니다. AWS CLI 및 SDK에서 resources.typeEquals 연산자만 사용할 수 있으며, 값은 다음 중 하나일 수 있습니다.

        • AWS::S3::Object

        • AWS::Lambda::Function

        • AWS::DynamoDB::Table

        • AWS::S3Outposts::Object

        • AWS::ManagedBlockchain::Node

        • AWS::S3ObjectLambda::AccessPoint

        • AWS::EC2::Snapshot

        • AWS::S3::AccessPoint

        • AWS::DynamoDB::Stream

        • AWS::Glue::Table

      • resources.ARN - resources.ARN과 함께 연산자를 사용할 수 있지만, Equals 또는 NotEquals를 사용하는 경우 값은 템플릿에서 resources.type 값으로 지정한 유형의 유효한 리소스 ARN과 정확히 일치해야 합니다.

        예를 들어 resources.typeAWS::S3::Object인 경우 ARN은 다음 형식 중 하나여야 합니다. 특정 S3 버킷의 모든 객체에 대한 모든 데이터 이벤트를 로그하려면 StartsWith 연산자를 사용하고 버킷 ARN만 일치하는 값으로 포함합니다. 후행 슬래시는 의도적인 것입니다. 제외하지 마세요.

        arn:partition:s3:::bucket_name/ arn:partition:s3:::bucket_name/object_or_file_name/

        resources.typeAWS::Lambda::Function이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:lambda:region:account_ID:function:function_name

        resources.typeAWS::DynamoDB::Table이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:dynamodb:region:account_ID:table/table_name

        resources.typeAWS::S3Outposts::Object이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:s3-outposts:region:account_ID:object_path

        resources.typeAWS::ManagedBlockchain::Node이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:managedblockchain:region:account_ID:nodes/node_ID

        resources.typeAWS::S3ObjectLambda::AccessPoint이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name

        resources.typeAWS::EC2::Snapshot이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:ec2:region::snapshot/snapshot_ID

        resources.typeAWS::S3::AccessPoint이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식 중 하나여야 합니다. S3 액세스 포인트의 모든 객체에 대한 이벤트를 로그하려면 액세스 포인트 ARN만 사용하고 객체 경로를 포함하지 않으며 StartsWith 또는 NotStartsWith 연산자를 사용하는 것이 좋습니다.

        arn:partition:s3:region:account_ID:accesspoint/access_point_name arn:partition:s3:region:account_ID:accesspoint/access_point_name/object/object_path

        resources.typeAWS::DynamoDB::Stream이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:dynamodb:region:account_ID:table/table_name/stream/date_time

        resources.typeAWS::Glue::Table이고 연산자가 Equals 또는 NotEquals로 설정된 경우 ARN은 다음 형식이어야 합니다.

        arn:partition:glue:region:account_ID:table/database_name/table_name

      데이터 이벤트 리소스의 ARN 형식에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서작업, 리소스 및 조건 키 단원을 참조하세요.

    2. 각 필드에 대해 [+ 조건(+ Conditions)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다. 예를 들어 추적에 로그되는 데이터 이벤트에서 두 S3 버킷에 대한 데이터 이벤트를 제외하려면 필드를 resources.ARN으로 설정하고 연산자를 NotEquals로 설정한 다음, S3 버킷 ARN을 붙여넣거나 이벤트를 로그하지 않으려는 S3 버킷을 찾습니다.

      두 번째 S3 버킷을 추가하려면 [+ 조건(+ Conditions)]을 선택한 다음, 이전 지침을 반복하여 ARN을 붙여넣거나 다른 버킷을 찾습니다.

      참고

      추적의 모든 선택기에 대해 최대 500개의 값을 가질 수 있습니다. 여기에는 eventName과 같은 선택기에 대한 여러 값의 배열이 포함됩니다. 모든 선택기에 대해 단일 값이 있는 경우 선택기에 최대 500개의 조건을 추가할 수 있습니다.

      계정의 Lambda 함수가 15,000개를 넘을 경우 추적을 생성할 때 CloudTrail 콘솔에서 함수를 모두 보거나 선택할 수 없습니다. 함수가 표시되지 않는 경우에도 사전 정의된 선택기 템플릿을 사용하여 모든 함수를 여전히 로그할 수 있습니다. 특정 함수에 대한 데이터 이벤트를 로그하려면 함수를 수동으로 추가할 수 있습니다(함수의 ARN을 알고 있는 경우). 콘솔에서 추적 생성을 완료한 다음, AWS CLI 및 put-event-selectors 명령을 사용하여 특정 Lambda 함수에 대한 데이터 이벤트 로깅을 구성할 수도 있습니다. 자세한 내용은 섹션을 참조하세요AWS CLI를 사용하여 추적 관리

    3. 필요에 따라 필드를 추가하려면 [+ 필드(+ Field)]를 선택합니다. 오류를 방지하려면 필드에 충돌하거나 중복되는 값을 설정하지 마세요. 예를 들어 한 선택기의 ARN을 값과 같도록 지정하지 마세요. 그런 다음, ARN이 다른 선택기의 동일한 값과 같지 않도록 지정하세요.

    4. [다음(Next)]을 선택하여 사용자 지정 선택기 템플릿에 대한 변경 사항을 저장합니다. 또 다른 로그 선택기 템플릿을 선택하거나 이 페이지에서 나가지 마세요. 사용자 지정 선택기가 손실됩니다.

    5. 데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다. 데이터 이벤트 유형에 대한 고급 이벤트 선택기를 구성하려면 12단계부터 이 단계까지 반복합니다.

  18. 추적이 CloudTrail Insights 이벤트를 로그하도록 하려면 [Insights 이벤트(Insights events)]를 선택합니다.

    [이벤트 유형(Event type)]에서 [Insights 이벤트(Insights events)]를 선택합니다. Insights 이벤트를 로그하려면 [쓰기(Write)] 관리 이벤트를 로그 중이어야 합니다.

    CloudTrail Insights는 비정상적인 활동에 대한 관리 [쓰기(Write)] 이벤트를 분석하고 이상이 감지되면 이벤트를 로그합니다. 기본적으로 추적은 인사이트 이벤트를 로그하지 않습니다. 인사이트에 이벤트에 대한 자세한 내용은 추적에 대한 Insights 이벤트 로깅 단원을 참조하세요. 인사이트 이벤트 로깅에는 추가 요금이 부과됩니다. CloudTrail 요금은 AWS CloudTrail 요금을 참조하세요.

    Insights 이벤트는 추적 세부 정보 페이지의 [스토리지 위치(Storage location)] 영역에 지정된 동일한 S3 버킷의 /CloudTrail-Insight라는 다른 폴더에 전달됩니다. CloudTrail은 새 접두사를 생성합니다. 예를 들어, 현재 대상 S3 버킷의 이름이 S3bucketName/AWSLogs/CloudTrail/인 경우 새 접두사가 있는 S3 버킷 이름은 S3bucketName/AWSLogs/CloudTrail-Insight/이 됩니다.

  19. 로그할 이벤트 유형의 선택을 마쳤으면 [다음(Next)]을 선택합니다.

  20. [검토 및 생성(Review and create)] 페이지에서 선택 사항을 검토합니다. 섹션에 표시된 추적 설정을 변경하려면 해당 섹션에서 [편집(Edit)]을 선택합니다. 추적을 생성할 준비가 되었으면 [추적 생성(Create trail)]을 선택합니다.

  21. [Trails] 페이지에 새 추적이 나타납니다. Trails(추적) 페이지는 계정에 있는 모든 리전의 추적을 보여 줍니다. 약 15분 내에 CloudTrail은 계정에서 발생한 AWS API 호출을 보여 주는 로그 파일을 게시합니다. 지정한 S3 버킷에서 로그 파일을 볼 수 있습니다. Insights 이벤트 로깅이 활성화되고 비정상적인 활동이 감지된 경우 CloudTrail이 첫 번째 Insights 이벤트를 전달하는 데 최대 36시간이 걸릴 수 있습니다.

    참고

    CloudTrail은 일반적으로 API 호출 후 평균 15분 이내에 로그를 전달합니다. 이 시간은 보장되지 않습니다. 자세한 내용은 AWS CloudTrail 서비스 수준 계약에서 검토하세요.

다음 단계

추적을 생성한 후 추적으로 돌아가 변경할 수 있습니다.

  • 아직 구성하지 않았다면 CloudWatch Logs에 로그 파일을 전송하도록 CloudTrail을 구성할 수 있습니다. 자세한 내용은 섹션을 참조하세요CloudWatch Logs에 이벤트 전송

  • 테이블을 생성하고 이를 사용해 Amazon Athena에서 쿼리를 실행함으로써 AWS 서비스 활동을 분석할 수 있습니다. 자세한 내용은 Amazon Athena 사용 설명서CloudTrail 콘솔에서 CloudTrail 로그용 테이블 생성 단원을 참조하세요.

  • 추적에 사용자 지정 태그(키-값 쌍)를 추가합니다.

  • 다른 추적을 생성하려면 [추적(Trails)] 페이지를 열고 [새 추적 추가(Add new trail)]를 선택합니다.