AWS CLI を使用した GuardDuty の例
次のコード例は、GuardDuty で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。
アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。
各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。
トピック
アクション
次のコード例では、accept-invitation
を使用する方法を示しています。
- AWS CLI
-
現在のリージョンで GuardDuty メンバーアカウントになるための招待を受け入れるには
次の
accept-invitation
の例は、現在のリージョンで GuardDuty メンバーアカウントになるための招待を受け入れる方法を示しています。aws guardduty accept-invitation \ --detector-id
12abc34d567e8fa901bc2d34eexample
\ --master-id123456789111
\ --invitation-idd6b94fb03a66ff665f7db8764example
このコマンドでは何も出力されません。
詳細については、「GuardDuty ユーザーガイド」の「招待による GuardDuty アカウントの管理」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「AcceptInvitation
」を参照してください。
-
次のコード例では、archive-findings
を使用する方法を示しています。
- AWS CLI
-
現在のリージョンで検出結果をアーカイブするには
この
archive-findings
の例では、現在のリージョンで検出結果をアーカイブする方法を示します。aws guardduty archive-findings \ --detector-id
12abc34d567e8fa901bc2d34eexample
\ --finding-idsd6b94fb03a66ff665f7db8764example
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
\ --namemyFilterExample
\ --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
\ --actionARCHIVE
\ --namemyFilterSecondExample
\ --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
\ --namenew-ip-set-example
\ --formatTXT
\ --locations3://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-detailsAccountId=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-typeS3
\ --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-typesUnauthorizedAccess: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
\ --namemyThreatSet-example
\ --formatTXT
\ --locations3://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-namebyebyeFilter
このコマンドでは何も出力されません。
詳細については、「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 でのアカウントの管理」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「DisableOrganizationAdminAccount
」を参照してください。
-
次のコード例では、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-id1ab92989eaf0e742df4a014d5example
出力:
{ "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-idd4b94fc952d6912b8f3060768example
出力:
{ "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-criteriafile://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-idd4b94fc952d6912b8f3060768example
\ --locationhttps://amzn-s3-demo-bucket.s3-us-west-2.amazonaws.com/customtrustlist2.csv
このコマンドでは何も出力されません。
詳細については、GuardDuty ユーザーガイドの「信頼された IP リストと脅威リストの使用」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「UpdateIpSet
」を参照してください。
-