네트워크 활동 이벤트 로깅 - AWS CloudTrail

네트워크 활동 이벤트 로깅

참고

네트워크 활동 이벤트는 CloudTrail에 대한 평가판 릴리스에서 제공되며, 변경 가능합니다.

CloudTrail 네트워크 활동 이벤트를 사용하면 VPC 엔드포인트 소유자가 프라이빗 VPC에서 AWS 서비스로 VPC 엔드포인트를 사용하여 수행된 AWS API 직접 호출을 기록할 수 있습니다. 네트워크 활동 이벤트를 통해 리소스 상에서 또는 리소스 내에서 수행되는 리소스 작업을 파악할 수 있습니다. 예를 들어, 네트워크 활동 이벤트를 로깅하면 VPC 엔드포인트 소유자가 조직 외부의 자격 증명이 VPC 엔드포인트에 액세스하려고 시도할 때 이를 감지할 수 있습니다.

다음 서비스에 대한 네트워크 활동 이벤트를 로깅할 수 있습니다.

  • AWS CloudTrail

  • Amazon EC2

  • AWS KMS

  • AWS Secrets Manager

네트워크 활동 이벤트를 로깅하도록 추적 및 이벤트 데이터 저장소를 모두 구성할 수 있습니다.

기본적으로 추적과 이벤트 데이터 저장소는 네트워크 활동 이벤트를 로깅하지 않습니다. 네트워크 활동 이벤트에는 추가 요금이 부과됩니다. 자세한 내용은 AWS CloudTrail 요금을 참조하십시오.

네트워크 활동 이벤트에 대한 고급 이벤트 선택기 필드

활동을 로깅할 이벤트 소스를 지정하여 네트워크 활동 이벤트를 로깅하도록 고급 이벤트 선택기를 구성합니다. AWS SDK, AWS CLI 또는 CloudTrail 콘솔을 사용하여 고급 이벤트 선택기를 구성할 수 있습니다.

네트워크 활동 이벤트를 로깅하려면 다음과 같은 고급 이벤트 선택기 필드가 필요합니다.

  • eventCategory – 네트워크 활동 이벤트를 로깅하려면 값이 NetworkActivity여야 합니다. eventCategory에서는 Equals 연산자만 사용할 수 있습니다.

  • eventSource - 네트워크 활동 이벤트를 로깅하려는 이벤트 소스입니다. eventSource에서는 Equals 연산자만 사용할 수 있습니다. 여러 이벤트 소스에 대한 네트워크 활동 이벤트를 로깅하려면 각 이벤트 소스에 대해 별도의 필드 선택기를 생성해야 합니다.

    유효한 값으로는 다음이 포함됩니다.

    • cloudtrail.amazonaws.com

    • ec2.amazonaws.com

    • kms.amazonaws.com

    • secretsmanager.amazonaws.com

다음과 같은 고급 이벤트 선택기 필드는 선택 사항입니다.

  • eventName - 필터링하려는 요청된 작업. 예를 들어 CreateKey 또는 ListKeys와 같습니다. eventName은 모든 연산자를 사용할 수 있습니다.

  • errorCode - 필터링하려는 요청된 오류 코드. 현재 유일한 유효 errorCodeVpceAccessDenied입니다. errorCode와 함께 Equals 연산자만 사용할 수 있습니다.

  • vpcEndpointId – 작업이 통과한 VPC 엔드포인트를 식별합니다. vpcEndpointId에서 모든 연산자를 사용할 수 있습니다.

추적 또는 이벤트 데이터 저장소를 생성하면 네트워크 활동 이벤트는 기본적으로 로깅되지 않습니다. CloudTrail 네트워크 활동 이벤트를 기록하려면 활동을 수집할 각 이벤트 소스를 명시적으로 구성해야 합니다.

네트워크 활동 이벤트 로깅에는 추가 요금이 부과됩니다. CloudTrail 요금은 AWS CloudTrail 요금을 참조하세요.

AWS Management Console 방법을 사용하여 네트워크 활동 이벤트 로깅

콘솔을 사용하여 네트워크 활동 이벤트를 로깅하도록 기존 추적 또는 이벤트 데이터 저장소를 업데이트할 수 있습니다.

네트워크 활동 이벤트를 로깅하도록 기존 추적 업데이트

다음 절차를 사용하여 네트워크 활동 이벤트를 로깅하도록 기존 이벤트 데이터 저장소를 업데이트합니다.

참고

네트워크 활동 이벤트 로깅에는 추가 요금이 부과됩니다. CloudTrail 요금은 AWS CloudTrail 요금을 참조하세요.

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

  2. CloudTrail 콘솔의 왼쪽 탐색 창에서 [추적(Trails)] 페이지를 열고 추적 이름을 선택합니다.

  3. 네트워크 활동 이벤트에서 편집을 선택합니다.

    네트워크 활동 이벤트를 로깅하려면 다음 단계를 수행합니다.

    1. 네트워크 활동 이벤트 소스에서 네트워크 활동 이벤트의 소스를 선택합니다.

    2. 로그 선택기 템플릿(Log selector template)에서 템플릿을 선택합니다. 모든 네트워크 활동 이벤트를 로깅하거나 모든 네트워크 활동 액세스 거부 이벤트를 로깅하거나 사용자 지정을 선택하여 eventNamevpcEndpointId와 같은 여러 필드를 기준으로 필터링할 사용자 지정 로그 선택기를 빌드할 수 있습니다.

    3. (선택 사항) 선택기를 식별할 이름을 입력합니다. 선택기 이름은 고급 이벤트 선택기에서의 이름으로 나열되며 JSON 보기를 확장하면 볼 수 있습니다.

    4. 고급 이벤트 선택기에서 필드, 연산자을 선택하여 표현식을 빌드합니다. 사전 정의된 로그 템플릿을 사용한다면 이 단계를 건너뛸 수 있습니다.

      1. 네트워크 활동 이벤트를 제외하거나 포함하는 경우 콘솔의 다음 필드 중에서 선택할 수 있습니다.

        • eventNameeventName에서 모든 연산자를 사용할 수 있습니다. 이를 사용하여 이벤트(예: CreateKey)를 포함하거나 제외할 수 있습니다.

        • errorCode - 이를 사용하여 오류 코드를 기준으로 필터링할 수 있습니다. 현재 지원되는 유일한 errorCodeVpceAccessDenied입니다.

        • vpcEndpointId - 작업이 통과한 VPC 엔드포인트를 식별합니다. vpcEndpointId에서 모든 연산자를 사용할 수 있습니다.

      2. 각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다.

      3. 필요에 따라 필드를 추가하려면 [+ 필드(+ Field)]를 선택합니다. 오류를 방지하려면 필드에 충돌하거나 중복되는 값을 설정하지 마세요.

    5. 네트워크 활동 이벤트를 로깅할 다른 이벤트 소스를 추가하려면 네트워크 활동 이벤트 선택기 추가를 선택합니다.

    6. 선택적으로 JSON 뷰(JSON view)를 확장하여 고급 이벤트 선택기를 JSON 블록으로 볼 수 있습니다.

  4. 변경 사항을 저장하려면 변경 사항 저장을 선택합니다.

네트워크 활동 이벤트를 로깅하도록 기존 이벤트 데이터 저장소 업데이트

다음 절차를 사용하여 데이터 이벤트를 로깅하도록 기존 이벤트 데이터 저장소를 업데이트합니다.

참고

CloudTrail 이벤트 유형의 이벤트 데이터 저장소에서만 네트워크 활동 이벤트를 로깅할 수 있습니다.

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

  2. CloudTrail 콘솔의 왼쪽 탐색 창에서 Lake를 선택한 다음, 이벤트 데이터 스토어(Event data stores)를 선택합니다.

  3. 이벤트 데이터 스토어 이름을 선택합니다.

  4. 네트워크 활동 이벤트에서 편집을 선택합니다.

    네트워크 활동 이벤트를 로깅하려면 다음 단계를 수행합니다.

    1. 네트워크 활동 이벤트 소스에서 네트워크 활동 이벤트의 소스를 선택합니다.

    2. 로그 선택기 템플릿(Log selector template)에서 템플릿을 선택합니다. 모든 네트워크 활동 이벤트를 로깅하거나 모든 네트워크 활동 액세스 거부 이벤트를 로깅하거나 사용자 지정을 선택하여 eventNamevpcEndpointId와 같은 여러 필드를 기준으로 필터링할 사용자 지정 로그 선택기를 빌드할 수 있습니다.

    3. (선택 사항) 선택기를 식별할 이름을 입력합니다. 선택기 이름은 고급 이벤트 선택기에서의 이름으로 나열되며 JSON 보기를 확장하면 볼 수 있습니다.

    4. 고급 이벤트 선택기에서 필드, 연산자을 선택하여 표현식을 빌드합니다. 사전 정의된 로그 템플릿을 사용한다면 이 단계를 건너뛸 수 있습니다.

      1. 네트워크 활동 이벤트를 제외하거나 포함하는 경우 콘솔의 다음 필드 중에서 선택할 수 있습니다.

        • eventNameeventName에서 모든 연산자를 사용할 수 있습니다. 이를 사용하여 이벤트(예: CreateKey)를 포함하거나 제외할 수 있습니다.

        • errorCode - 이를 사용하여 오류 코드를 기준으로 필터링할 수 있습니다. 현재 지원되는 유일한 errorCodeVpceAccessDenied입니다.

        • vpcEndpointId - 작업이 통과한 VPC 엔드포인트를 식별합니다. vpcEndpointId에서 모든 연산자를 사용할 수 있습니다.

      2. 각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다.

      3. 필요에 따라 필드를 추가하려면 [+ 필드(+ Field)]를 선택합니다. 오류를 방지하려면 필드에 충돌하거나 중복되는 값을 설정하지 마세요.

    5. 네트워크 활동 이벤트를 로깅할 다른 이벤트 소스를 추가하려면 네트워크 활동 이벤트 선택기 추가를 선택합니다.

    6. 선택적으로 JSON 뷰(JSON view)를 확장하여 고급 이벤트 선택기를 JSON 블록으로 볼 수 있습니다.

  5. 변경 사항을 저장하려면 변경 사항 저장을 선택합니다.

AWS Command Line Interface 방법을 사용하여 네트워크 활동 이벤트 로깅

AWS CLI를 사용하여 네트워크 활동 이벤트를 로깅하도록 추적이나 이벤트 데이터 저장소를 구성할 수 있습니다.

예제: 추적에 대한 네트워크 활동 이벤트 로깅

AWS CLI를 사용하여 데이터 이벤트를 로깅하도록 추적을 구성할 수 있습니다. put-event-selectors 명령을 실행하여 추적에 대한 고급 이벤트 선택기를 구성합니다.

추적이 네트워크 활동 이벤트를 로깅하는지 여부를 확인하려면 get-event-selectors 명령을 실행합니다.

예제: CloudTrail 작업에 대한 네트워크 활동 이벤트 로깅

다음 예제에서는 CreateTrailCreateEventDataStore 직접 호출과 같은 CloudTrail API 작업에 대한 모든 네트워크 활동 이벤트를 포함하도록 추적을 구성하는 방법을 보여줍니다. eventSource 필드 값은 cloudtrail.amazonaws.com입니다.

aws cloudtrail put-event-selectors / --trail-name TrailName / --region region / --advanced-event-selectors '[ { "Name": "Audit all CloudTrail API calls through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["cloudtrail.amazonaws.com"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Audit all CloudTrail API calls through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "cloudtrail.amazonaws.com" ] } ] } ] }

예제: AWS KMS에 대한 VpceAccessDenied 이벤트 로깅

다음 예제는 AWS KMS에 대한 VpceAccessDenied 이벤트를 포함하도록 추적을 구성하는 방법을 보여줍니다. 이 예제에서는 errorCode 필드를 VpceAccessDenied 이벤트와 같게 설정하고 eventSource 필드를 kms.amazonaws.com으로 설정합니다.

aws cloudtrail put-event-selectors \ --region region / --trail-name TrailName / --advanced-event-selectors '[ { "Name": "Audit AccessDenied AWS KMS events through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["kms.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied AWS KMS events through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "kms.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] } ] } ] }

예제: 특정 VPC 엔드포인트에서 EC2 VpceAccessDenied 이벤트 로깅

다음 예제에서는 특정 VPC 엔드포인트에서 Amazon EC2에 대한 VpceAccessDenied 이벤트를 포함하도록 추적을 구성하는 방법을 보여줍니다. 이 예제에서는 errorCode 필드를 VpceAccessDenied 이벤트와 같게 설정하고, eventSource 필드를 ec2.amazonaws.com으로 설정하며 vpcEndpointId를 관심 VPC 엔드포인트와 같게 설정합니다.

aws cloudtrail put-event-selectors \ --region region / --trail-name TrailName / --advanced-event-selectors '[ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["ec2.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] }, { "Field": "vpcEndpointId", "Equals": ["vpce-example8c1b6b9b7"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "ec2.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] }, { "Field": "vpcEndpointId", "Equals": [ "vpce-example8c1b6b9b7" ] } ] } ] }

예제: 이벤트 데이터 스토어에 대한 네트워크 활동 이벤트 로깅

AWS CLI를 사용하여 네트워크 활동 이벤트를 포함하도록 이벤트 데이터 저장소를 구성할 수 있습니다. create-event-data-store 명령을 사용하여 네트워크 활동 이벤트를 로깅할 새 이벤트 데이터 저장소를 생성합니다. update-event-data-store 명령을 사용하여 기존 이벤트 데이터 스토어의 고급 이벤트 선택기를 업데이트합니다.

이벤트 데이터 저장소에 네트워크 활동 이벤트가 포함되어 있는지 확인하려면 get-event-data-store 명령을 실행합니다.

aws cloudtrail get-event-data-store --event-data-store EventDataStoreARN

예제: CloudTrail 작업에 대한 모든 네트워크 활동 이벤트 로깅

다음 예제에서는 CreateTrailCreateEventDataStore에 대한 직접 호출과 같은 CloudTrail 작업과 관련된 모든 네트워크 활동 이벤트를 포함하는 이벤트 데이터 저장소를 생성하는 방법을 보여줍니다. eventSource 필드 값은 cloudtrail.amazonaws.com으로 설정됩니다.

aws cloudtrail create-event-data-store \ --name "EventDataStoreName" \ --advanced-event-selectors '[ { "Name": "Audit all CloudTrail API calls over VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["cloudtrail.amazonaws.com"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE492-301f-4053-ac5e-EXAMPLE441aa", "Name": "EventDataStoreName", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Audit all CloudTrail API calls over VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "cloudtrail.amazonaws.com" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2024-05-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2024-05-20T21:00:17.820000+00:00" }

예제: AWS KMS에 대한 VpceAccessDenied 이벤트 로깅

다음 예제에서는 AWS KMS에 대한 VpceAccessDenied 이벤트를 포함하도록 이벤트 데이터 저장소를 생성하는 방법을 보여줍니다. 이 예제에서는 errorCode 필드를 VpceAccessDenied 이벤트와 같게 설정하고 eventSource 필드를 kms.amazonaws.com으로 설정합니다.

aws cloudtrail create-event-data-store \ --name EventDataStoreName \ --advanced-event-selectors '[ { "Name": "Audit AccessDenied AWS KMS events over VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["kms.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEb4a8-99b1-4ec2-9258-EXAMPLEc890", "Name": "EventDataStoreName", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied AWS KMS events over VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "kms.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2024-05-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2024-05-20T21:00:17.820000+00:00" }

예제: 특정 VPC 엔드포인트에서 EC2 VpceAccessDenied 이벤트 로깅

다음 예제에서는 특정 VPC 엔드포인트에서 Amazon EC2에 대한 VpceAccessDenied 이벤트를 포함하도록 이벤트 데이터 저장소를 생성하는 방법을 보여줍니다. 이 예제에서는 errorCode 필드를 VpceAccessDenied 이벤트와 같게 설정하고, eventSource 필드를 ec2.amazonaws.com으로 설정하며 vpcEndpointId를 관심 VPC 엔드포인트와 같게 설정합니다.

aws cloudtrail create-event-data-store \ --name EventDataStoreName \ --advanced-event-selectors '[ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["ec2.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] }, { "Field": "vpcEndpointId", "Equals": ["vpce-example8c1b6b9b7"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEb4a8-99b1-4ec2-9258-EXAMPLEc890", "Name": "EventDataStoreName", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "ec2.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] }, { "Field": "vpcEndpointId", "Equals": [ "vpce-example8c1b6b9b7" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2024-05-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2024-05-20T21:00:17.820000+00:00" }

AWS SDK를 사용하여 이벤트 로깅

GetEventSelectors 작업을 실행하여 추적이 네트워크 활동 이벤트를 로깅하고 있는지 확인합니다. PutEventSelectors 작업을 실행하여 네트워크 활동 이벤트를 로깅하도록 추적을 구성할 수 있습니다. 자세한 내용은 AWS CloudTrail API 참조를 참조하세요.

GetEventSelectors 작업을 실행하여 데이터 이벤트 스토어가 네트워크 활동 이벤트를 로깅하고 있는지 확인합니다. CreateEventDatastore 또는 UpdateEventDatastore 작업을 실행하고, 고급 이벤트 선택기를 지정하여 네트워크 활동 이벤트를 포함하는 이벤트 데이터 저장소를 구성할 수 있습니다. 자세한 내용은 AWS CLI를 사용하여 이벤트 데이터 저장소 생성, 업데이트 및 관리AWS CloudTrail API 참조를 참조하십시오.