AWS CLI を使用した GuardDuty の例 - AWS Command Line Interface

AWS CLI を使用した GuardDuty の例

次のコード例は、GuardDuty で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。

トピック

アクション

次のコード例では、accept-invitation を使用する方法を示しています。

AWS CLI

現在のリージョンで GuardDuty メンバーアカウントになるための招待を受け入れるには

次の accept-invitation の例は、現在のリージョンで GuardDuty メンバーアカウントになるための招待を受け入れる方法を示しています。

aws guardduty accept-invitation \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --master-id 123456789111 \ --invitation-id d6b94fb03a66ff665f7db8764example

このコマンドでは何も出力されません。

詳細については、「GuardDuty ユーザーガイド」の「招待による GuardDuty アカウントの管理」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「AcceptInvitation」を参照してください。

次のコード例では、archive-findings を使用する方法を示しています。

AWS CLI

現在のリージョンで検出結果をアーカイブするには

この archive-findings の例では、現在のリージョンで検出結果をアーカイブする方法を示します。

aws guardduty archive-findings \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --finding-ids d6b94fb03a66ff665f7db8764example 3eb970e0de00c16ec14e6910fexample

このコマンドでは何も出力されません。

詳細については、GuardDuty ユーザーガイドの「抑制ルールの作成」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ArchiveFindings」を参照してください。

次のコード例では、create-detector を使用する方法を示しています。

AWS CLI

現在のリージョンで GuardDuty を有効にするには

この例では、現在のリージョンで GuardDuty を有効にする新しいディテクターを作成する方法を示しています。

aws guardduty create-detector \ --enable

出力:

{ "DetectorId": "b6b992d6d2f48e64bc59180bfexample" }

詳細については、「GuardDuty ユーザーガイド」の「Amazon GuardDuty を有効にする」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「CreateDetector」を参照してください。

次のコード例では、create-filter を使用する方法を示しています。

AWS CLI

例 1: 現在のリージョンに新しいフィルタを作成するには

次の create-filter の例では、特定のイメージから作成されたインスタンスのすべての Portscan 検出結果に一致するフィルタを作成します。このフィルタは、これらの検出結果を抑制するものではありません。

aws guardduty create-filter \ --detector-id b6b992d6d2f48e64bc59180bfexample \ --name myFilterExample \ --finding-criteria '{"Criterion": {"type": {"Eq": ["Recon:EC2/Portscan"]},"resource.instanceDetails.imageId": {"Eq": ["ami-0a7a207083example"]}}}'

出力:

{ "Name": "myFilterExample" }

詳細については、GuardDuty ユーザーガイドの「GuardDuty 検出結果のフィルタリング」を参照してください。

例 2: 現在のリージョンで新しいフィルタを作成し、検出結果を抑制するには

次の create-filter の例では、特定のイメージから作成されたインスタンスのすべての Portscan 検出結果に一致するフィルタを作成します。このフィルタは、これらの検出結果をアーカイブして、現在の検出結果に表示されないようにします。

aws guardduty create-filter \ --detector-id b6b992d6d2f48e64bc59180bfexample \ --action ARCHIVE \ --name myFilterSecondExample \ --finding-criteria '{"Criterion": {"type": {"Eq": ["Recon:EC2/Portscan"]},"resource.instanceDetails.imageId": {"Eq": ["ami-0a7a207083example"]}}}'

出力:

{ "Name": "myFilterSecondExample" }

詳細については、GuardDuty ユーザーガイドの「GuardDuty 検出結果のフィルタリング」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「CreateFilter」を参照してください。

次のコード例では、create-ip-set を使用する方法を示しています。

AWS CLI

信頼された IP セットを作成して有効化するには

次の create-ip-set の例では、現在のリージョンで信頼された IP セットを作成して有効化します。

aws guardduty create-ip-set \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --name new-ip-set-example \ --format TXT \ --location s3://amzn-s3-demo-bucket/customtrustlist.csv \ --activate

出力:

{ "IpSetId": "d4b94fc952d6912b8f3060768example" }

詳細については、GuardDuty ユーザーガイドの「信頼された IP リストと脅威リストの使用」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「CreateIpSet」を参照してください。

次のコード例では、create-members を使用する方法を示しています。

AWS CLI

新しいメンバーを現在のリージョンの GuardDuty マスターアカウントに関連付けるには

この例では、現在のアカウントが管理するメンバーアカウントを GuardDuty マスターとして関連付ける方法を示します。

aws guardduty create-members --detector-id b6b992d6d2f48e64bc59180bfexample \ --account-details AccountId=111122223333,Email=first+member@example.com AccountId=111111111111 ,Email=another+member@example.com

出力:

{ "UnprocessedAccounts": [] }

詳細については、「GuardDuty ユーザーガイド」の「複数のアカウントを管理する」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「CreateMembers」を参照してください。

次のコード例では、create-publishing-destination を使用する方法を示しています。

AWS CLI

現在のリージョンの GuardDuty 検出結果をエクスポートする発行先を作成するには

次の create-publishing-destination の例では、現在の (アーカイブされていない) GuardDuty の検索結果をエクスポートして、過去の検索結果データを追跡するための、発行先を設定する方法を示します。

aws guardduty create-publishing-destination \ --detector-id b6b992d6d2f48e64bc59180bfexample \ --destination-type S3 \ --destination-properties 'DestinationArn=arn:aws:s3:::amzn-s3-demo-bucket,KmsKeyArn=arn:aws:kms:us-west-1:111122223333:key/84cee9c5-dea1-401a-ab6d-e1de7example'

出力:

{ "DestinationId": "46b99823849e1bbc242dfbe3cexample" }

詳細については、GuardDuty ユーザーガイドの「生成された GuardDuty 検出結果を Amazon S3 バケットにエクスポートする」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「CreatePublishingDestination」を参照してください。

次のコード例では、create-sample-findings を使用する方法を示しています。

AWS CLI

現在のリージョンでサンプルの GuardDuty 検出結果を作成するには

この例では、指定されたタイプのサンプル検出結果を作成する方法を示します。

aws guardduty create-sample-findings \ --detector-id b6b992d6d2f48e64bc59180bfexample \ --finding-types UnauthorizedAccess:EC2/TorClient UnauthorizedAccess:EC2/TorRelay

このコマンドでは何も出力されません。

詳細については、「GuardDuty ユーザーガイド」の「サンプルも検出結果」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「CreateSampleFindings」を参照してください。

次のコード例では、create-threat-intel-set を使用する方法を示しています。

AWS CLI

新しい脅威インテリジェンスセットを作成して有効化するには

次の create-threat-intel-set の例では、現在のリージョンで脅威インテリジェンスセットを作成して有効化します。

aws guardduty create-threat-intel-set \ --detector-id b6b992d6d2f48e64bc59180bfexample \ --name myThreatSet-example \ --format TXT \ --location s3://amzn-s3-demo-bucket/threatlist.csv \ --activate

出力:

{ "ThreatIntelSetId": "20b9a4691aeb33506b808878cexample" }

詳細については、GuardDuty ユーザーガイドの「信頼された IP リストと脅威リストの使用」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「CreateThreatIntelSet」を参照してください。

次のコード例では、decline-invitations を使用する方法を示しています。

AWS CLI

現在のリージョンの別のアカウントによって Guardduty が管理される招待を拒否するには

この例では、メンバーシップの招待を拒否する方法を示しています。

aws guardduty decline-invitations \ --account-ids 111122223333

出力:

{ "UnprocessedAccounts": [] }

詳細については、「GuardDuty ユーザーガイド」の「招待による GuardDuty アカウントの管理」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeclineInvitations」を参照してください。

次のコード例では、delete-detector を使用する方法を示しています。

AWS CLI

現在のリージョンでディテクターを削除し、GuardDuty を無効にするには

この例では、ディテクターを削除する方法を示しています。成功すると、そのディテクターに関連付けられたリージョンで GuardDuty が無効になります。

aws guardduty delete-detector \ --detector-id b6b992d6d2f48e64bc59180bfexample

このコマンドでは何も出力されません。

詳細については、「GuardDuty ユーザーガイド」の「GuardDuty の一時停止または無効化」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteDetector」を参照してください。

次のコード例では、delete-filter を使用する方法を示しています。

AWS CLI

現在のリージョンの既存のフィルターを削除するには

この例では、フィルターを削除する方法を示します。

aws guardduty delete-filter \ --detector-id b6b992d6d2f48e64bc59180bfexample \ --filter-name byebyeFilter

このコマンドでは何も出力されません。

詳細については、「GuardDuty ユーザーガイド」の「検出結果のフィルタリング」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteFilter」を参照してください。

次のコード例では、disable-organization-admin-account を使用する方法を示しています。

AWS CLI

組織内の GuardDuty の委任管理者としてアカウントを削除するには

この例では、GuardDuty の委任管理者としてアカウントを削除する方法を示します。

aws guardduty disable-organization-admin-account \ --admin-account-id 111122223333

このコマンドでは何も出力されません。

詳細については、「GuardDuty ユーザーガイド」の「AWS Organizations でのアカウントの管理」を参照してください。

次のコード例では、disassociate-from-master-account を使用する方法を示しています。

AWS CLI

現在のリージョンの現在の管理者アカウントとの関連付けを解除するには

次の disassociate-from-master-account の例では、アカウントと現在の AWS リージョンの現在の GuardDuty 管理者アカウントとの関連付けを解除します。

aws guardduty disassociate-from-master-account \ --detector-id d4b040365221be2b54a6264dcexample

このコマンドでは何も出力されません。

詳細については、GuardDuty ユーザーガイドの「GuardDuty 管理者アカウントとメンバーアカウントの関係について理解する」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DisassociateFromMasterAccount」を参照してください。

次のコード例では、get-detector を使用する方法を示しています。

AWS CLI

特定のディテクターの詳細を取得するには

次の get-detector の例では、指定されたディテクターの設定の詳細を表示します。

aws guardduty get-detector \ --detector-id 12abc34d567e8fa901bc2d34eexample

出力:

{ "Status": "ENABLED", "ServiceRole": "arn:aws:iam::111122223333:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty", "Tags": {}, "FindingPublishingFrequency": "SIX_HOURS", "UpdatedAt": "2018-11-07T03:24:22.938Z", "CreatedAt": "2017-12-22T22:51:31.940Z" }

詳細については、GuardDuty ユーザーガイドの「概念と用語」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetDetector」を参照してください。

次のコード例では、get-findings を使用する方法を示しています。

AWS CLI

例 1: 特定の検出結果の詳細を取得するには

次の get-findings の例では、指定された検出結果の完全な JSON 検出結果の詳細を取得します。

aws guardduty get-findings \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --finding-id 1ab92989eaf0e742df4a014d5example

出力:

{ "Findings": [ { "Resource": { "ResourceType": "AccessKey", "AccessKeyDetails": { "UserName": "testuser", "UserType": "IAMUser", "PrincipalId": "AIDACKCEVSQ6C2EXAMPLE", "AccessKeyId": "ASIASZ4SI7REEEXAMPLE" } }, "Description": "APIs commonly used to discover the users, groups, policies and permissions in an account, was invoked by IAM principal testuser under unusual circumstances. Such activity is not typically seen from this principal.", "Service": { "Count": 5, "Archived": false, "ServiceName": "guardduty", "EventFirstSeen": "2020-05-26T22:02:24Z", "ResourceRole": "TARGET", "EventLastSeen": "2020-05-26T22:33:55Z", "DetectorId": "d4b040365221be2b54a6264dcexample", "Action": { "ActionType": "AWS_API_CALL", "AwsApiCallAction": { "RemoteIpDetails": { "GeoLocation": { "Lat": 51.5164, "Lon": -0.093 }, "City": { "CityName": "London" }, "IpAddressV4": "52.94.36.7", "Organization": { "Org": "Amazon.com", "Isp": "Amazon.com", "Asn": "16509", "AsnOrg": "AMAZON-02" }, "Country": { "CountryName": "United Kingdom" } }, "Api": "ListPolicyVersions", "ServiceName": "iam.amazonaws.com", "CallerType": "Remote IP" } } }, "Title": "Unusual user permission reconnaissance activity by testuser.", "Type": "Recon:IAMUser/UserPermissions", "Region": "us-east-1", "Partition": "aws", "Arn": "arn:aws:guardduty:us-east-1:111122223333:detector/d4b040365221be2b54a6264dcexample/finding/1ab92989eaf0e742df4a014d5example", "UpdatedAt": "2020-05-26T22:55:21.703Z", "SchemaVersion": "2.0", "Severity": 5, "Id": "1ab92989eaf0e742df4a014d5example", "CreatedAt": "2020-05-26T22:21:48.385Z", "AccountId": "111122223333" } ] }

詳細については、「GuardDuty ユーザーガイド」の「検出結果」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetFindings」を参照してください。

次のコード例では、get-ip-set を使用する方法を示しています。

AWS CLI

指定された信頼された IP セットの詳細を一覧表示するには

次の get-ip-set の例では、指定した信頼された IP セットのステータスと詳細を表示します。

aws guardduty get-ip-set \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --ip-set-id d4b94fc952d6912b8f3060768example

出力:

{ "Status": "ACTIVE", "Location": "s3://amzn-s3-demo-bucket.s3-us-west-2.amazonaws.com/customlist.csv", "Tags": {}, "Format": "TXT", "Name": "test-ip-set-example" }

詳細については、GuardDuty ユーザーガイドの「信頼された IP リストと脅威リストの使用」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetIpSet」を参照してください。

次のコード例では、get-master-account を使用する方法を示しています。

AWS CLI

現在のリージョンでマスターアカウントに関する詳細を取得するには

次の get-master-account の例では、現在のリージョンのディテクターに関連付けられたマスターアカウントのステータスと詳細を表示します。

aws guardduty get-master-account \ --detector-id 12abc34d567e8fa901bc2d34eexample

出力:

{ "Master": { "InvitationId": "04b94d9704854a73f94e061e8example", "InvitedAt": "2020-06-09T22:23:04.970Z", "RelationshipStatus": "Enabled", "AccountId": "111122223333" } }

詳細については、GuardDuty ユーザーガイドの「GuardDuty 管理者アカウントとメンバーアカウントの関係について理解する」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetMasterAccount」を参照してください。

次のコード例では、list-detectors を使用する方法を示しています。

AWS CLI

現在のリージョンで使用可能なディテクターを一覧表示するには

次の list-detectors の例では、現在の AWS リージョンで使用可能なディテクターを一覧表示します。

aws guardduty list-detectors

出力:

{ "DetectorIds": [ "12abc34d567e8fa901bc2d34eexample" ] }

詳細については、GuardDuty ユーザーガイドの「概念と用語」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ListDetectors」を参照してください。

次のコード例では、list-findings を使用する方法を示しています。

AWS CLI

例 1: 現在のリージョンのすべての検出結果を一覧表示するには

次の list-findings の例では、現在のリージョンのすべての findingIds のリストを重要度の高いものから低いものの順に表示します。

aws guardduty list-findings \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --sort-criteria '{"AttributeName": "severity","OrderBy":"DESC"}'

出力:

{ "FindingIds": [ "04b8ab50fd29c64fc771b232dexample", "5ab8ab50fd21373735c826d3aexample", "90b93de7aba69107f05bbe60bexample", ... ] }

詳細については、「GuardDuty ユーザーガイド」の「検出結果」を参照してください。

例 2: 特定の検出結果基準に一致する現在のリージョンの検出結果を一覧表示するには

次の list-findings の例では、指定された findingIds のリストを表示します。

aws guardduty list-findings \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --finding-criteria '{"Criterion":{"type": {"Eq":["UnauthorizedAccess:EC2/SSHBruteForce"]}}}'

出力:

{ "FindingIds": [ "90b93de7aba69107f05bbe60bexample", "6eb9430d7023d30774d6f05e3example", "2eb91a2d060ac9a21963a5848example", "44b8ab50fd2b0039a9e48f570example", "9eb8ab4cd2b7e5b66ba4f5e96example", "e0b8ab3a38e9b0312cc390ceeexample" ] }

詳細については、「GuardDuty ユーザーガイド」の「検出結果」を参照してください。

例 3: JSON ファイル内で定義された特定の検出基準のセットに一致する現在のリージョンの検出結果を一覧表示するには

次の list-findings の例では、JSON ファイルで指定されているように、アーカイブされておらず、「testuser」という名前の IAM ユーザーを含む findingIds のリストを表示します。

aws guardduty list-findings \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --finding-criteria file://myfile.json

myfile.json の内容:

{"Criterion": { "resource.accessKeyDetails.userName":{ "Eq":[ "testuser" ] }, "service.archived": { "Eq": [ "false" ] } } }

出力:

{ "FindingIds": [ "1ab92989eaf0e742df4a014d5example" ] }

詳細については、「GuardDuty ユーザーガイド」の「検出結果」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ListFindings」を参照してください。

次のコード例では、list-invitations を使用する方法を示しています。

AWS CLI

現在のリージョンのメンバーアカウントになるための招待の詳細を一覧表示するには

次の list-invitations の例では、現在のリージョンで GuardDuty メンバーアカウントになるための招待の詳細とステータスを一覧表示します。

aws guardduty list-invitations

出力:

{ "Invitations": [ { "InvitationId": "d6b94fb03a66ff665f7db8764example", "InvitedAt": "2020-06-10T17:56:38.221Z", "RelationshipStatus": "Invited", "AccountId": "123456789111" } ] }

詳細については、「GuardDuty ユーザーガイド」の「招待による GuardDuty アカウントの管理」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ListInvitations」を参照してください。

次のコード例では、list-ip-sets を使用する方法を示しています。

AWS CLI

現在のリージョンで信頼された IP セットを一覧表示するには

次の list-ip-sets の例では、現在の AWS リージョンの信頼された IP セットを一覧表示します。

aws guardduty list-ip-sets \ --detector-id 12abc34d567e8fa901bc2d34eexample

出力:

{ "IpSetIds": [ "d4b94fc952d6912b8f3060768example" ] }

詳細については、「GuardDuty ユーザーガイド」の「信頼された IP リストと脅威リストの使用」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ListIpSets」を参照してください。

次のコード例では、list-members を使用する方法を示しています。

AWS CLI

例 1: 現在のリージョン内の現在のメンバーのみを一覧表示するには

次の list-members の例では、現在のリージョンで、GuardDuty 管理者アカウントに関連付けられている現在のメンバーアカウントのみを一覧表示し、詳細を出力します。

aws guardduty list-members \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --only-associated="true"

出力:

{ "Members": [ { "RelationshipStatus": "Enabled", "InvitedAt": "2020-06-09T22:49:00.910Z", "MasterId": "111122223333", "DetectorId": "7ab8b2f61b256c87f793f6a86example", "UpdatedAt": "2020-06-09T23:08:22.512Z", "Email": "your+member@example.com", "AccountId": "123456789012" } ] }

詳細については、GuardDuty ユーザーガイドの「GuardDuty 管理者アカウントとメンバーアカウントの関係について理解する」を参照してください。

例 2: 現在のリージョン内のすべてのメンバーを一覧表示するには

次の list-members の例では、現在のリージョンで、関連付けが解除されたメンバーや、GuardDuty 管理者からの招待をまだ承諾していないメンバーを含め、すべてのメンバーアカウントを一覧表示し、詳細を出力します。

aws guardduty list-members \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --only-associated="false"

出力:

{ "Members": [ { "RelationshipStatus": "Enabled", "InvitedAt": "2020-06-09T22:49:00.910Z", "MasterId": "111122223333", "DetectorId": "7ab8b2f61b256c87f793f6a86example", "UpdatedAt": "2020-06-09T23:08:22.512Z", "Email": "your+other+member@example.com", "AccountId": "555555555555" } ] }

詳細については、GuardDuty ユーザーガイドの「GuardDuty 管理者アカウントとメンバーアカウントの関係について理解する」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ListMembers」を参照してください。

次のコード例では、update-ip-set を使用する方法を示しています。

AWS CLI

信頼された IP セットを更新するには

次の update-ip-set 例は、信頼された IP セットの詳細を更新する方法を示しています。

aws guardduty update-ip-set \ --detector-id 12abc34d567e8fa901bc2d34eexample \ --ip-set-id d4b94fc952d6912b8f3060768example \ --location https://amzn-s3-demo-bucket.s3-us-west-2.amazonaws.com/customtrustlist2.csv

このコマンドでは何も出力されません。

詳細については、GuardDuty ユーザーガイドの「信頼された IP リストと脅威リストの使用」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「UpdateIpSet」を参照してください。