使用 AWS CLI 的 GuardDuty 示例 - AWS Command Line Interface

本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南

使用 AWS CLI 的 GuardDuty 示例

以下代码示例演示了如何通过将 AWS Command Line Interface与 GuardDuty 结合使用,来执行操作和实现常见场景。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 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

将调查结果存档到当前区域中

此示例演示如何将调查结果存档到当前区域中。

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

此命令不生成任何输出。

有关更多信息,请参阅《GuardDuty 用户指南》中的通过邀请管理 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

为当前区域创建新筛选条件

此示例创建一个筛选条件,该筛选条件与从特定映像中创建的实例的所有 Portscan 调查结果相匹配。

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

输出:

{ "Name": "myFilter" }

有关更多信息,请参阅《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 \ --format TXT --location s3://AWSDOC-EXAMPLE-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 调查结果导出到其中

此示例演示如何为 GuardDuty 调查结果创建发布目标。

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

输出:

{ "DestinationId": "46b99823849e1bbc242dfbe3cexample" }

有关更多信息,请参阅《GuardDuty 用户指南》中的导出调查结果

以下代码示例演示了如何使用 create-sample-findings

AWS CLI

在当前区域中创建示例 GuardDuty 调查结果

此示例演示如何创建所提供类型的示例调查结果。

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

此命令不生成任何输出。

有关更多信息,请参阅《GuardDuty 用户指南》中的示例调查结果

以下代码示例演示了如何使用 create-threat-intel-set

AWS CLI

在当前区域中创建新的威胁情报集

此示例演示如何将威胁情报集上传到 GuardDuty 并立即激活它。

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

输出:

{ "ThreatIntelSetId": "20b9a4691aeb33506b808878cexample" }

有关更多信息,请参阅《GuardDuty 用户指南》中的可信 IP 和威胁列表

以下代码示例演示了如何使用 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 主账户与成员账户之间的关系

以下代码示例演示了如何使用 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://AWSDOC-EXAMPLE-BUCKET.s3-us-west-2.amazonaws.com/customlist.csv", "Tags": {}, "Format": "TXT", "Name": "test-ip-set" }

有关更多信息,请参阅《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": "123456789111" } }

有关更多信息,请参阅《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 示例显示了未存档的所有 findingIds 的列表,其中涉及 JSON 文件中指定的名为“testuser”的 IAM 用户。

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

列出当前区域中的所有成员

以下 list-members 示例列出了当前区域的所有成员账户及其详细信息。

aws guardduty list-members \ --detector-id 12abc34d567e8fa901bc2d34eexample

输出:

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

有关更多信息,请参阅《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://AWSDOC-EXAMPLE-BUCKET.s3-us-west-2.amazonaws.com/customtrustlist2.csv

此命令不生成任何输出。

有关更多信息,请参阅《GuardDuty 用户指南》中的使用可信 IP 列表和威胁列表

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateIpSet