콘솔과 사용자 지정 통합을 생성하세요. - AWS CloudTrail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

콘솔과 사용자 지정 통합을 생성하세요.

를 CloudTrail 사용하여 온프레미스 또는 클라우드에서 호스팅되는 사내 또는 SaaS 애플리케이션, 가상 머신 또는 컨테이너와 같은 하이브리드 환경의 모든 소스에서 사용자 활동 데이터를 기록하고 저장할 수 있습니다. CloudTrail Lake 콘솔에서 이 절차의 전반부를 수행한 다음 PutAuditEventsAPI를 호출하여 이벤트를 수집하고 채널 ARN 및 이벤트 페이로드를 제공합니다. PutAuditEventsAPI를 사용하여 애플리케이션 활동을 인제스트한 후에는 CloudTrail Lake를 사용하여 애플리케이션에서 기록된 데이터를 검색, 쿼리 및 분석할 수 있습니다. CloudTrail

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

  2. 탐색 창의 Lake에서 Integrations(통합)를 선택합니다.

  3. Add integration(통합 추가) 페이지에서 채널 이름을 입력합니다. 이름은 3~128자까지 지정할 수 있습니다. 이름에는 문자, 숫자, 마침표, 밑줄 및 대시만 사용할 수 있습니다.

  4. My custom integration(내 사용자 지정 통합)을 선택합니다.

  5. Event delivery location(이벤트 전달 위치)에서 기존 이벤트 데이터 스토어에 동일한 활동 이벤트를 로깅하거나 새 이벤트 데이터 스토어를 생성합니다.

    새 이벤트 데이터 스토어를 생성하려는 경우 이벤트 데이터 스토어의 이름을 입력하고 보존 기간을 일 단위로 지정합니다. 1년 연장 가능 보존 요금 옵션을 선택하는 경우 최대 3,653일(약 10년), 7년 보존 요금 옵션을 선택하는 경우 최대 2,557일(약 7년) 동안 이벤트 데이터를 이벤트 데이터 스토어에 보관할 수 있습니다.

    하나 이상의 기존 이벤트 데이터 스토어에 활동 이벤트를 로깅하도록 선택한 경우 목록에서 이벤트 데이터 스토어를 선택합니다. 이벤트 데이터 스토어에는 활동 이벤트만 포함될 수 있습니다. 콘솔의 이벤트 유형은 Events from integrations(통합 이벤트)여야 합니다. API에 eventCategory 값은 ActivityAuditLog여야 합니다.

  6. Resource policy(리소스 정책)에서 통합 채널의 리소스 정책을 구성합니다. 리소스 정책은 지정된 보안 주체가 리소스에 대해 수행할 수 있는 작업 및 관련 조건을 제어하는 JSON 정책 문서입니다. 리소스 정책에서 보안 주체로 정의된 계정은 PutAuditEvents API를 호출하여 채널에 이벤트를 전달할 수 있습니다.

    참고

    채널에 대한 리소스 정책을 생성하지 않으면 채널 소유자만 채널에서 PutAuditEvents API를 호출할 수 있습니다.

    1. (선택 사항) 고유한 외부 ID를 입력하면 추가 보호가 가능합니다. 외부 ID는 혼동된 대리자를 방지하는 계정 ID 또는 임의로 생성된 문자열과 같은 고유한 문자열입니다.

      참고

      리소스 정책에 외부 ID가 포함된 경우 PutAuditEvents API에 대한 모든 호출에 외부 ID가 포함되어야 합니다. 하지만 정책에서 외부 ID를 정의하지 않는 경우에도 여전히 PutAuditEvents API를 호출하고 externalId 파라미터를 지정할 수 있습니다.

    2. AWS 계정 추가를 선택하여 채널의 리소스 정책에 보안 주체로 추가할 각 AWS 계정 ID를 지정합니다.

  7. (선택 사항) Tags(태그) 영역에서는 최대 50개의 태그 키와 값 쌍을 추가하여 이벤트 데이터 스토어 및 채널에 대한 액세스를 식별, 정렬 및 제어할 수 있습니다. IAM 정책을 사용하여 태그를 기반으로 이벤트 데이터 스토어에 대한 액세스 권한을 부여하는 방법에 대한 자세한 내용은 예제: 태그를 기반으로 이벤트 데이터 스토어를 생성 또는 삭제하기 위한 액세스 거부 단원을 참조하세요. 에서 태그를 사용하는 방법에 대한 자세한 내용은 에서 AWSAWS 리소스 태그 지정을 참조하십시오. AWS 일반 참조

  8. 새 통합을 생성할 준비가 되면 Add integration(통합 추가)을 선택합니다. 리뷰 페이지가 없습니다. CloudTrail 통합을 생성하지만 사용자 지정 이벤트를 통합하려면 요청에 채널 ARN을 지정해야 합니다. PutAuditEvents

  9. PutAuditEventsAPI를 호출하여 활동 이벤트를 인제스트하십시오. CloudTrail PutAuditEvents 요청당 최대 100개의 활동 이벤트(또는 최대 1MB)를 추가할 수 있습니다. 이전 단계에서 만든 채널 ARN, CloudTrail 추가하려는 이벤트의 페이로드, 외부 ID (리소스 정책에 지정된 경우) 가 필요합니다. 이벤트 페이로드에 수집하기 전에 민감한 정보 또는 개인 식별 정보가 이벤트 페이로드에 포함되어 있지 않은지 확인하십시오. CloudTrail 인제스트하는 이벤트는 반드시 를 준수해야 합니다. CloudTrail CloudTrail 레이크 통합 이벤트 스키마

    작은 정보

    최신 AWS API를 실행하고 있는지 확인하는 AWS CloudShell데 사용합니다.

    다음 예제에서는 put-audit-events CLI 명령을 사용하는 방법을 보여줍니다. --audit-events--channel-arn 파라미터가 필요합니다. 이전 단계에서 생성한 채널의 ARN이 필요합니다. 이 ARN은 통합 세부 정보 페이지에서 복사할 수 있습니다. 의 값은 이벤트 객체로 구성된 JSON --audit-events 배열입니다. --audit-events이벤트의 필수 ID, 이벤트의 필수 페이로드 (값)EventData, 수집 후 이벤트의 무결성을 검증하는 데 도움이 되는 선택적 체크섬이 포함됩니다. CloudTrail

    aws cloudtrail-data put-audit-events \ --region region \ --channel-arn $ChannelArn \ --audit-events \ id="event_ID",eventData='"{event_payload}"' \ id="event_ID",eventData='"{event_payload}"',eventDataChecksum="optional_checksum"

    다음은 두 개의 이벤트 예제가 포함된 명령 예제입니다.

    aws cloudtrail-data put-audit-events \ --region us-east-1 \ --channel-arn arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --audit-events \ id="EXAMPLE3-0f1f-4a85-9664-d50a3EXAMPLE",eventData='"{\"eventVersion\":\0.01\",\"eventSource\":\"custom1.domain.com\", ... \}"' \ id="EXAMPLE7-a999-486d-b241-b33a1EXAMPLE",eventData='"{\"eventVersion\":\0.02\",\"eventSource\":\"custom2.domain.com\", ... \}"',eventDataChecksum="EXAMPLE6e7dd61f3ead...93a691d8EXAMPLE"

    다음 명령 예제는 --cli-input-json 파라미터를 추가하여 이벤트 페이로드의 JSON 파일(custom-events.json)을 지정합니다.

    aws cloudtrail-data put-audit-events \ --channel-arn $channelArn \ --cli-input-json file://custom-events.json \ --region us-east-1

    다음은 예제 JSON 파일인 custom-events.json의 샘플 콘텐츠입니다.

    { "auditEvents": [ { "eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"source_IP_address\",\"recipientAccountId\":\"recipient_account_ID\"}", "id": "1" } ] }

(선택 사항) 체크섬 값 계산

EventDataChecksumPutAuditEvents요청에서 값으로 지정하는 체크섬은 체크섬과 일치하는 이벤트를 CloudTrail 수신했는지 확인하는 데 도움이 되며, 이벤트의 무결성을 확인하는 데 도움이 됩니다. 체크섬 값은 다음 명령을 실행하여 계산하는 base64-SHA256 알고리즘입니다.

printf %s "{"eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"source_IP_address\", \"recipientAccountId\":\"recipient_account_ID\"}", "id": "1"}" \ | openssl dgst -binary -sha256 | base64

명령은 체크섬을 반환합니다. 다음은 예입니다.

EXAMPLEHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=

체크섬 값은 PutAuditEvents 요청에서 EventDataChecksum의 값이 됩니다. 체크섬이 제공된 이벤트의 체크섬과 일치하지 않으면 오류가 발생하여 이벤트를 CloudTrail 거부합니다. InvalidChecksum