

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 専用アカウントでの GuardDuty の検出結果のテスト
<a name="guardduty_findings-scripts"></a>

このドキュメントを使用して、 AWS アカウントにデプロイされるテストリソースに対して GuardDuty の検出結果を生成するテスタースクリプトを実行します。これらのステップは、特定の GuardDuty の検出結果タイプについてと、検出結果の詳細がアカウント内の実際のリソースをどのように検索するかを理解して学習したい場合に実行できます。このエクスペリエンスは、[サンプルの検出結果](sample_findings.md)の生成とは異なります。GuardDuty の検出結果をテストするエクスペリエンスの詳細については、「[考慮事項](#considerations-generate-gdu-findings-tester)」を参照してください。

**Topics**
+ [考慮事項](#considerations-generate-gdu-findings-tester)
+ [テスタースクリプトが生成できる GuardDuty の検出結果](#gdu-findings-tester-generates)
+ [ステップ 1 - 前提条件](#prerequisites-gdu-tester-script)
+ [ステップ 2 - AWS リソースをデプロイする](#deploy-gdu-tester-script)
+ [ステップ 3 - テスタースクリプトを実行する](#run-gdu-tester-script)
+ [ステップ 4 - AWS テストリソースをクリーンアップする](#clean-gdu-tester-script-resources)
+ [一般的な問題のトラブルシューティング](#troubleshooting-gdu-tester-script-issues)

## 考慮事項
<a name="considerations-generate-gdu-findings-tester"></a>

先に進む前に、次の点を考慮してください。
+ GuardDuty は、専用の非本番環境 AWS アカウントにテスターをデプロイすることをお勧めします。このアプローチにより、テスターによって生成された GuardDuty の検出結果を正しく識別できます。また、GuardDuty テスターは、他のアカウントで許可されている内容を超える IAM アクセス許可を必要とする可能性のあるさまざまなリソースをデプロイします。専用アカウントを使用すると、明確なアカウント境界でアクセス許可を適切にスコープできます。
+ テスタースクリプトは、さまざまな AWS リソースの組み合わせで 100 を超える GuardDuty の検出結果を生成します。現在、これにはすべての [GuardDuty 検出結果タイプ](guardduty_finding-types-active.md)は含まれません。このテスタースクリプトで生成できる検出結果タイプのリストについては、「[テスタースクリプトが生成できる GuardDuty の検出結果](#gdu-findings-tester-generates)」を参照してください。
**メモ**  
*攻撃シーケンスの検出結果タイプ*を視覚化するために、テスタースクリプトは [AttackSequence:EKS/CompromisedCluster](guardduty-attack-sequence-finding-types.md#attack-sequence-eks-compromised-cluster) と [AttackSequence:S3/CompromisedData](guardduty-attack-sequence-finding-types.md#attack-sequence-s3-compromised-data) のみを生成します。[AttackSequence:IAM/CompromisedCredentials](guardduty-attack-sequence-finding-types.md#attack-sequence-iam-compromised-credentials) を視覚化して理解するには、アカウントで [サンプルの検出結果](sample_findings.md) を生成できます。
+ GuardDuty テスターが想定どおりに機能するには、テスターリソースがデプロイされているアカウントで GuardDuty を有効にする必要があります。実行するテストに応じて、テスターは適切な GuardDuty 保護プランが有効になっているかどうかを評価します。有効になっていない保護プランでは、GuardDuty は、GuardDuty が検出結果を生成するテストを実行するのに十分な期間だけ必要な保護プランを有効にするアクセス許可をリクエストします。その後、テストが完了すると、GuardDuty は保護プランを無効にします。  
**初めての GuardDuty の有効化**  
GuardDuty が特定のリージョンで初めて専用アカウントで有効化されると、アカウントは自動的に 30 日間の無料トライアルに登録されます。  
GuardDuty には、オプションの保護プランが提供されています。GuardDuty を有効にすると、特定の保護プランも有効になり、GuardDuty の 30 日間の無料トライアルに含められます。詳細については、「[GuardDuty の 30 日間無料トライアルの使用](guardduty-pricing.md#using-guardduty-30-day-free-trial)」を参照してください。  
**テスタースクリプトを実行する前に GuardDuty がアカウントで既に有効になっている場合**  
GuardDuty が既に有効になっている場合、テスタースクリプトはパラメータに基づいて、特定の保護プランの設定ステータスや、検出結果の生成に必要なその他のアカウントレベルの設定をチェックします。  
このテスタースクリプトを実行すると、リージョンの専用アカウントで特定の保護プランが初めて有効になる場合があります。これにより、その保護プランの 30 日間の無料トライアルが開始します。各保護プランに関連する無料トライアルの詳細については、「[GuardDuty の 30 日間無料トライアルの使用](guardduty-pricing.md#using-guardduty-30-day-free-trial)」を参照してください。
+ GuardDuty テスターインフラストラクチャがデプロイされている限り、ペネトレーションテストインスタンスから [UnauthorizedAccess:EC2/TorClient](guardduty_finding-types-ec2.md#unauthorizedaccess-ec2-torclient) 検出結果を受け取ることがあります。

## テスタースクリプトが生成できる GuardDuty の検出結果
<a name="gdu-findings-tester-generates"></a>

現在、テスタースクリプトは、Amazon EC2、Amazon EKS、Amazon S3、IAM、EKS 監査ログに関連する次の検出結果タイプを生成します。
+ [AttackSequence:EKS/CompromisedCluster](guardduty-attack-sequence-finding-types.md#attack-sequence-eks-compromised-cluster)
+ [AttackSequence:S3/CompromisedData](guardduty-attack-sequence-finding-types.md#attack-sequence-s3-compromised-data)
+ [Backdoor:EC2/C&CActivity.B\!DNS](guardduty_finding-types-ec2.md#backdoor-ec2-ccactivitybdns)
+ [Backdoor:EC2/DenialOfService.Dns](guardduty_finding-types-ec2.md#backdoor-ec2-denialofservicedns)
+ [Backdoor:EC2/DenialOfService.Udp](guardduty_finding-types-ec2.md#backdoor-ec2-denialofserviceudp)
+ [CryptoCurrency:EC2/BitcoinTool.B\!DNS](guardduty_finding-types-ec2.md#cryptocurrency-ec2-bitcointoolbdns)
+ [Impact:EC2/AbusedDomainRequest.Reputation](guardduty_finding-types-ec2.md#impact-ec2-abuseddomainrequestreputation)
+ [Impact:EC2/BitcoinDomainRequest.Reputation](guardduty_finding-types-ec2.md#impact-ec2-bitcoindomainrequestreputation)
+ [Impact:EC2/MaliciousDomainRequest.Reputation](guardduty_finding-types-ec2.md#impact-ec2-maliciousdomainrequestreputation)
+ [Impact:EC2/SuspiciousDomainRequest.Reputation](guardduty_finding-types-ec2.md#impact-ec2-suspiciousdomainrequestreputation)
+ [Recon:EC2/Portscan](guardduty_finding-types-ec2.md#recon-ec2-portscan)
+ [Trojan:EC2/BlackholeTraffic\!DNS](guardduty_finding-types-ec2.md#trojan-ec2-blackholetrafficdns)
+ [Trojan:EC2/DGADomainRequest.C\!DNS](guardduty_finding-types-ec2.md#trojan-ec2-dgadomainrequestcdns)
+ [Trojan:EC2/DNSDataExfiltration](guardduty_finding-types-ec2.md#trojan-ec2-dnsdataexfiltration)
+ [Trojan:EC2/DriveBySourceTraffic\!DNS](guardduty_finding-types-ec2.md#trojan-ec2-drivebysourcetrafficdns)
+ [Trojan:EC2/DropPoint\!DNS](guardduty_finding-types-ec2.md#trojan-ec2-droppointdns)
+ [Trojan:EC2/PhishingDomainRequest\!DNS](guardduty_finding-types-ec2.md#trojan-ec2-phishingdomainrequestdns)
+ [UnauthorizedAccess:EC2/MaliciousIPCaller.Custom](guardduty_finding-types-ec2.md#unauthorizedaccess-ec2-maliciousipcallercustom)
+ [UnauthorizedAccess:EC2/RDPBruteForce](guardduty_finding-types-ec2.md#unauthorizedaccess-ec2-rdpbruteforce) 
+ [UnauthorizedAccess:EC2/SSHBruteForce](guardduty_finding-types-ec2.md#unauthorizedaccess-ec2-sshbruteforce) 
+ [PenTest:IAMUser/KaliLinux](guardduty_finding-types-iam.md#pentest-iam-kalilinux) 
+ [Recon:IAMUser/MaliciousIPCaller.Custom](guardduty_finding-types-iam.md#recon-iam-maliciousipcallercustom) 
+ [Recon:IAMUser/TorIPCaller](guardduty_finding-types-iam.md#recon-iam-toripcaller) 
+ [Stealth:IAMUser/CloudTrailLoggingDisabled](guardduty_finding-types-iam.md#stealth-iam-cloudtrailloggingdisabled) 
+ [Stealth:IAMUser/PasswordPolicyChange](guardduty_finding-types-iam.md#stealth-iam-passwordpolicychange) 
+ [UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS](guardduty_finding-types-iam.md#unauthorizedaccess-iam-instancecredentialexfiltrationoutsideaws) 
+ [UnauthorizedAccess:IAMUser/MaliciousIPCaller.Custom](guardduty_finding-types-iam.md#unauthorizedaccess-iam-maliciousipcallercustom) 
+ [UnauthorizedAccess:IAMUser/TorIPCaller](guardduty_finding-types-iam.md#unauthorizedaccess-iam-toripcaller) 
+ [Discovery:Kubernetes/MaliciousIPCaller.Custom](guardduty-finding-types-eks-audit-logs.md#discovery-kubernetes-maliciousipcallercustom) 
+ [Discovery:Kubernetes/SuccessfulAnonymousAccess](guardduty-finding-types-eks-audit-logs.md#discovery-kubernetes-successfulanonymousaccess) 
+ [Discovery:Kubernetes/TorIPCaller](guardduty-finding-types-eks-audit-logs.md#discovery-kubernetes-toripcaller)
+ [Execution:Kubernetes/ExecInKubeSystemPod](guardduty-finding-types-eks-audit-logs.md#execution-kubernetes-execinkubesystempod)
+ [Impact:Kubernetes/MaliciousIPCaller.Custom](guardduty-finding-types-eks-audit-logs.md#impact-kubernetes-maliciousipcallercustom)
+ [Persistence:Kubernetes/ContainerWithSensitiveMount](guardduty_finding-types-retired.md#persistence-kubernetes-containerwithsensitivemount)
+ [Policy:Kubernetes/AdminAccessToDefaultServiceAccount](guardduty-finding-types-eks-audit-logs.md#policy-kubernetes-adminaccesstodefaultserviceaccount) 
+ [Policy:Kubernetes/AnonymousAccessGranted](guardduty-finding-types-eks-audit-logs.md#policy-kubernetes-anonymousaccessgranted) 
+ [PrivilegeEscalation:Kubernetes/PrivilegedContainer](guardduty_finding-types-retired.md#privilegeescalation-kubernetes-privilegedcontainer) 
+ [UnauthorizedAccess:Lambda/MaliciousIPCaller.Custom](lambda-protection-finding-types.md#unauthorized-access-lambda-maliciousIPcaller-custom) 
+ [Discovery:S3/MaliciousIPCaller.Custom](guardduty_finding-types-s3.md#discovery-s3-maliciousipcallercustom)
+ [Discovery:S3/TorIPCaller](guardduty_finding-types-s3.md#discovery-s3-toripcaller)
+ [PenTest:S3/KaliLinux](guardduty_finding-types-s3.md#pentest-s3-kalilinux)
+ [Policy:S3/AccountBlockPublicAccessDisabled](guardduty_finding-types-s3.md#policy-s3-accountblockpublicaccessdisabled)
+ [Policy:S3/BucketAnonymousAccessGranted](guardduty_finding-types-s3.md#policy-s3-bucketanonymousaccessgranted)
+ [Policy:S3/BucketBlockPublicAccessDisabled](guardduty_finding-types-s3.md#policy-s3-bucketblockpublicaccessdisabled)
+ [Policy:S3/BucketPublicAccessGranted](guardduty_finding-types-s3.md#policy-s3-bucketpublicaccessgranted)
+ [Stealth:S3/ServerAccessLoggingDisabled](guardduty_finding-types-s3.md#stealth-s3-serveraccessloggingdisabled)
+ [UnauthorizedAccess:S3/MaliciousIPCaller.Custom](guardduty_finding-types-s3.md#unauthorizedaccess-s3-maliciousipcallercustom)
+ [UnauthorizedAccess:S3/TorIPCaller](guardduty_finding-types-s3.md#unauthorizedaccess-s3-toripcaller)
+ [Backdoor:Runtime/C&CActivity.B\!DNS](findings-runtime-monitoring.md#backdoor-runtime-ccactivitybdns)
+ [CryptoCurrency:Runtime/BitcoinTool.B\!DNS](findings-runtime-monitoring.md#cryptocurrency-runtime-bitcointoolbdns)
+ [DefenseEvasion:Runtime/ProcessInjection.Ptrace](findings-runtime-monitoring.md#defenseeva-runtime-processinjectionptrace)
+ [DefenseEvasion:Runtime/ProcessInjection.VirtualMemoryWrite](findings-runtime-monitoring.md#defenseeva-runtime-processinjectionvirtualmemw)
+ [Execution:Runtime/ReverseShell](findings-runtime-monitoring.md#execution-runtime-reverseshell)
+ [Impact:Runtime/AbusedDomainRequest.Reputation](findings-runtime-monitoring.md#impact-runtime-abuseddomainrequestreputation)
+ [Impact:Runtime/BitcoinDomainRequest.Reputation](findings-runtime-monitoring.md#impact-runtime-bitcoindomainrequestreputation)
+ [Impact:Runtime/MaliciousDomainRequest.Reputation](findings-runtime-monitoring.md#impact-runtime-maliciousdomainrequestreputation)
+ [Impact:Runtime/SuspiciousDomainRequest.Reputation](findings-runtime-monitoring.md#impact-runtime-suspiciousdomainrequestreputation)
+ [PrivilegeEscalation:Runtime/ContainerMountsHostDirectory](findings-runtime-monitoring.md#privilegeescalation-runtime-containermountshostdirectory)
+ [PrivilegeEscalation:Runtime/DockerSocketAccessed](findings-runtime-monitoring.md#privilegeesc-runtime-dockersocketaccessed)
+ [Trojan:Runtime/BlackholeTraffic\!DNS](findings-runtime-monitoring.md#trojan-runtime-blackholetrafficdns)
+ [Trojan:Runtime/DGADomainRequest.C\!DNS](findings-runtime-monitoring.md#trojan-runtime-dgadomainrequestcdns)
+ [Trojan:Runtime/DriveBySourceTraffic\!DNS](findings-runtime-monitoring.md#trojan-runtime-drivebysourcetrafficdns)
+ [Trojan:Runtime/DropPoint\!DNS](findings-runtime-monitoring.md#trojan-runtime-droppointdns)
+ [Trojan:Runtime/PhishingDomainRequest\!DNS](findings-runtime-monitoring.md#trojan-runtime-phishingdomainrequestdns)

## ステップ 1 - 前提条件
<a name="prerequisites-gdu-tester-script"></a>

テスト環境を準備するには、次の項目が必要です。
+ **Git** – 使用するオペレーティングシステムに基づく git コマンドラインツールをインストールします。

  これは、[`amazon-guardduty-tester` リポジトリ](https://github.com/awslabs/amazon-guardduty-tester)のクローンを作成するために必要です。
+ **AWS Command Line Interface** – コマンドラインシェルでコマンド AWS のサービス を使用して とやり取りできるオープンソースツール。詳細については、「*AWS Command Line Interface ユーザーガイド*」の「[Get started with AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)」を参照してください。
+ **AWS Systems Manager** – を使用してマネージドノードで Session Manager セッションを開始する AWS CLI には、ローカルマシンに Session Manager プラグインをインストールする必要があります。詳細については、「*AWS Systems Manager ユーザーガイド*」の「[AWS CLI用の Session Manager プラグインをインストールする](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)」を参照してください。
+ **Node Package Manager (NPM)** — NPM をインストールして、すべての依存関係をインストールします。
+ **Docker** – Docker がインストールされている必要があります。インストール手順については、[Docker のウェブサイト](https://docs.docker.com/get-docker/)を参照してください。

  Docker がインストールされていることを確認するには、次のコマンドを実行し、次のような出力があることを確認します。

  ```
  $ docker --version
  Docker version 19.03.1
  ```
+ *AWS Marketplace* で [Kali Linux](https://aws.amazon.com/marketplace/pp/prodview-fznsw3f7mq7to) イメージをサブスクライブします。

## ステップ 2 - AWS リソースをデプロイする
<a name="deploy-gdu-tester-script"></a>

このセクションでは、主要な概念のリストと、特定の AWS リソースを専用アカウントにデプロイする手順について説明します。

### 概念
<a name="concepts-deploy-resource-test-guardduty-findings"></a>

次のリストに、リソースのデプロイに役立つコマンドに関連する主要な概念を示します。
+ **AWS Cloud Development Kit (AWS CDK)** – CDK は、コードでクラウドインフラストラクチャを定義し、それをプロビジョニングするためのオープンソースのソフトウェア開発フレームワークです CloudFormation。CDK は、いくつかのプログラミング言語をサポートして、コンストラクトと呼ばれる再利用可能なクラウドコンポーネントを定義します。これらをまとめてスタックとアプリケーションに構成できます。次に、CDK アプリケーションを にデプロイ CloudFormation して、 リソースをプロビジョニングまたは更新できます。詳細については、[「 とは」を参照してください AWS CDK。](https://docs.aws.amazon.com/cdk/v2/guide/home.html) 「 *AWS Cloud Development Kit (AWS CDK) デベロッパーガイド*」の「�
+ **ブートストラップ** — AWS 環境で を使用するための準備プロセスです AWS CDK。CDK スタックを AWS 環境にデプロイする前に、まず環境をブートストラップする必要があります。によって使用される環境内の特定の AWS リソースをプロビジョニングするこのプロセス AWS CDK は、次のセクション - で実行するステップの一部です[AWS リソースをデプロイするステップ](#steps-deploy-resource-test-guardduty-findings)。

  ブートストラップの仕組みの詳細については、「*AWS Cloud Development Kit (AWS CDK) 開発者ガイド*」の「[Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html)」を参照してください。

### AWS リソースをデプロイするステップ
<a name="steps-deploy-resource-test-guardduty-findings"></a>

リソースのデプロイを開始するには、次の手順を実行します。

1. 専用のアカウントリージョン変数が `bin/cdk-gd-tester.ts` ファイルで手動で設定されていない限り、 AWS CLI デフォルトのアカウントとリージョンを設定します。詳細については、「*AWS Cloud Development Kit (AWS CDK) 開発者ガイド*」の「[Environments](https://docs.aws.amazon.com/cdk/v2/guide/environments.html)」を参照してください。

1. 以下のコマンドを実行して、リソースをデプロイします。

   ```
   git clone https://github.com/awslabs/amazon-guardduty-tester && cd amazon-guardduty-tester
   npm install
   cdk bootstrap
   cdk deploy
   ```

   最後のコマンド (`cdk deploy`) は、ユーザーに代わって CloudFormation スタックを作成します。このスタックの名前は **GuardDutyTesterStack** です。

   このスクリプトの一部として、GuardDuty はアカウントに GuardDuty の検出結果を生成する新しいリソースを作成します。次のタグキーと値のペアも、Amazon EC2 インスタンスに追加されます。

   `CreatedBy`:`GuardDuty Test Script`

   また、Amazon EC2 インスタンスには、EKS ノードと ECS クラスターをホストする EC2 インスタンスも含まれます。
**インスタンスのタイプ**  
GuardDuty は、テストを正常に実行するために必要な最小限のパフォーマンスを提供する費用対効果の高いインスタンスタイプを使用するように設計されています。vCPU 要件のため、Amazon EKS ノードグループには `t3.medium` が必要であり、DenialOfService 検出テストに必要なネットワーク容量が増加するため、ドライバーノードには `m6i.large` が必要です。他のすべてのテストでは、GuardDuty は `t3.micro` インスタンスタイプを使用します。インスタンスタイプの詳細については、「*Amazon EC2 Instances Types Guide*」の「[Available sizes](https://docs.aws.amazon.com/ec2/latest/instancetypes/gp.html#gp_sizes)」を参照してください。

## ステップ 3 - テスタースクリプトを実行する
<a name="run-gdu-tester-script"></a>

これは 2 ステップのプロセスであり、まずテストドライバーでセッションを開始し、次にスクリプトを実行して特定のリソースの組み合わせで GuardDuty の検出結果を生成する必要があります。

### パート A - テストドライバーでセッションを開始する
<a name="tester-script-start-session-guardduty"></a>

1. リソースをデプロイしたら、リージョンコードを現在のターミナルセッションの変数に保存します。次のコマンドを使用し、{{us-east-1}} はリソースをデプロイしたリージョンコードに置き換えます。

   ```
   $ REGION={{us-east-1}}
   ```

1. テスタースクリプトは AWS Systems Manager (SSM) でのみ使用できます。テスターホストインスタンスでインタラクティブシェルを起動するには、ホストの **InstanceId** をクエリします。

1. 次のコマンドを使用してテスタースクリプトのセッションを開始します。

   ```
   aws ssm start-session 
     --region $REGION 
     --document-name AWS-StartInteractiveCommand 
     --parameters command="cd /home/ssm-user/py_tester && bash -l" 
     --target $(aws ec2 describe-instances 
       --region $REGION 
       --filters "Name=tag:Name,Values=Driver-GuardDutyTester" 
       --query "Reservations[].Instances[?State.Name=='running'].InstanceId" 
       --output text)
   ```

### パート B - 検出結果を生成する
<a name="tester-script-generate-findings-guardduty"></a>

テスタースクリプトは、入力に基づいて検出結果を生成する Bash スクリプトを動的に構築する Python ベースのプログラムです。1 つ以上の AWS リソースタイプ、GuardDuty 保護プラン、 [脅威の目的](guardduty_finding-format.md#guardduty_threat_purposes) (戦術）、[基本データソース](guardduty_data-sources.md)、または に基づいて結果を柔軟に生成できます[テスタースクリプトが生成できる GuardDuty の検出結果](#gdu-findings-tester-generates)。

次のコマンド例をリファレンスとして使用し、1 つ以上のコマンドを実行して、調査する検出結果を生成します。

```
python3 guardduty_tester.py 
python3 guardduty_tester.py --{{all}} 
python3 guardduty_tester.py --{{s3}} 
python3 guardduty_tester.py --tactics {{discovery}} 
python3 guardduty_tester.py --{{ec2}} --{{eks}} --tactics {{backdoor}} {{policy}} {{execution}} 
python3 guardduty_tester.py --{{eks}} --{{runtime}} only 
python3 guardduty_tester.py --{{ec2}} --{{runtime}} only --tactics {{impact}} 
python3 guardduty_tester.py --log-source {{dns}} {{vpc-flowlogs}} 
python3 guardduty_tester.py --finding '{{CryptoCurrency:EC2/BitcoinTool.B!DNS}}'
```

有効なパラメータの詳細については、次のヘルプコマンドを実行して確認できます。

```
python3 guardduty_tester.py --help
```

### パート C - 生成された検出結果を確認する
<a name="tester-script-review-findings-guardduty"></a>

アカウントで生成された検出結果を表示する任意の方法を選択します。

------
#### [ GuardDuty console ]

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) で GuardDuty コンソールを開きます。

1. ナビゲーションペインで **調査検出結果** を選択します。

1. 検出結果テーブルから、詳細を表示したい検出結果を選択します。これにより、検出結果の詳細パネルが開きます。詳細については、「[Amazon GuardDuty の検出結果の理解と生成](guardduty_findings.md)」を参照してください。

1. これらの検出結果をフィルタリングする場合は、リソースのタグキーと値を使用します。例えば、Amazon EC2 インスタンスに対して生成された検出結果をフィルタリングするには、**[インスタンスタグキー]** と **[インスタンスタグキー]** にタグキーと値ペア `CreatedBy`:`GuardDuty Test Script` を使用します。

------
#### [ API ]
+ [ListFindings](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListFindings.html) を実行して、特定のディテクター ID の検出結果を表示します。パラメータを指定して、検出結果をフィルタリングできます。

  アカウントと現在のリージョンの `detectorId` を検索するには、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) コンソールの **[設定]** ページを参照するか、[https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html) API を実行します。

------
#### [ AWS CLI ]
+ 次の AWS CLI コマンドを実行して生成された結果を表示し、{{us-east-1}} および {{12abc34d567e8fa901bc2d34EXAMPLE}} を適切な値に置き換えます。

  ```
  aws guardduty list-findings --region {{us-east-1}} --detector-id {{12abc34d567e8fa901bc2d34EXAMPLE}}
  ```

  アカウントと現在のリージョンの `detectorId` を検索するには、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) コンソールの **[設定]** ページを参照するか、[https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html) API を実行します。

  検出結果のフィルタリングに使用できるパラメータの詳細については、「*AWS CLI Command Reference*」の「[list-findings](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/list-findings.html)」を参照してください。

------

## ステップ 4 - AWS テストリソースをクリーンアップする
<a name="clean-gdu-tester-script-resources"></a>

「[ステップ 3 - テスタースクリプトを実行する](#run-gdu-tester-script)」で行われたアカウントレベルの設定やその他の設定ステータスの更新は、テスタースクリプトの終了時に元の状態に戻ります。

テスタースクリプトを実行したら、 AWS テストリソースをクリーンアップすることを選択できます。これを選択するには、次のいずれかの方法を使用します。
+ 次のコマンドを実行します。

  ```
  cdk destroy
  ```
+ **GuardDutyTesterStack** という名前の CloudFormation スタックを削除します。ステップの詳細については、「 [CloudFormation コンソールでのスタックの削除](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)」を参照してください。

## 一般的な問題のトラブルシューティング
<a name="troubleshooting-gdu-tester-script-issues"></a>

GuardDuty はよくある問題を特定し、トラブルシューティングのステップを推奨しています。
+ `Cloud assembly schema version mismatch` – CLI AWS CDK を、必要なクラウドアセンブリバージョンと互換性のあるバージョン、または利用可能な最新バージョンに更新します。詳細については、「[AWS CDK CLI 互換性](https://docs.aws.amazon.com/cdk/v2/guide/versioning.html#cdk_toolkit_versioning)」を参照してください。
+ `Docker permission denied` – 専用アカウントでコマンドを実行できるように、専用アカウントユーザーを **docker** または **docker-users** に追加します。ステップの詳細については、「[デーモンソケットオプション](https://docs.docker.com/reference/cli/dockerd/#daemon-socket-option)」を参照してください。
+ `Your requested instance type is not supported in your requested Availability Zone` – 一部のアベイラビリティーゾーンは特定のインスタンスタイプをサポートしていません。任意のインスタンスタイプをサポートするアベイラビリティーゾーンを特定し、 AWS リソースのデプロイを再試行するには、次の手順を実行します。

  1. 任意の方法を選択して、インスタンスタイプをサポートするアベイラビリティーゾーンを確認します。

------
#### [ Console ]

**希望のインスタンスタイプをサポートするアベイラビリティーゾーンを特定するには**

     1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

     1. ページの右上隅にある AWS リージョンセレクターを使用して、インスタンスを起動するリージョンを選択します。

     1. ナビゲーションペインの **[インスタンス]** で、**[インスタンスタイプ]** を選択します。

     1. **[インスタンスタイプ]** テーブルから、希望のインスタンスタイプを選択します。

     1. **[ネットワーク]** で、**[アベイラビリティーゾーン]** にリストされているリージョンを表示します。

        この情報に基づいて、リソースをデプロイできる新しいリージョンを選択する必要がある場合があります。

------
#### [ AWS CLI ]

     次のコマンドを実行して、アベイラビリティーゾーンのリストを表示します。必ず希望のインスタンスタイプとリージョン ({{us-east-1}}) を指定してください。

     ```
     aws ec2 describe-instance-type-offerings --location-type availability-zone  --filters Name=instance-type,Values={{Preferred instance type}} --region {{us-east-1}} --output table
     ```

     このコマンドの詳細については、「*AWS CLI Command Reference*」の「[describe-instance-type-offerings](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-instance-type-offerings.html)」を参照してください。

     このコマンドを実行するときにエラーが表示された場合は、最新バージョンの AWS CLIを使用していることを確認してください。詳細については、「*AWS Command Line Interface  ユーザーガイド*」の「[トラブルシューティング](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-troubleshooting.html)」を参照してください。

------

  1.  AWS リソースを再度デプロイし、任意のインスタンスタイプをサポートするアベイラビリティーゾーンを指定します。

**AWS リソースのデプロイを再試行するには**

     1. `bin/cdk-gd-tester.ts` ファイルでデフォルトリージョンを設定します。

     1. アベイラビリティーゾーンを指定するには、`amazon-guardduty-tester/lib/common/network/vpc.ts` ファイルを開きます。

     1. このファイルでは、`maxAzs: 2,` を `availabilityZones: ['{{us-east-1a}}', '{{us-east-1c}}'],` に置き換え、ここでインスタンスタイプのアベイラビリティーゾーンを指定する必要があります。

     1. 「[AWS リソースをデプロイするステップ](#steps-deploy-resource-test-guardduty-findings)」の残りの手順を続行します。