GuardDuty 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GuardDuty 範例使用 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 與來執行動作及實作常見案例 GuardDuty。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用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 用者指南 GuardDuty中的啟用 Amazon

  • 如需 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

要創建一個新的威脅,英特爾設置在當前區域。

此範例顯示如何上傳 Intel 設定的威脅 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 帳戶」。

下列程式碼範例會示範如何使用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 組織管理帳戶

下列程式碼範例會示範如何使用disassociate-from-master-account

AWS CLI

取消目前地區目前主帳戶的關聯

下列disassociate-from-master-account範例會取消您帳戶與目前區域中目前 GuardDuty 主帳戶的關聯。 AWS

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範例會顯示目前區域的所有 FindingID 清單,並依嚴重性從最高到最低排序。

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

輸出:

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

如需詳細資訊,請參閱 GuardDuty 使用指南中的發現項目

範例 2:列出符合特定搜尋條件之目前區域的搜尋結果

下列list-findings範例會顯示符合指定尋找項目類型的所有 FindingID 清單。

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範例會顯示所有未封存且涉及名為「testuser」的 IAM 使用者 (如 JSON 檔案中所指定) 的 FindingID 清單。

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中的。