AWS CloudWatch를 Google SecOps와 통합

이 문서에서는 AWS CloudWatch를 Google Security Operations (Google SecOps)와 통합하는 방법을 설명합니다.

통합 버전: 6.0

사용 사례

활성 작업 - 로그 검색, 로그 그룹/스트림 생성, 로그 그룹/스트림 삭제, 보존 정책 업데이트

통합 매개변수

다음 매개변수를 사용하여 통합을 구성합니다.

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
AWS 액세스 키 ID 문자열 해당 사항 없음 통합에 사용할 AWS 액세스 키 ID입니다.
AWS 보안 비밀 키 비밀번호 해당 사항 없음 통합에 사용할 AWS 보안 비밀 키입니다.
AWS 기본 리전 문자열 해당 사항 없음 통합에 사용할 AWS 기본 리전입니다(예: us-west-2).

Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.

필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.

작업

작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답수동 작업 실행을 참고하세요.

AWS CloudWatch에 대한 연결을 테스트합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하지 않거나 플레이북 실행을 중지하지 않아야 합니다.
성공한 경우: '제공된 연결 매개변수로 AWS CloudWatch 서버에 성공적으로 연결되었습니다.'

작업이 실패하고 플레이북 실행이 중지되어야 합니다.
실패한 경우: 'AWS CloudWatch 서버에 연결할 수 없습니다. 오류: {0}".format(exception.stacktrace)

일반

로그 그룹 나열

AWS CloudWatch에서 사용 가능한 로그 그룹을 나열합니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
반환할 최대 그룹 수 정수 50 아니요 반환할 그룹 수를 지정합니다. 기본값: 50

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
JSON 결과
[
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1611581795766,
        "logGroupName": "CloudTrail/DefaultLogGroup",
        "metricFilterCount": 0,
        "storedBytes": 24529015
    },
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1606993203235,
        "logGroupName": "Example",
        "metricFilterCount": 1,
        "storedBytes": 730
    },
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1611652265055,
        "logGroupName": "aws-cloudtrail-logs",
        "metricFilterCount": 0,
        "storedBytes": 51354815
    }
]
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터를 사용할 수 있는 경우 (is_success = true): 'AWS CloudWatch에서 사용 가능한 로그 그룹을 반환했습니다.'

데이터를 사용할 수 없는 경우 (is_success = true): 'AWS CloudWatch에서 로그 그룹을 찾을 수 없습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: ''로그 그룹 나열' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반
케이스 월 테이블

이름: '로그 그룹'

열:

이름

측정항목 필터 수

저장된 바이트

생성 시간

일반

로그 스트림 나열

AWS CloudWatch에서 사용 가능한 로그 스트림을 나열합니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 CSV 해당 사항 없음 로그 스트림을 가져올 그룹 이름을 쉼표로 구분하여 지정합니다.
정렬 기준 DDL

로그 스트림 이름

가능한 값은 다음과 같습니다.

로그 스트림 이름

최종 이벤트 시간

아니요 로그 스트림의 순서를 지정합니다.
정렬 순서 DDL

오름차순

가능한 값은 다음과 같습니다.

오름차순

내림차순

아니요 사용할 정렬 순서를 지정합니다.
반환할 최대 스트림 수 정수 50 아니요 로그 그룹당 반환할 스트림 수를 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
JSON 결과
[{
    "group":"{group name}"
"logStreams": [
        {
            "arn": "arn:aws:logs:us-east-1:log-group:aws-cloudtrail-logs:log-stream:CloudTrail_us-east-1",
            "creationTime": 1611652272827,
            "firstEventTimestamp": 1611652287716,
            "lastEventTimestamp": 1612271538268,
            "lastIngestionTime": 1612271538289,
            "logStreamName": "CloudTrail_us-east-1",
            "storedBytes": 0,
            "uploadSequenceToken": "49039859450784908968417870788122674924958823185025535393"
        }
    ]
}
]
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
하나 이상의 로그 그룹에 데이터를 사용할 수 있는 경우 (is_success = true): 'AWS CloudWatch: {group names}의 다음 로그 그룹에 사용할 수 있는 로그 스트림을 반환했습니다.'

하나 이상의 로그 그룹에 데이터를 사용할 수 없는 경우 (is_success = true): '작업이 AWS CloudWatch: {group names}의 다음 로그 그룹에 사용할 수 있는 로그 스트림을 반환할 수 없습니다.'

하나 이상의 로그 그룹에 데이터를 사용할 수 없는 경우 (is_success = false): 'AWS CloudWatch에서 제공된 로그 그룹의 로그 스트림을 찾을 수 없습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: '로그 스트림 나열' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반
케이스 월 테이블

이름: '{그룹 이름}: 로그 스트림'

열:

이름

저장된 바이트

생성 시간

마지막 이벤트 타임스탬프

일반

검색 로그 이벤트

AWS CloudWatch에서 로그 이벤트를 검색합니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 문자열 해당 사항 없음 이벤트를 검색할 로그 그룹의 이름을 지정합니다.
로그 스트림 CSV 해당 사항 없음 아니요 이벤트를 검색할 로그 스트림을 쉼표로 구분하여 지정합니다.
기간 DDL

지난 1시간

가능한 값은 다음과 같습니다.

지난 1시간

지난 6시간

지난 24시간

지난주

지난달

커스텀

아니요 검색 기간을 지정합니다. '맞춤'을 선택한 경우 '시작 시간'도 설정해야 합니다.
시작 시간 문자열 해당 사항 없음 아니요 검색 시작 시간을 지정합니다. '기간' 매개변수에 '커스텀'을 선택한 경우 이 매개변수는 필수 항목입니다. 형식: ISO 8601
종료 시간 문자열 해당 사항 없음 아니요 검색 종료 시간을 지정합니다. 형식: ISO 8601. 아무것도 제공하지 않고 '기간' 매개변수에 '커스텀'을 선택하면 이 매개변수는 현재 시간을 사용합니다.
커스텀 필터 문자열 해당 사항 없음 아니요 검색의 맞춤 필터를 지정합니다. 자세한 내용은 문서 포털을 참고하세요.
반환할 최대 이벤트 수 정수 50 아니요 반환할 이벤트 수를 지정합니다. 기본값: 50

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
JSON 결과
[
        {
            "eventId": "ID",
            "ingestionTime": 1611652287896,
            "logStreamName": "CloudTrail_us-east-1",
            "message": {
                "eventVersion": "1.08",
                "userIdentity": {
                    "type": "AssumedRole",
                    "principalId": "ID",
                    "arn":"arn:aw
s:sts: : ACCOUNT_ID:assumed-role/AWSServiceRoleForAmazonMacie/AmazonMacieSession","accountId":"ACCOUNT_ID","accessKeyId":"KEY_ID","sessionC
ontext":{"sessionIssuer":{"type":"Role","principalId":"ID","arn":"arn:aws:iam: : ACCOUNT_ID:role/aws-service-role/macie.amazonaws.com/AW
SServiceRoleForAmazonMacie","accountId":"ACCOUNT_ID","userName":"AWSServiceRoleForAmazonMacie"},"webIdFederationData":{},"attributes":{"mfaAuthenticated": "false",
                    "creationDate": "2021-01-26T08:53:52Z"
                }
            },
            "invokedBy": "AWS Internal",
            "eventTime": "2021-01-26T08:53:52Z",
            "eventSource": "s3.amazonaws.com",
            "eventName": "GetBucketLogging",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "AWSInternal",
            "userAgent": "AWS Internal",
            "requestParameters": {
                "logging": "",
                "bucketName": "example",
                "Host": "example.s3.amazonaws.com"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",
                "x-amz-id-2": "PFM+6pyK/gCPy95gh8dtstgtXftrpHkL8s=",
                "bytesTransferredOut": 289
            },
            "requestID": "8FA919A428BC82D7",
            "eventID": "7eb5dd44-7021-4945-b9be-27f5b1e0d8d0",
            "readOnly": true,
            "resources": [
                {
                    "accountId": "ACCOUNT_ID",
                    "type": "AWS::S3::Bucket",
                    "ARN": "arn:aws:s3:::example"
                }
            ],
            "eventType": "AwsApiCall",
            "managementEvent": true,
            "eventCategory": "Management",
            "recipientAccountId": "ACCOUNT_ID"
        },
        "timestamp": 1611652287716
    }
]
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터를 사용할 수 있는 경우 (is_success = true): 'AWS CloudWatch에서 검색을 실행했습니다.'

데이터를 사용할 수 없는 경우 (is_success = false): '제공된 검색에 대한 데이터를 찾을 수 없습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: ''로그 이벤트 검색' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반
케이스 월 테이블

이름: '검색 결과'

열: 사용 가능한 모든 키

일반

보관 정책 설정

AWS CloudWatch에서 로그 그룹의 보관 정책을 설정합니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 문자열 해당 사항 없음 보관 정책을 설정할 로그 그룹의 이름을 지정합니다.
보관 기간(일) DDL

1

가능한 값

1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653

로그 그룹에 데이터를 보관할 일수를 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터 성공(is_success = true): 'AWS CloudWatch에서 {group} 로그 그룹의 보관 정책을 설정했습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: ''보관 정책 설정' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

보관 정책 삭제

AWS CloudWatch의 로그 그룹에서 보관 정책을 삭제합니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 문자열 해당 사항 없음 보관 정책을 삭제할 로그 그룹의 이름을 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터 성공(is_success = true): 'AWS CloudWatch의 로그 그룹 {group}에서 보관 정책이 삭제되었습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: ''보관 정책 삭제' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

로그 그룹 만들기

AWS CloudWatch에서 로그 그룹을 만듭니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 이름 문자열 해당 사항 없음 새 로그 그룹의 이름을 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
JSON 결과
{
"group_name": "GROUP_NAME"
}
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터 성공(is_success = true): 'AWS CloudWatch에 새 로그 그룹 {group}을 만들었습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: ''로그 그룹 만들기' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

로그 스트림 만들기

AWS CloudWatch에서 로그 그룹의 로그 스트림을 만듭니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 문자열 해당 사항 없음 로그 스트림을 만들 로그 그룹의 이름을 지정합니다.
로그 스트림 이름 문자열 해당 사항 없음 새 로그 스트림의 이름을 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
JSON 결과
{
"log_stream": "STREAM_NAME"
}
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터 성공(is_success = true): 'AWS CloudWatch의 {group} 로그 그룹에 새 로그 스트림을 만들었습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: ''로그 스트림 만들기' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

로그 그룹 삭제

AWS CloudWatch에서 로그 그룹을 삭제합니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 이름 문자열 해당 사항 없음 삭제해야 하는 로그 그룹의 이름을 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터 성공(is_success = true): 'AWS CloudWatch에서 {group} 로그 그룹을 삭제했습니다.'

그룹이 존재하지 않는 경우 (is_success=false): '작업이 AWS CloudWatch에서 {group} 로그 그룹을 삭제할 수 없습니다. 이유: AWS CloudWatch에 {group} 로그 그룹이 없습니다."

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: ''로그 그룹 삭제' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

로그 스트림 삭제

AWS CloudWatch의 로그 그룹에서 로그 스트림을 삭제합니다.

매개변수

Parameter Display Name> Type> Default Value> 필수 항목> 설명>
로그 그룹 이름 문자열 해당 사항 없음 로그 스트림이 포함된 로그 그룹의 이름을 지정합니다.
로그 스트림 이름 문자열 해당 사항 없음 삭제해야 하는 로그 스트림의 이름을 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름> 값 옵션>
is_success is_success=False
is_success is_success=True
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
데이터 성공: (is_success = true): 'AWS CloudWatch에서 로그 그룹 {group}의 로그 스트림 {stream}을 삭제했습니다.'

스트림이 없는 경우 (is_success=false): '작업이 AWS CloudWatch의 로그 그룹 {group}에서 로그 스트림 {stream}을 삭제할 수 없습니다. 이유: AWS CloudWatch의 로그 그룹 {group}에 로그 스트림 {stream}이 없습니다.'

그룹이 존재하지 않는 경우 (is_success=false): '작업이 AWS CloudWatch의 로그 그룹 {group}에서 로그 스트림 {stream}을 삭제할 수 없습니다. 이유: AWS CloudWatch에 {group} 로그 그룹이 없습니다."

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: '로그 스트림 삭제' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.