AWS CloudWatch を Google SecOps と統合する

このドキュメントでは、AWS CloudWatch を Google Security Operations(Google SecOps)と統合する方法について説明します。

統合バージョン: 6.0

ユースケース

アクティブなアクション - ログの検索、ロググループ/ストリームの作成、ロググループ/ストリームの削除、保持ポリシーの更新。

統合のパラメータ

次のパラメータを使用して統合を構成します。

パラメータの表示名> Type> デフォルト値> 必須> 説明
AWS アクセスキー ID 文字列 なし 統合で使用する AWS アクセスキー ID。
AWS シークレット キー パスワード なし 統合で使用する AWS 秘密鍵。
AWS のデフォルト リージョン 文字列 なし 統合で使用する AWS のデフォルト リージョン(例: us-west-2)。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応する手動アクションを実行するをご覧ください。

Ping

AWS CloudWatch への接続をテストします。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。
成功した場合: 「指定された接続パラメータを使用して AWS CloudWatch サーバーに正常に接続されました。」

アクションが失敗し、ハンドブックの実行が停止します。
成功しなかった場合:「AWS CloudWatch サーバーへの接続に失敗しました。エラーは {0}」.format(exception.stacktrace)

全般

ロググループの一覧表示

AWS CloudWatch で使用可能なロググループを一覧表示します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
返されるグループの最大数 Integer 50 いいえ 返すグループの数を指定します。デフォルト: 50。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
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)

一般
Case Wall テーブル

名前: 「ロググループ」

列:

名前

指標フィルタの数

保存されたバイト数

作成時間

全般

ログストリームの一覧表示

AWS CloudWatch で使用可能なログストリームを一覧表示します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ CSV なし はい ログストリームを取得するグループ名のカンマ区切りのリストを指定します。
Order By DDL

ログ ストリーム名

有効な値:

ログストリーム名

前回のイベントの時刻

いいえ ログストリームの順序を指定します。
並べ替え順序 DDL

昇順

有効な値:

昇順

降順

いいえ 使用する並べ替え順序を指定します。
返される最大ストリーム数 Integer 50 いいえ ロググループごとに返すストリームの数を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
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"
        }
    ]
}
]
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。
少なくとも 1 つのロググループのデータが利用可能な場合(is_success = true): 「AWS CloudWatch の次のロググループで利用可能なログストリームが正常に返されました: {グループ名}」。

少なくとも 1 つのロググループのデータがない場合(is_success = true): 「AWS CloudWatch で次のロググループの利用可能なログストリームを返すことができませんでした: {group names}」。

少なくとも 1 つのロググループでデータが利用できない場合(is_success = false):「AWS CloudWatch で指定されたロググループのログストリームが見つかりませんでした。」

アクションが失敗し、ハンドブックの実行が停止します:
認証情報が間違っている、サーバーに接続できない、その他など、致命的なエラーが発生した場合:「アクション「ログストリームの一覧表示」の実行エラー。理由: {0}」.format(error.Stacktrace)

一般
Case Wall テーブル

名前: 「{グループ名}: ログ ストリーム」

列:

名前

保存されたバイト数

作成時間

最終イベントのタイムスタンプ

全般

検索ログイベント

AWS CloudWatch でログイベントを検索します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ 文字列 なし はい イベントを検索するロググループの名前を指定します。
ログストリーム CSV なし いいえ イベントを検索するログストリームのカンマ区切りのリストを指定します。
期間 DDL

Last Hour

有効な値:

Last Hour

過去 6 時間

過去 24 時間

先週

先月

カスタム

いいえ 検索の期間を指定します。「カスタム」を選択した場合は、「開始時刻」も設定する必要があります。
開始時刻 文字列 なし いいえ 検索の開始時刻を指定します。[期間] パラメータに [カスタム] が選択されている場合、このパラメータは必須です。形式: ISO 8601
終了時刻 文字列 なし いいえ 検索の終了時刻を指定します。形式: ISO 8601。何も指定されず、「期間」パラメータで「カスタム」が選択されている場合、このパラメータは現在の時刻を使用します。
Custom Filter 文字列 なし いいえ 検索のカスタム フィルタを指定します。詳細については、ドキュメント ポータルをご覧ください。
返されるイベントの最大数 整数 50 いいえ 返すイベントの数を指定します。デフォルト: 50。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
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)

一般
Case Wall テーブル

名前: 「Search Results」

列: すべてのキーが使用可能です。

全般

保持ポリシーを設定する

AWS CloudWatch でロググループの保持ポリシーを設定します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ 文字列 なし はい 保持ポリシーを設定するロググループの名前を指定します。
保持日数 DDL

1

指定できる値

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

はい ロググループにデータを保持する日数を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。
データが成功した場合(is_success = true): 「AWS CloudWatch のロググループ {group} の保持ポリシーが正常に設定されました。」

アクションが失敗し、ハンドブックの実行が停止します:
認証情報が間違っている、サーバーに接続できない、その他など、致命的なエラーが発生した場合:「アクション「保持ポリシーの設定」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

保持ポリシーを削除する

AWS CloudWatch のロググループから保持ポリシーを削除します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ 文字列 なし はい 保持ポリシーを削除するロググループの名前を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。
データが成功した場合(is_success = true): 「AWS CloudWatch のロググループ {group} から保持ポリシーが正常に削除されました。」

アクションが失敗し、ハンドブックの実行が停止します:
認証情報が間違っている、サーバーに接続できない、その他など、致命的なエラーが発生した場合:「アクション「保持ポリシーの削除」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

ロググループを作成する

AWS CloudWatch にロググループを作成します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ名 文字列 なし はい 新しいロググループの名前を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
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 のロググループのログストリームを作成します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ 文字列 なし はい ログストリームを作成するロググループの名前を指定します。
ログストリーム名 文字列 なし はい 新しいログストリームの名前を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
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 でロググループを削除します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ名 文字列 なし はい 削除する必要があるロググループの名前を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。
データが成功した場合(is_success = true): 「AWS CloudWatch でロググループ {group} が正常に削除されました。」

グループが存在しない場合(is_success=false):「アクションは、AWS CloudWatch でロググループ {group} を削除できませんでした。理由: ロググループ {group} が AWS CloudWatch で見つかりませんでした。」

アクションが失敗し、ハンドブックの実行が停止します:
認証情報が間違っている、サーバーに接続できない、その他など、致命的なエラーが発生した場合:「アクション「ロググループの削除」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

ログストリームを削除する

AWS CloudWatch のロググループ内のログストリームを削除します。

パラメータ

パラメータの表示名> Type> デフォルト値> 必須> 説明
ロググループ名 文字列 なし はい ログストリームを含むロググループの名前を指定します。
ログストリーム名 文字列 なし はい 削除する必要があるログストリームの名前を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名> [Value Options](値のオプション)>
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} を削除できませんでした。理由: ロググループ {group} が AWS CloudWatch で見つかりませんでした。」

アクションが失敗し、ハンドブックの実行が停止します:
認証情報が間違っている、サーバーに接続できない、その他など、致命的なエラーが発生した場合:「アクション「ログストリームの削除」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。