추가 계정에서 CloudTrail 활성화 - AWS CloudTrail

추가 계정에서 CloudTrail 활성화

콘솔 또는 명령줄 인터페이스를 사용하여 추가 AWS 계정에서 CloudTrail을 활성화할 수 있습니다.

콘솔을 사용하여 추가 AWS 계정에서 CloudTrail 활성화

CloudTrail 콘솔을 사용하여 추가 계정에서 CloudTrail을 활성화할 수 있습니다.

  1. 222222222222 계정 자격 증명을 사용하여 AWS 관리 콘솔에 로그인하고 AWS CloudTrail 콘솔을 엽니다. 탐색 모음에서 CloudTrail을 활성화할 리전을 선택합니다.

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

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

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

  5. 스토리지 위치(Storage location)의 경우 기존 S3 버킷 사용(Use existing S3 bucket)을 선택합니다. 111111111111 계정 보안 인증 정보를 사용하여 로그인할 때 이전에 로그 파일을 저장하기 위해 생성한 버킷의 이름을 텍스트 상자에 입력합니다.

    참고

    버킷 정책은 쓰기 권한을 CloudTrail에 부여해야 합니다. 버킷 정책의 수동 편집에 대한 자세한 내용은 CloudTrail에 대한 Amazon S3 버킷 정책 단원을 참조하세요.

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

  6. 접두사(Prefix)의 경우 필드에 111111111111 계정 보안 인증 정보를 사용하여 CloudTrail을 설정할 때 로그 파일을 저장하기 위해 입력한 접두사를 동일하게 입력합니다. 첫 번째 계정에서 CloudTrail을 활성화했을 때 입력한 접두사와 다른 접두사를 사용할 경우 CloudTrail에서 이 새로운 접두사를 사용하여 버킷에 로그 파일을 작성할 수 있도록 대상 버킷에서 버킷 정책을 편집해야 합니다.

  7. SSE-S3 암호화 대신 SSE-KMS 암호화를 사용하여 로그 파일을 암호화하려면 Log file SSE-KMS encryption(로그 파일 SSE-KMS 암호화)에서 Enabled(사용)를 선택합니다. 기본값은 [사용(Enabled)]입니다. SSE-KMS 암호화를 사용하지 않으면 로그는 SSE-S3 암호화를 사용하여 암호화합니다. SSE-KMS 암호화에 대한 자세한 내용은 AWS Key Management Service(SSE-KMS)로 서버 측 암호화 사용을 참조하세요. SSE-S3 암호화에 대한 자세한 내용은 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 키 정책 구성 단원을 참조하세요.

  8. [추가 설정(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 시작하기 가이드를 참조하세요.

  9. 선택적으로 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 로그 그룹에 전달하도록 하려면 현재 계정에 있는 로그 그룹을 선택해야 합니다.

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

  11. [로그 이벤트 선택(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, Delete, 및 ScheduleKey와 같은 저용량의 관련 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 호출 로깅 단원을 참조하세요.

  12. [데이터 이벤트(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를 선택합니다.

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

  14. 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를 사용하여 추적 관리 단원을 참조하세요.

  15. 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을 붙여넣습니다.

  16. 추적이 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/이 됩니다.

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

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

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

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

CLI를 사용하여 추가 AWS 계정에서 CloudTrail 활성화

AWS 명령줄 도구를 사용하여 추가 계정에서 CloudTrail을 활성화하고 해당 로그 파일을 Amazon S3 버킷 하나에 취합할 수 있습니다. 이러한 도구에 대한 자세한 내용은 AWS Command Line Interface사용 설명서를 참조하세요.

다음을 지정하면서 create-trail 명령을 사용하여 추가 계정에서 CloudTrail을 활성화합니다.

  • --name은 추적의 이름을 지정합니다.

  • --s3-bucket-name은 첫 번째 계정(이 예에서는 111111111111)에서 CloudTrail을 활성화할 때 생성된 기존 Amazon S3 버킷을 지정합니다.

  • --s3-prefix는 로그 파일 전송 경로에 대한 접두사를 지정합니다(선택 사항).

  • --is-multi-region-trail은 이 추적이 모든 AWS 리전에서 이벤트를 로깅하도록 지정합니다.

콘솔을 사용하여 생성한 추적과 달리 AWS CLI를 사용하여 생성한 모든 추적에는 이름을 지정해야 합니다. 계정이 AWS 리소스를 실행하고 있는 각 리전에 대해 추적 한 개를 생성할 수 있습니다.

다음의 예제 명령은 AWS CLI를 사용하여 추가 계정에 대해 추적을 생성하는 방법을 보여 줍니다. 이러한 계정에 대한 로그 파일이 첫 번째 계정(이 예에서는 111111111111)에 생성한 버킷으로 전송되도록 하려면 --s3-bucket-name 옵션에 해당 버킷의 이름을 지정합니다. Amazon S3 버킷 이름은 전역적으로 고유합니다.

aws cloudtrail create-trail --name my-trail --s3-bucket-name my-bucket --is-multi-region-trail

명령을 실행하면 다음과 비슷한 출력 화면이 나타납니다.

{ "IncludeGlobalServiceEvents": true, "Name": "AWSCloudTrailExample", "TrailARN": "arn:aws:cloudtrail:us-east-2:222222222222:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": false, "S3BucketName": "MyBucketBelongingToAccount111111111111" }

AWS 명령줄 도구에서 CloudTrail을 사용하는 방법에 대한 자세한 내용은 CloudTrail 명령줄 레퍼런스를 참조하세요.