

# AWS IoT Device Defender の開始方法
<a name="dd-tutorials"></a>

次のチュートリアルを使用して、AWS IoT Device Defender を操作できます。

**Topics**
+ [

# セットアップ
](dd-setting-up.md)
+ [

# 監査ガイド
](audit-tutorial.md)
+ [

# ML Detect ガイド
](dd-detect-ml-getting-started.md)
+ [

# AWS IoT Device Defender 監査結果をいつどのように表示するかをカスタマイズする
](dd-suppressions-example.md)

# セットアップ
<a name="dd-setting-up"></a>

AWS IoT Device Defender を初めて使用する場合は、事前に以下のタスクをすべて実行してください。

**Topics**
+ [

## AWS アカウントへのサインアップ
](#sign-up-for-aws)
+ [

## 管理アクセスを持つユーザーを作成する
](#create-an-admin)

## AWS アカウントへのサインアップ
<a name="sign-up-for-aws"></a>

AWS アカウント がない場合は、以下のステップを実行して作成します。

**AWS アカウントにサインアップするには**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   AWS アカウント にサインアップすると、*AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービスとリソースへのアクセス権があります。セキュリティのベストプラクティスとして、ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用して[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)を実行してください。

サインアップ処理が完了すると、AWS からユーザーに確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

## 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

AWS アカウント にサインアップしたら、AWS アカウントのルートユーザー をセキュリティで保護し、AWS IAM アイデンティティセンター を有効にして、管理ユーザーを作成します。これにより、日常的なタスクにルートユーザーを使用しないようにします。

**AWS アカウントのルートユーザー をセキュリティで保護する**

1.  **[ルートユーザー]** を選択し、AWS アカウント のメールアドレスを入力して、アカウント所有者として [AWS マネジメントコンソール](https://console.aws.amazon.com/) にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、*AWS サインイン ユーザーガイド*の[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、「*IAM ユーザーガイド*」で [AWS アカウントのルートユーザーの仮想 MFA デバイスを有効にする方法 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) を確認してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンター の有効化](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   IAM アイデンティティセンターディレクトリ をアイデンティティソースとして使用するチュートリアルについては、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[ Configure user access with the default IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM アイデンティティセンターユーザーを使用してサインインする方法については、「*AWS サインイン User Guide*」の「[Signing in to the AWS access portal](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「[権限設定を作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)」*を参照してください*。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)」を参照してください。

これらのタスクでは、AWS アカウント とユーザーをそのアカウントの管理者権限で作成します。

# 監査ガイド
<a name="audit-tutorial"></a>

このチュートリアルでは、定期的な監査の設定、アラームの設定、監査結果の確認、および監査で検出された問題の緩和の方法について説明します。

**Topics**
+ [

## 前提条件
](#audit-tutorial-prerequisites)
+ [

## 監査チェックを有効化する
](#audit-tutorial-enable-checks)
+ [

## 監査結果を表示する
](#audit-tutorial-view-audit)
+ [

## 監査結果の緩和アクションの作成
](#audit-tutorial-mitigation)
+ [

## 監査所見に緩和措置を適用する
](#apply-mitigation-actions)
+ [

## AWS IoT Device Defender 監査 IAM ロールの作成（オプション）
](#audit-iam)
+ [

## SNS 通知を有効にする (オプション)
](#audit-tutorial-enable-sns)
+ [

## カスタマーマネージドキーのアクセス許可を設定する (オプション)
](#audit-tutorial-cmk-permissions)
+ [

## (オプション) ログ記録を有効化する
](#enable-logging)

## 前提条件
<a name="audit-tutorial-prerequisites"></a>

このチュートリアルを完了するには、以下が必要です。
+ AWS アカウント。これを持っていない場合は、[設定](https://docs.aws.amazon.com/iot/latest/developerguide/dd-setting-up.html)を参照してください。

## 監査チェックを有効化する
<a name="audit-tutorial-enable-checks"></a>

次の手順では、アカウントおよびデバイスの設定とポリシーを調べて、セキュリティ対策が実装されていることを確認します。このチュートリアルでは、すべての監査チェックを有効にすることとしていますが、任意のチェックを選択できます。

監査料金は、1 か月あたりのデバイス数 (AWS IoT に接続されたフリートデバイス) あたりの料金です。したがって、監査チェックを追加または削除しても、この機能を使用する際の毎月の請求書には影響しません。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)を開きます。ナビゲーションペインで、**[セキュリティ]** を展開し、**[イントロダクション]** を選択します。

1. **[AWS IoT セキュリティ監査を自動化]** を選択します。監査チェックは自動的にオンになります。

1. **[監査]** を展開し、**[設定]** を選択して監査チェックを表示します。監査チェックの名前を選択すると、監査チェックの目的について確認できます。監査チェックの詳細については、[[監査チェック](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-audit-checks.html)」を参照してください。

1. (オプション) 使用したいロールが既にある場合は、**[サービスのアクセス権限を管理]** を選択し、一覧からロールを選択して、**[更新]** を選択します。

## 監査結果を表示する
<a name="audit-tutorial-view-audit"></a>

次の手順では、監査結果を表示する方法を示します。このチュートリアルでは、[監査チェックを有効化する](#audit-tutorial-enable-checks) チュートリアルで設定された監査チェックの監査結果を確認します。

**監査結果を表示するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)を開きます。ナビゲーションペインで、**[セキュリティ]**、**[監査]** の順に展開し、**[結果]** を選択します。

1. 調査する監査スケジュールの **[名前]** を選択します。

1. **[非準拠のチェック]** の **[軽減]** で情報ボタンを選択すると、コンプライアンス非準拠の理由が表示されます。不適合チェックを適合にする方法のガイダンスについては、「[監査チェック項目](device-defender-audit-checks.md)」を参照してください。

## 監査結果の緩和アクションの作成
<a name="audit-tutorial-mitigation"></a>

以下の手順では、AWS IoT Device Defender Audit Mitigation Action を作成して、AWS IoT ログ記録を有効にします。各監査チェックには、マッピングされた緩和アクションがあります。これは、修正する監査チェック用に選択する [**Action type**] (アクションの種類) に影響します。詳細については、[緩和アクション](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html#defender-audit-apply-mitigation-actions.html)を参照してください。

**AWS IoT コンソールを使用して緩和アクションを作成するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)を開きます。ナビゲーションペインで、**[セキュリティ]**、**[検出]** の順に展開し、**[軽減アクション]** を選択します。

1. **[Mitigation actions]** (緩和アクション) ページで、**[Create]** (作成) を選択します。

1. **[新しい軽減アクションを作成する]** ページの **[アクション名]** に、*EnableErrorLoggingAction* などの軽減アクションの一意の名前を入力します。

1. **[アクションタイプ]** で、**[AWS IoT ログ記録を有効にする]** を選択します。

1. **[アクセス権限**] で、**[ロールの作成]** を選択します。**[ロール名]** で、*[IoTMitigationActionErrorLoggingRole]* を使用します。続いて、[**作成**] を選択します。

1. **[パラメータ]** の **[ログ記録のロール]** で、[`IoTMitigationActionErrorLoggingRole`] を選択します。**[ログレベル]** で、[`Error`] を選択します。

1. **[作成]** を選択します。

## 監査所見に緩和措置を適用する
<a name="apply-mitigation-actions"></a>

次の手順では、緩和アクションを監査結果に適用する方法を示します。

**不適合の監査結果を緩和するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)を開きます。ナビゲーションペインで、**[セキュリティ]**、**[監査]** の順に展開し、**[結果]** を選択します。

1. 対応する監査結果を選択します。

1. 結果を確認します。

1. **[Start mitigation actions]** (緩和アクションの開始) を選択します。

1. **[ログ記録が無効]** で、以前に作成した軽減アクション `EnableErrorLoggingAction` を選択します。問題に対処するために、非準拠の検出結果ごとに適切なアクションを選択できます。

1. **[理由コードを選択する]** で、監査チェックで返された理由コードを選択します。

1. **[タスクを開始]** を選択します。軽減アクションが実行されるまで数分かかる場合があります。

**緩和アクションが機能したことを確認するには**

1. AWS IoT コンソールのナビゲーションペインで、**[設定]** を選択します。

1. **[サービスログ]** で、**[ログレベル]** が `Error (least verbosity)` であることを確認します。

## AWS IoT Device Defender 監査 IAM ロールの作成（オプション）
<a name="audit-iam"></a>

次の手順では、AWS IoT への AWS IoT Device Defender 読み取りアクセス権を提供する AWS IoT Device Defender 監査 IAM ロールを作成します。

**AWS IoT Device Defender のサービスロールを作成するには (IAM コンソール)**

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

1. IAM コンソールのナビゲーションペインで、[**ロール**]、[**ロールを作成**] を選択します。

1. **AWS のサービス** のロールタイプを選択します。

1. **[その他の AWS のサービスのユースケース]** で、[**AWS IoT**] を選択し、**[IoT - Device Defender Audit]** を選択します。

1. [**次へ**] を選択します。

1. (オプション) [アクセス許可の境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)を設定します。このアドバンスド機能は、サービスロールで使用できますが、サービスにリンクされたロールではありません。

   **[Permissions boundary]** (アクセス許可の境界) セクションを展開し、**[Use a permissions boundary to control the maximum role permissions]** (アクセス許可の境界を使用して、ロールのアクセス許可の上限を設定する) を選択します。IAM には、あなたのアカウント内の AWS 管理ポリシーとカスタマー管理ポリシーのリストがあります。アクセス許可の境界に使用するポリシーを選択するか、[**ポリシーを作成**] を選択して新しいブラウザタブを開き、新しいポリシーをゼロから作成します。詳細については、『*IAM ユーザーガイド*』の「[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)」を参照してください。ポリシーを作成したら、そのタブを閉じて元のタブに戻り、アクセス許可の境界として使用するポリシーを選択します。

1. [**次へ**] を選択します。

1. このロールの目的を識別しやすくするロール名を入力します。ロール名は AWS アカウント アカウント内で一意である必要があります。大文字と小文字は区別されません。例えば、**PRODROLE** と **prodrole** というロール名を両方作成することはできません。多くのエンティティによりロールが参照されるため、作成後にロール名を変更することはできません。

1. (オプション) [**Description (説明)**] には、新しいロールの説明を入力します。

1. **[Step 1: Select trusted entities]** (ステップ 1: 信頼済みエンティティの選択) または **[Step 2: Select permissions]** (ステップ 2: 権限の選択) のセクションで **[Edit]** (編集) を選択し、ロールのユースケースと権限を変更します。

1. (オプション) タグをキーバリューペアとしてアタッチして、メタデータをユーザーに追加します。IAM でのタグの使用に関する詳細については『*IAM ユーザーガイド*』の「[IAM リソースにタグを付ける](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)」を参照してください。

1. ロール情報を確認し、**ロールの作成** を選択します。

## SNS 通知を有効にする (オプション)
<a name="audit-tutorial-enable-sns"></a>

次の手順では、Amazon SNS (SNS) 通知を有効にして、監査で不適合のリソースが特定されたときに警告します。このチュートリアルでは、[監査チェックを有効化する](#audit-tutorial-enable-checks) チュートリアルで有効にした監査チェックの通知を設定します。

1. まだ設定していない場合は、AWS マネジメントコンソール 経由で SNS へのアクセスを提供するポリシーをアタッチします。これを行うには、「*IAM ユーザーガイド*」の「[IAM ユーザーグループへのポリシーのアタッチ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_attach-policy.html)」の手順に従って、**AWSIoTDeviceDefenderPublishFindingsToSNSMitigationAction** ポリシーを選択します。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)を開きます。ナビゲーションペインで、**[セキュリティ]**、**[監査]** の順に展開し、**[設定]** を選択します。

1. **[Device Defender の監査設定]** ページの下部にある、**[SNS アラートを有効にする]** を選択します。

1. [**有効**] を選択します。

1. **[トピック]**、**[新しいトピックを作成]** の順に選択します。トピックに *IoTDDNotifications* という名前を付け、**[作成]** を選択します。**[ロール]** には、「[AWS IoT Device Defender 監査 IAM ロールの作成（オプション）](#audit-iam)」で作成したロールを選択します。

1. **[更新]** を選択します。

1. Ops プラットフォームで E メールやテキストを Amazon SNS 経由で受信したい場合は、「[ユーザー通知に Amazon Simple Notification Service を使用する](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)」を参照してください。

## カスタマーマネージドキーのアクセス許可を設定する (オプション)
<a name="audit-tutorial-cmk-permissions"></a>

**注記**  
この設定は、AWS IoT Core のカスタマーマネージドキーにオプトインしている場合にのみ必要です。保管時の AWS IoT Core 暗号化の詳細については、「[AWS IoT Core での保管時のデータの暗号化](https://docs.aws.amazon.com/iot/latest/developerguide/encryption-at-rest.html)」を参照してください。

保管時の AWS IoT Core 暗号化でカスタマーマネージドキー (CMK) を有効にしている場合、AWS IoT Device Defender 監査で使用される IAM ロールには、データを復号するための追加のアクセス許可が必要です。これらのアクセス許可がないと、監査オペレーションは失敗します。

[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSIoTDeviceDefenderAudit.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSIoTDeviceDefenderAudit.html) 管理ポリシーには、最小特権の原則に従って、設計上の `kms:Decrypt` アクセス許可は含まれません。カスタマーマネージドキーを使用する場合は、これらのアクセス許可を手動で監査ロールに追加する必要があります。

**AWS IoT Device Defender 監査 IAM ロールに KMS アクセス許可を追加するには**

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

1. ナビゲーションペインで **[ロール]** を選択し、[AWS IoT Device Defender 監査 IAM ロールの作成（オプション）](#audit-iam) で作成したロールまたは監査設定の構成時に指定したロールを検索します。

1. ロール名を選択して、詳細ページを開きます。

1. **[アクセス許可]** タブで **[アクセス許可の追加]** を選択したら、**[インラインポリシーの作成]** を選択します。

1. **[JSON]** タブを選択して次のポリシーを入力します。*REGION*、*ACCOUNT\$1ID*、*KEY\$1ID* を AWS KMS キーの詳細に置き換えます。

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/KEY_ID"
       }
     ]
   }
   ```

1. [**次へ**] を選択します。

1. **[ポリシー名]** にわかりやすい名前 (**DeviceDefenderAuditKMSDecrypt** など) を入力します。

1. [**Create policy**] (ポリシーの作成) を選択します。

## (オプション) ログ記録を有効化する
<a name="enable-logging"></a>

この手順では、AWS IoT が CloudWatch Logs に情報を記録できるようにする方法について説明します。これにより、監査結果を表示できます。ログ記録を有効にすると、料金が発生する場合があります。

**ログ記録を有効にするには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)を開きます。ナビゲーションペインで [**設定**] を選択します。

1. **[ログ]** で、**[ログの管理]** を選択します。

1. **[新しいロール]** で、**[ロールの作成]** をクリックします。ロールに *AWSIoTLoggingRole* という名前を付け、**[作成]** を選択します。ポリシーは自動的にアタッチされます。

1. **[ログレベル]** で、**[デバッグ (最も冗長)]** を選択します。

1. **[更新]** を選択します。

# ML Detect ガイド
<a name="dd-detect-ml-getting-started"></a>

**注記**  
ML Detect は、以下のリージョンではご利用いただけません。  
アジアパシフィック (マレーシア)

この開始方法のガイドでは、機械学習 (ML) を使用して、デバイスからの履歴メトリクスデータに基づいて想定される動作のモデルを作成する ML Detect Security Profile を作成します。ML Detect による ML モデルの作成中に、進捗状況を監視できます。ML モデルの構築後、アラームを継続的に表示および調査し、特定された問題を緩和できます。

ML Detect ならびに API コマンドおよび CLI コマンドの詳細については、「[ML 検出](dd-detect-ml.md)」を参照してください。

**Topics**
+ [

## 前提条件
](#ml-detect-prereqs)
+ [

## コンソールで ML Detect を使用する方法
](#dd-detect-ml-console)
+ [

## CLI で ML Detect を使用する方法
](#dd-detect-ml-cli)

## 前提条件
<a name="ml-detect-prereqs"></a>
+ AWS アカウント。これを持っていない場合は、[設定](https://docs.aws.amazon.com/iot/latest/developerguide/dd-setting-up.html)を参照してください。

## コンソールで ML Detect を使用する方法
<a name="dd-detect-ml-console"></a>

**Topics**
+ [

### ML Detect を有効化する
](#enable-ml-detect-console)
+ [

### ML モデルのステータスを監視する
](#monitor-ml-models-console)
+ [

### ML Detect アラームを確認する
](#review-ml-alarms-console)
+ [

### ML アラームを微調整する
](#fine-tune-ml-models-console)
+ [

### アラームの確認状態をマークする
](#mark-your-alarms)
+ [

### 特定されたデバイスの問題を緩和する
](#mitigate-ml-issues-console)

### ML Detect を有効化する
<a name="enable-ml-detect-console"></a>

次の手順では、コンソールで ML Detect を設定する方法について説明します。

1. まず、モデルの継続的なトレーニングと更新のために、デバイスが [ML Detect の最小要件](dd-detect-ml.md#dd-detect-ml-requirements)で定義されているところに従って、必要となる最小データポイントを作成することを確認します。データ収集を進めるには、セキュリティプロファイルがターゲット (モノまたはモノのグループである場合があります) に確実にアタッチされているようにします。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)のナビゲーションペインで、[**Defend**] (防御) を展開します。[**Detect**] (検出)、[**Security profiles**] (セキュリティプロファイル、[**Create security profile**] (セキュリティプロファイルの作成)、[**Create ML anomaly Detect profile**] (ML 異常検出プロファイルの作成) の順に選択します。

1. **[Set basic configurations]** (基本的な設定を編集) ページで、以下を実行します。
   + **[Target]** (ターゲット) で、ターゲットデバイスグループを選択します。
   + **[Security profile name]** (セキュリティプロファイル名) で、セキュリティプロファイルの名前を入力します。
   + (オプション) **[Description]** (説明) で、ML プロファイルの簡単な説明を記入できます。
   + **[Selected metric behaviors in Security Profile]** (セキュリティプロファイルでの選択されたメトリクスの動作) で、監視するメトリクスを選択します。  
![\[[登録されたすべてのモノ] がターゲットとして選択され、[認可の失敗] や [接続試行] などのメトリクス動作を一覧表示し、クラウド側またはデバイス側のメトリクスを追加するオプションを指定する、[ML セキュリティプロファイル設定の作成] ページ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-set-basic.png)

   終了したら、[**Next (次へ)**] を選択します。

1. リポジトリの **[Set SNS (optional)]** (SNS の設定 (オプション)) ページで、デバイスがプロファイルの動作に違反した場合のアラーム通知の SNS トピックを指定します。選択した SNS トピックで発行するために使用する IAM ロールを選択します。

   SNS ロールをまだ持っていない場合は、次の手順に従って、必要となる適切なアクセス許可と信頼関係を持つロールを作成します。
   + [IAM コンソール](https://console.aws.amazon.com/iam/)に移動します。ナビゲーションペインで [**ロール**] を選択した後、[**ロールの作成**] を選択します。
   + **[信頼されたエンティティのタイプを選択]** で、**[AWS のサービス]** を選択します。その後、[**Choose a use case**] (ユースケースの選択) で [**IoT**] を選択し、[**Select your use case**] (ユースケースの選択) で [**IoT - Device Defender Mitigation Actions**] を選択します。完了したら、**[Next: Permissions]** (次へ: アクセス許可) を選択します。
   + **[Attached permissions policies]** (アタッチされたアクセス許可ポリシー) で、**[AWSIoTDeviceDefenderPublishFindingsToSNSMitigationAction]** が選択されていることを確認してから、**[Next: Tags]** (次へ: タグ) を選択します。  
![\[ポリシー名、各ポリシーがアクセスを提供する内容の説明、ポリシーをフィルタリングまたは検索するオプションを含む AWS IoT Device Defender ロールのアクセス許可ポリシーテーブル。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-sns-findings.png)
   + **[Add tags (optional)]** (タグの追加 (オプション)) では、ロールに関連付けるタグを追加できます。終了したら、[**Next: Review**] を選択します。
   + [**Review**] (レビュー) で、ロールに名前を付け、**AWSIoTDeviceDefenderPublishFindingsToSNSMitigationAction** が [**Permissions**] (アクセス許可) の下に表示され、**AWS service: iot.amazonaws.com** が [**Trust relationships**] (信頼関係) の下に表示されていることを確認します。終了したら、[**Create role**] (ロールの作成) を選択します。  
![\[ロール ARN、説明、インスタンスプロファイル ARN、パス、作成時間、最大セッション期間、適用されている AWS IoT Device Defender PublishFindingsToSNSMitigationAction ポリシーなどの Sample-SNS-role の詳細を示す [IAM ロール の概要] ページ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-detect-permissions.png)  
![\[ロール ARN、SNS 通知を送信するための AWS IoT Device Defender 書き込みアクセスを提供するロールの説明、パス、作成時刻、および信頼されたエンティティを示す IAM Sample-SNS-role の概要\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-detect-trust-relationships.png)

1. **[Edit Metric behavior]** (メトリクスの動作の編集) ページでは、ML の動作の設定をカスタマイズできます。  
![\[アラームトリガー、通知、ML Detect 信頼レベルのデータポイントを設定できる、[認可の失敗]、[着信バイト]、[接続試行] を含む [メトリクスの動作を編集] セクション。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-update-config.png)

1. 終了したら、[**Next (次へ)**] を選択します。

1. **[Review configuration]** (設定の確認) ページで、機械学習で監視する動作を確認し、**[Next]** (次へ) を選択します。  
![\[[登録されたすべてのモノ] をターゲットに設定した [Smart_lights_ML_Detect_Security_Profile]、および [認可の失敗]、[送信バイト]、[接続試行]、[切断] のメトリクス動作を含む [ML セキュリティプロファイルの編集] ページ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-review-config.png)

   

1. セキュリティプロファイルの作成後は、**[Security Profiles]** (セキュリティプロファイル) ページにリダイレクトされます。ここでは、新しく作成されたセキュリティプロファイルが表示されます。
**注記**  
ML モデルの初期トレーニングと作成が完了するまでに 14 日間かかります。デバイスに異常なアクティビティがある場合は、完了後にアラームが表示されることが想定されます。

### ML モデルのステータスを監視する
<a name="monitor-ml-models-console"></a>

ML モデルが初期トレーニング期間内にある間は、次の手順を実行することでいつでも進捗状況を監視できます。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)のナビゲーションペインで、[**Defend**] (防御) を展開し、[**Detect**] (検出)、[**Security profiles**] (セキュリティプロファイル) の順に選択します。

1. [**Security Profiles**] (セキュリティプロファイル) ページで、確認するセキュリティプロファイルを選択します。その後、**[Behaviors and ML training]** (動作と ML トレーニング) を選択します。

1. **[Behaviors and ML training]** (動作と ML トレーニング) ページで、ML モデルのトレーニングの進捗状況を確認します。

   モデルのステータスが **[Active]** (アクティブ) になると、使用状況に基づいて Detect の決定を開始し、毎日プロファイルを更新します。  
![\[TCP/UDP リスニングポートと確立された TCP 接続をモニタリングするための信頼性の低い機械学習モデルを示すダッシュボード。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-active-state.png)

**注記**  
モデルが想定したとおりに進捗しない場合は、デバイスが [最小要件](dd-detect-ml.md#dd-detect-ml-requirements) を満たしていることを確認してください。

### ML Detect アラームを確認する
<a name="review-ml-alarms-console"></a>

ML モデルが構築され、データ推論の準備が整ったら、モデルによって識別されるアラームを定期的に表示および調査できます。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)のナビゲーションペインで、[**Defend**] (防御) を展開し、[**Detect**] (検出)、[**Alarms**] (アラーム) の順に選択します。  
![\[[モノの名前]、[セキュリティプロファイル]、[動作タイプ]、[動作名]、[最終出力時間]、[検証の状態] の各列を含む 5 つのアクティブな認可失敗アラームを示す AWS IoT Device Defender アラームリスト。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-alarms.png)

1. [**History**] (履歴) タブに移動すると、アラーム状態ではなくなったデバイスの詳細を表示することもできます。  
![\[[アラーム状態]、[アラーム解除]、[無効化済みのアラーム] のアラームを表示している 2 週間の期間の折れ線グラフ。Y 軸はアラーム数を、X 軸は日付を示す。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-history-alarm.png)

   詳細情報を取得するには、**[Manage]** (管理) で **[Things]** (モノ) を選択し、詳細を表示するモノを選択して、**[Defender metrics]** (Defender メトリクス) に移動します。**[Active]** (アクティブ) タブから、**[Defender metrics graph]** (Defender メトリクスグラフ) にアクセスして、アラーム状態にあるものすべてに対して調査を実行できます。この場合、グラフにはメッセージサイズのスパイクが表示され、アラームが開始されます。その後、アラームがクリアされたことを確認できます。  
![\[指定した日時のピークが 801 バイトであるメッセージサイズの最大メトリクスグラフを示す IoT のモノのダッシュボード。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-defender-metrics.png)

### ML アラームを微調整する
<a name="fine-tune-ml-models-console"></a>

ML モデルが構築され、データ評価の準備が整ったら、セキュリティプロファイルの ML 動作設定を更新して設定を変更できます。次の手順は、AWS CLI でセキュリティプロファイルの ML 動作設定を更新する方法を示しています。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot)のナビゲーションペインで、[**Defend**] (防御) を展開し、[**Detect**] (検出)、[**Security profiles**] (セキュリティプロファイル) の順に選択します。

1. [**Security Profiles**] (セキュリティプロファイル) ページで、確認するセキュリティプロファイルの横にあるチェックボックスをオンにします。その後、**[Actions]** (アクション)、**[Edit]** (編集) の順に選択します。  
![\[プロファイル名、ML しきい値タイプ、保持される動作、ターゲットのモノ、作成日、通知ステータスを表示している AWS IoT Device Defender セキュリティプロファイルリスト。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-fine-tune.png)

1. **[Set basic configurations]** (基本構成の設定) では、セキュリティプロファイルのターゲットのモノのグループを調整したり、監視するメトリクスを変更したりできます。  
![\[[登録されたすべてのモノ] がターゲットとして選択され、[認可の失敗] や [接続試行] などのメトリクス動作を一覧表示し、クラウド側またはデバイス側のメトリクスを追加するオプションを指定する、[ML セキュリティプロファイル設定の作成] ページ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-set-basic.png)

1. 次のいずれかを更新するには、**[Edit metric behaviors]** (メトリクスの動作の編集) に移動します。
   + アラームを開始するために必要な ML モデルのデータポイント
   + アラームをクリアするために必要な ML モデルのデータポイント
   + ML Detect 信頼レベル
   + ML Detect 通知 (例えば、**抑制されていません**,**抑制された**)  
![\[ML セキュリティプロファイルの [認可の失敗]、[送信バイト]、[接続試行] の各メトリクスを設定するオプションを含む [メトリクスの動作を編集] セクション。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-update-config-2.png)

### アラームの確認状態をマークする
<a name="mark-your-alarms"></a>

検証状態を設定し、その検証状態の説明を入力して、アラームをマークします。これは、自分と自身のチームが応答する必要のないアラームを特定するのに役立ちます。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)のナビゲーションペインで、[**Defend**] (防御) を展開し、[**Detect**] (検出)、[**Alarms**] (アラーム) の順に選択します。検証状態をマークするアラームを選択します。  
![\[fdsa セキュリティプロファイルを含む iotconsole-6f8379bc-c245-4ffe-8ef7-b2b52e78975c など、IoT コンソールのモノに関するアクティブな認可の失敗動作イベントを示す AWS IoT Device Defender アラームビュー。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-alarm-select.png)

1. **検証状態をマークする**を選びます。検証状態モーダルが開きます。

1. 適切な検証状態を選択し、検証の説明（オプション）を入力し、**Mark**を選びます。このアクションは、選択したアラームに検証状態と説明を割り当てます。  
![\[アラームの検証状態を「不明」、「真検知」、「誤検知」、「良性の検知」のオプションで示しているダイアログ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-alarm-state-window.png)

### 特定されたデバイスの問題を緩和する
<a name="mitigate-ml-issues-console"></a>

1. *(オプション)* 検査結果の緩和アクションを設定する前に、違反しているデバイスを移動する検査グループを設定しましょう。既存のグループを使用することもできます。

1. **[Manage]** (管理)、**[Thing groups]** (モノのグループ)、**[Create Thing Group]** (モノのグループの作成) の順に移動します。モノのグループに名前を付けます。このチュートリアルでは、モノのグループに `Quarantine_group` という名前を付けます。**[Thing group]** (モノのグループ)、**[Security]** (セキュリティ) では、モノのグループに次のポリシーを適用します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "iot:*",
               "Resource": "*"
           }
       ]
   }
   ```

------  
![\[[モノのグループを作成] ボタンを含む AWS IoT コンソールの [モノのグループを作成] ページ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-create-thing-group.png)

   終了したら、**[Create thing group]** (モノのグループの作成) を選択します。

1. モノのグループを作成したので、アラーム状態のデバイスを `Quarantine_group` に移動する緩和アクションを作成しましょう。

   **[Defend]** (防御) の **[Mitigation actions]** (緩和アクション) で、**[Create]** (作成) を選択します。  
![\[[アクション名]、[アクションタイプ]、[アクセス許可]、[アクション実行ロール]、[モノのグループ] フィールドを含む AWS IoT Device Defender 緩和アクション設定フォーム。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-miti-create.png)

1. **[Create a new mitigation action]** (新しい緩和アクションの作成) ページで、以下の情報を入力します。
   + **[Action name]** (アクション名): 緩和アクションに名前 (例: **Quarantine\$1action**) を付けます。
   + **[Action type]** (アクションの種類): アクションの種類を選択します。**[Add things to thing group (Audit or Detect mitigation)]** (モノのグループにモノを追加 (緩和機能の監査または検出)を選択します。
   + **[Action execution role]** (アクション実行ロール): ロールを作成するか、事前に作成している場合は既存のロールを選択します。
   + **Parameters** (パラメータ): モノのグループを選択します｡ 以前に作成した `Quarantine_group` を使用できます。  
![\[[アクション名]、[アクションタイプ]、[アクセス許可]、[アクション実行ロール]、[モノのグループ] フィールドを含む AWS IoT Device Defender 緩和アクション設定フォーム。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-miti-create-form.png)

   完了したら、[**Save **] を選択します。これで、アラーム状態のデバイスを検査対象のモノのグループに移動する緩和アクションと、調査中にデバイスを隔離する緩和アクションが追加されました。

1. **[Defender]**、**[Detect]** (検出)、**[Alarms]** (アラーム) の順に移動します。**[Active]** (アクティブ) の下で、アラーム状態になっているデバイスを確認できます。  
![\[[モノの名前]、[セキュリティプロファイル]、[動作タイプ]、[動作名]、[最終出力時間]、[検証の状態] の各列を含む 5 つのアクティブな認可失敗アラームを示す AWS IoT Device Defender アラームリスト。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-alarms.png)

   検査対象のグループに移動するデバイスを選択し、**[Start Mitigation Actions]** (緩和アクションの開始) を選択します。

1. **[Start Mitigation Actions]** (緩和アクションの開始) の **[Start Actions]** (アクションの開始) で、先ほど作成した緩和アクションを選択します。例えば、[**Quarantine\$1action**] を選択してから、**[Start]** (開始) を選択します。[Action Tasks] (アクションタスク) ページが開きます。  
![\[「udml7」が影響を受けるモノとしてリストされ、元に戻せないアクションを確認するチェックボックス、実行するアクションを選択するドロップダウンを含む緩和アクションダイアログ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-start-action.png)

1. これでデバイスが **Quarantine\$1group** に隔離され、アラームを引き起こした問題の根本原因を調査できます。調査が完了したら、デバイスをモノのグループから移動したり、さらにアクションを実行したりできます。  
![\[quarantine_group モノのグループにモノを追加する隔離アクションを表示している AWS IoT Device Defender 検知アクションタスク。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-ml-action-tasks.png)

   

## CLI で ML Detect を使用する方法
<a name="dd-detect-ml-cli"></a>

CLI を使用して ML Detect を設定する方法を次に示します。

**Topics**
+ [

### ML Detect を有効化する
](#enable-ml-detect-cli)
+ [

### ML モデルのステータスを監視する
](#monitor-ml-models-cli)
+ [

### ML Detect アラームを確認する
](#review-ml-alarms-cli)
+ [

### ML アラームを微調整する
](#fine-tune-ml-models-cli)
+ [

### アラームの確認状態をマークする
](#mark-verification-state-cli)
+ [

### 特定されたデバイスの問題を緩和する
](#mitigate-issues-cli)

### ML Detect を有効化する
<a name="enable-ml-detect-cli"></a>

以下の手順では、AWS CLI で ML Detect を有効にする方法を示します。

1. モデルの継続的なトレーニングと更新のために、[ML Detect の最小要件](dd-detect-ml.md#dd-detect-ml-requirements)で定義されているところに従って必要となる最小データポイントをデバイスが作成することを確認します。データ収集を進めるには、セキュリティプロファイルにアタッチされたモノのグループにモノが確実に存在するようにしてください。

1. `[create-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/create-security-profile.html)` コマンドを使用して、ML Detect セキュリティプロファイルを作成します。次の例では、*security-profile-for-smart-lights* という名前のセキュリティプロファイルを作成します。このプロファイルは、送信されたメッセージの数、承認の失敗の数、接続の試行の数、および切断の数をチェックします。この例では、メトリクスが ML Detect モデルを使用することを確立するために `mlDetectionConfig` を使用します。

   ```
   aws iot create-security-profile \
       --security-profile-name security-profile-for-smart-lights \
       --behaviors \
        '[{
       "name": "num-messages-sent-ml-behavior",
       "metric": "aws:num-messages-sent",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     },
     {
       "name": "num-authorization-failures-ml-behavior",
       "metric": "aws:num-authorization-failures",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     },
     {
       "name": "num-connection-attempts-ml-behavior",
       "metric": "aws:num-connection-attempts",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     },
     {
       "name": "num-disconnects-ml-behavior",
       "metric": "aws:num-disconnects",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     }]'
   ```

   出力:

   ```
   {
       "securityProfileName": "security-profile-for-smart-lights",
       "securityProfileArn": "arn:aws:iot:eu-west-1:123456789012:securityprofile/security-profile-for-smart-lights"
     }
   ```

1. 次に、セキュリティプロファイルを 1 つまたは複数のモノのグループに関連付けます。`[attach-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/attach-security-profile.html)` コマンドを使用して、モノのグループをセキュリティプロファイルにアタッチします。次の例では、*ML\$1Detect\$1beta\$1static\$1group* という名前のモノのグループを *security-profile-for-smart-lights* セキュリティプロファイルに関連付けます。

   ```
   aws iot attach-security-profile \
   --security-profile-name security-profile-for-smart-lights \
   --security-profile-target-arn arn:aws:iot:eu-west-1:123456789012:thinggroup/ML_Detect_beta_static_group
   ```

   出力:

   なし。

1. 完全なセキュリティプロファイルを作成したら、ML モデルがトレーニングを開始します。ML モデルの初期トレーニングと構築が完了するまでに 14 日間かかります。14 日が経過すると、デバイスで異常なアクティビティが発生した場合、アラームが表示されます。

### ML モデルのステータスを監視する
<a name="monitor-ml-models-cli"></a>

以下の手順では、ML モデルの進行中のトレーニングを監視する方法を示しています。
+ `[get-behavior-model-training-summaries](https://docs.aws.amazon.com/cli/latest/reference/iot/get-behavior-model-training-summaries.html)` コマンドを使用して、ML モデルの進捗状況を表示します。次の例では、*security-profile-for-smart-lights* セキュリティプロファイルの ML モデルトレーニングの進捗状況の概要を取得します。`modelStatus` は、モデルがトレーニングを完了したか、特定の動作のビルドがまだ保留中であるかを示します。

  ```
  aws iot get-behavior-model-training-summaries \
     --security-profile-name security-profile-for-smart-lights
  ```

  出力:

  ```
  {
      "summaries": [
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Messages_sent_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 29.408,
              "lastModelRefreshDate": "2020-12-07T14:35:19.237000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Messages_received_ML_behavior",
              "modelStatus": "PENDING_BUILD",
              "datapointsCollectionPercentage": 0.0
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Authorization_failures_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 35.464,
              "lastModelRefreshDate": "2020-12-07T14:29:44.396000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Message_size_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 29.332,
              "lastModelRefreshDate": "2020-12-07T14:30:44.113000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Connection_attempts_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 32.891999999999996,
              "lastModelRefreshDate": "2020-12-07T14:29:43.121000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Disconnects_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 35.46,
              "lastModelRefreshDate": "2020-12-07T14:29:55.556000-08:00"
          }
      ]
  }
  ```

**注記**  
モデルが想定したとおりに進捗しない場合は、デバイスが [最小要件](dd-detect-ml.md#dd-detect-ml-requirements) を満たしていることを確認してください。

### ML Detect アラームを確認する
<a name="review-ml-alarms-cli"></a>

ML モデルが構築され、データ評価の準備が整ったら、モデルによって推測されるアラームを定期的に表示できます。以下の手順では、AWS CLI でアラームを表示する方法を示します。
+ すべてのアクティブなアラームを表示するには、`[list-active-violations](https://docs.aws.amazon.com/cli/latest/reference/iot/list-active-violations.html)` コマンドを使用します。

  ```
  aws iot list-active-violations \
  --max-results 2
  ```

  出力:

  ```
  {
      "activeViolations": []
  }
  ```

  または、`[list-violation-events](https://docs.aws.amazon.com/cli/latest/reference/iot/list-violation-events.html)` コマンドを使用して、特定の期間中に検出されたすべての違反を表示することもできます。次の例では、2020 年 9 月 22 日 5:42:13 GMT から 2020 年 10 月 26 日 5:42:13 GMT までの違反イベントをリストします。

  ```
  aws iot list-violation-events \
      --start-time 1599500533 \ 
      --end-time 1600796533 \
      --max-results 2
  ```

  出力:

  ```
  {
      "violationEvents": [
          {
              "violationId": "1448be98c09c3d4ab7cb9b6f3ece65d6",
              "thingName": "lightbulb-1",
              "securityProfileName": "security-profile-for-smart-lights",
              "behavior": {
                  "name": "LowConfidence_MladBehavior_MessagesSent",
                  "metric": "aws:num-messages-sent",
                  "criteria": {
                      "consecutiveDatapointsToAlarm": 1,
                      "consecutiveDatapointsToClear": 1,
                      "mlDetectionConfig": {
                          "confidenceLevel": "HIGH"
                      }
                  },
                  "suppressAlerts": true
              },
              "violationEventType": "alarm-invalidated",
              "violationEventTime": 1600780245.29
          },
          {
              "violationId": "df4537569ef23efb1c029a433ae84b52",
              "thingName": "lightbulb-2",
              "securityProfileName": "security-profile-for-smart-lights",
              "behavior": {
                  "name": "LowConfidence_MladBehavior_MessagesSent",
                  "metric": "aws:num-messages-sent",
                  "criteria": {
                      "consecutiveDatapointsToAlarm": 1,
                      "consecutiveDatapointsToClear": 1,
                      "mlDetectionConfig": {
                          "confidenceLevel": "HIGH"
                      }
                  },
                  "suppressAlerts": true
              },
              "violationEventType": "alarm-invalidated",
              "violationEventTime": 1600780245.281
          }
      ],
      "nextToken": "Amo6XIUrsOohsojuIG6TuwSR3X9iUvH2OCksBZg6bed2j21VSnD1uP1pflxKX1+a3cvBRSosIB0xFv40kM6RYBknZ/vxabMe/ZW31Ps/WiZHlr9Wg7R7eEGli59IJ/U0iBQ1McP/ht0E2XA2TTIvYeMmKQQPsRj/eoV9j7P/wveu7skNGepU/mvpV0O2Ap7hnV5U+Prx/9+iJA/341va+pQww7jpUeHmJN9Hw4MqW0ysw0Ry3w38hOQWEpz2xwFWAxAARxeIxCxt5c37RK/lRZBlhYqoB+w2PZ74730h8pICGY4gktJxkwHyyRabpSM/G/f5DFrD9O5v8idkTZzBxW2jrbzSUIdafPtsZHL/yAMKr3HAKtaABz2nTsOBNre7X2d/jIjjarhon0Dh9l+8I9Y5Ey+DIFBcqFTvhibKAafQt3gs6CUiqHdWiCenfJyb8whmDE2qxvdxGElGmRb+k6kuN5jrZxxw95gzfYDgRHv11iEn8h1qZLD0czkIFBpMppHj9cetHPvM+qffXGAzKi8tL6eQuCdMLXmVE3jbqcJcjk9ItnaYJi5zKDz9FVbrz9qZZPtZJFHp"
  }
  ```

### ML アラームを微調整する
<a name="fine-tune-ml-models-cli"></a>

ML モデルが構築され、データ評価の準備が整ったら、セキュリティプロファイルの ML 動作設定を更新して設定を変更できます。次の手順は、AWS CLI でセキュリティプロファイルの ML 動作設定を更新する方法を示しています。
+ セキュリティプロファイルの ML 動作設定を変更するには、`[update-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/update-security-profile.html)` コマンドを使用します。次の例では、いくつかの動作の `confidenceLevel` を変更して、*security-profile-for-smart-lights* セキュリティプロファイルの動作を更新し、すべての動作の通知を抑制解除します。

  ```
  aws iot update-security-profile \
      --security-profile-name security-profile-for-smart-lights \
      --behaviors \
       '[{
        "name": "num-messages-sent-ml-behavior",
        "metric": "aws:num-messages-sent",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "HIGH"
            }
        },
        "suppressAlerts": false
    },
    {
        "name": "num-authorization-failures-ml-behavior",
        "metric": "aws:num-authorization-failures",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "HIGH"
            }
        },
        "suppressAlerts": false
    },
    {
        "name": "num-connection-attempts-ml-behavior",
        "metric": "aws:num-connection-attempts",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "HIGH"
            }
        },
        "suppressAlerts": false
    },
    {
        "name": "num-disconnects-ml-behavior",
        "metric": "aws:num-disconnects",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "LOW"
            }
        },
        "suppressAlerts": false
  
    }]'
  ```

  出力:

  ```
   {
      "securityProfileName": "security-profile-for-smart-lights",
      "securityProfileArn": "arn:aws:iot:eu-west-1:123456789012:securityprofile/security-profile-for-smart-lights",
      "behaviors": [
          {
              "name": "num-messages-sent-ml-behavior",
              "metric": "aws:num-messages-sent",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "HIGH"
                  }
              }
          },
          {
              "name": "num-authorization-failures-ml-behavior",
              "metric": "aws:num-authorization-failures",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "HIGH"
                  }
              }
          },
          {
              "name": "num-connection-attempts-ml-behavior",
              "metric": "aws:num-connection-attempts",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "HIGH"
                  }
              },
              "suppressAlerts": false
          },
          {
              "name": "num-disconnects-ml-behavior",
              "metric": "aws:num-disconnects",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "LOW"
                  }
              },
              "suppressAlerts": true
          }
      ],
      "version": 2,
      "creationDate": 1600799559.249,
      "lastModifiedDate": 1600800516.856
  }
  ```

### アラームの確認状態をマークする
<a name="mark-verification-state-cli"></a>

アラームに検証ステータスをマークして、アラームの分類や異常の調査に役立てることができます。
+ アラームに確認状態とその状態の説明をマークします。例えば、アラームの検証状態を False positive に設定するために、次のコマンドを使用します。

  ```
  aws iot put-verification-state-on-violation --violation-id 12345  --verification-state FALSE_POSITIVE --verification-state-description "This is dummy description"  --endpoint https://us-east-1.iot.amazonaws.com --region us-east-1
  ```

  出力:

  なし。

### 特定されたデバイスの問題を緩和する
<a name="mitigate-issues-cli"></a>

1. `[create-thing-group](https://docs.aws.amazon.com/cli/latest/reference/iot/create-thing-group.html)` コマンドを使用して、緩和アクション用のモノのグループを作成します。次の例では、**ThingGroupForDetectMitigationAction** というモノのグループを作成します。

   ```
   aws iot create-thing-group —thing-group-name ThingGroupForDetectMitigationAction
   ```

   出力:

   ```
   {
    "thingGroupName": "ThingGroupForDetectMitigationAction",
    "thingGroupArn": "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroupForDetectMitigationAction",
    "thingGroupId": "4139cd61-10fa-4c40-b867-0fc6209dca4d"
   }
   ```

1. 次に、`[create-mitigation-action](https://docs.aws.amazon.com/cli/latest/reference/iot/create-mitigation-action.html)` コマンドを使用して、緩和アクションを作成します。次の例では、緩和アクションを適用するために使用される IAM ロールの ARN を使用して、**detect\$1mitigation\$1action** という緩和アクションを作成します。また、アクションのタイプとそのアクションのパラメータを定義します。この場合、緩和アクションにより、**ThingGroupForDetectMitigationAction** という以前に作成したモノのグループにモノが移動します。

   ```
   aws iot create-mitigation-action --action-name detect_mitigation_action \
   --role-arn arn:aws:iam::123456789012:role/MitigationActionValidRole \
   --action-params \  
   '{
        "addThingsToThingGroupParams": {
            "thingGroupNames": ["ThingGroupForDetectMitigationAction"],
            "overrideDynamicGroups": false
        }
    }'
   ```

   出力:

   ```
   {
    "actionArn": "arn:aws:iot:us-east-1:123456789012:mitigationaction/detect_mitigation_action",
    "actionId": "5939e3a0-bf4c-44bb-a547-1ab59ffe67c3"
   }
   ```

1. `[start-detect-mitigation-actions-task](https://docs.aws.amazon.com/cli/latest/reference/iot/start-detect-mitigation-actions-task.html)` コマンドを使用して、緩和アクションタスクを開始します。`task-id`、`target`、および `actions` は必須パラメータです。

   ```
   aws iot start-detect-mitigation-actions-task \
       --task-id taskIdForMitigationAction \
       --target '{ "violationIds" : [ "violationId-1", "violationId-2" ] }' \
       --actions "detect_mitigation_action" \
       --include-only-active-violations \
       --include-suppressed-alerts
   ```

   出力:

   ```
   {
       "taskId": "taskIdForMitigationAction"
   }
   ```

1. (オプション) タスクに含まれる緩和アクションの実行を表示するには、`[list-detect-mitigation-actions-executions](https://docs.aws.amazon.com/cli/latest/reference/iot/list-detect-mitigation-actions-executions.html)` コマンドを使用します。

   ```
   aws iot list-detect-mitigation-actions-executions \
       --task-id taskIdForMitigationAction \
       --max-items 5 \
       --page-size 4
   ```

   出力:

   ```
   {
       "actionsExecutions": [
           {
               "taskId": "e56ee95e - f4e7 - 459 c - b60a - 2701784290 af",
               "violationId": "214_fe0d92d21ee8112a6cf1724049d80",
               "actionName": "underTest_MAThingGroup71232127",
               "thingName": "cancelDetectMitigationActionsTaskd143821b",
               "executionStartDate": "Thu Jan 07 18: 35: 21 UTC 2021",
               "executionEndDate": "Thu Jan 07 18: 35: 21 UTC 2021",
               "status": "SUCCESSFUL",
           }
       ]
   }
   ```

1. (オプション) `[describe-detect-mitigation-actions-task](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-detect-mitigation-actions-task.html)` コマンドを使用すると、緩和アクションタスクに関する情報を取得できます。

   ```
   aws iot describe-detect-mitigation-actions-task \
       --task-id taskIdForMitigationAction
   ```

   出力:

   ```
   {
       "taskSummary": {
           "taskId": "taskIdForMitigationAction",
           "taskStatus": "SUCCESSFUL",
           "taskStartTime": 1609988361.224,
           "taskEndTime": 1609988362.281,
           "target": {
               "securityProfileName": "security-profile-for-smart-lights",
               "behaviorName": "num-messages-sent-ml-behavior"
           },
           "violationEventOccurrenceRange": {
               "startTime": 1609986633.0,
               "endTime": 1609987833.0
           },
           "onlyActiveViolationsIncluded": true,
           "suppressedAlertsIncluded": true,
           "actionsDefinition": [
               {
                   "name": "detect_mitigation_action",
                   "id": "5939e3a0-bf4c-44bb-a547-1ab59ffe67c3",
                   "roleArn": "arn:aws:iam::123456789012:role/MitigatioActionValidRole",
                   "actionParams": {
                       "addThingsToThingGroupParams": {
                           "thingGroupNames": [
                               "ThingGroupForDetectMitigationAction"
                           ],
                           "overrideDynamicGroups": false
                       }
                   }
               }
           ],
           "taskStatistics": {
               "actionsExecuted": 0,
               "actionsSkipped": 0,
               "actionsFailed": 0
           }
       }
   }
   ```

1. (オプション) 緩和アクションタスクのリストを取得するには、`[list-detect-mitigation-actions-tasks](https://docs.aws.amazon.com/cli/latest/reference/iot/list-detect-mitigation-actions-tasks.html)` コマンドを使用します。

   ```
   aws iot list-detect-mitigation-actions-tasks \
       --start-time 1609985315 \
       --end-time 1609988915 \
       --max-items 5 \
       --page-size 4
   ```

   出力:

   ```
   {
       "tasks": [
           {
               "taskId": "taskIdForMitigationAction",
               "taskStatus": "SUCCESSFUL",
               "taskStartTime": 1609988361.224,
               "taskEndTime": 1609988362.281,
               "target": {
                   "securityProfileName": "security-profile-for-smart-lights",
                   "behaviorName": "num-messages-sent-ml-behavior"
               },
               "violationEventOccurrenceRange": {
                   "startTime": 1609986633.0,
                   "endTime": 1609987833.0
               },
               "onlyActiveViolationsIncluded": true,
               "suppressedAlertsIncluded": true,
               "actionsDefinition": [
                   {
                       "name": "detect_mitigation_action",
                       "id": "5939e3a0-bf4c-44bb-a547-1ab59ffe67c3",
                       "roleArn": "arn:aws:iam::123456789012:role/MitigatioActionValidRole",
                       "actionParams": {
                           "addThingsToThingGroupParams": {
                               "thingGroupNames": [
                                   "ThingGroupForDetectMitigationAction"
                               ],
                               "overrideDynamicGroups": false
                           }
                       }
                   }
               ],
               "taskStatistics": {
                   "actionsExecuted": 0,
                   "actionsSkipped": 0,
                   "actionsFailed": 0
               }
           }
       ]
   }
   ```

1. (オプション) 緩和アクションタスクをキャンセルするには、`[cancel-detect-mitigation-actions-task](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-detect-mitigation-actions-task.html)` コマンドを使用します。

   ```
   aws iot cancel-detect-mitigation-actions-task \
       --task-id taskIdForMitigationAction
   ```

   出力:

   なし。

# AWS IoT Device Defender 監査結果をいつどのように表示するかをカスタマイズする
<a name="dd-suppressions-example"></a>

AWS IoT Device Defender 監査では、AWS IoT デバイスとリソースがベストプラクティスに適合していることを確認するために、定期的にセキュリティチェックを行います。各チェックで、監査結果は適合または不適合に分類され、不適合の場合はコンソールの警告アイコンが表示されます。既知の問題のノイズの繰り返しを緩和するために、監査所見の抑制機能を使用すると、これらの不適合の通知を一時的に停止することができます。

特定のリソースまたはアカウントの監査チェックを、あらかじめ決められた期間だけ抑制できます。抑制された監査チェックの結果は、適合カテゴリと不適合カテゴリとは別に、抑制された所見として分類されます。この新しいカテゴリは、不適合の結果の場合のようにアラームをトリガーしません。これにより、既知のメンテナンス期間中または更新の完了がスケジュールされるまで、不適合の通知に煩わされる機会を減らせます。

## 開始方法
<a name="dd-gs-afs"></a>

次のセクションでは、監査結果の抑制を使用して、コンソールおよび CLI での `Device certificate expiring` チェックを抑制する方法について詳しく説明します。いずれかのデモンストレーションに従う場合は、Device Defender が検出できるように、まずは失効する証明書を 2 つ作成する必要があります。

証明書を作成するには、以下を使用します。
+ 「**AWS IoT Core デベロッパーガイド」の「[CA 証明書の作成と登録](https://docs.aws.amazon.com/iot/latest/developerguide/create-device-cert.html)」
+ [CA 証明書を使用してクライアント証明書を作成する](https://docs.aws.amazon.com/iot/latest/developerguide/create-device-cert.html) ステップ 3 で、`days` パラメータを **1** に設定します。

CLI を使用して証明書を作成している場合は、次のコマンドを入力します。

```
openssl x509 -req \ 
    -in device_cert_csr_filename \ 
    -CA root_ca_pem_filename \ 
    -CAkey root_ca_key_filename \     
    -CAcreateserial \
    -out device_cert_pem_filename \ 
    -days 1 -sha256
```

## コンソールで監査所見をカスタマイズする
<a name="dd-afs-example-console"></a>

次のチュートリアルでは、不適合の監査チェックをトリガーする、2 つの失効したデバイス証明書を持つアカウントを使用します。このシナリオでは、デベロッパーが問題に対処する新しい機能をテストしているため、警告を無効にします。各証明書用に監査所見の抑制を作成し、次週以降、監査結果が不適合にならないようにします。

1. まず、オンデマンド監査を実行して、失効したデバイス証明書のチェックが不適合であることを示します。

   [AWS IoT コンソール](https://console.aws.amazon.com/iot)で、左側のサイドバーから [**Defend**] (防御) を選択し、[**Audit**] (監査)、[**Results**] (結果) の順に選択します。[**Audit Results**] (監査結果) ページで、[**Create**] (作成) を選択します。**[新しい監査を作成する]** ウィンドウが開きます。[**Create**] (作成) を選択します。  
![\[オンデマンド監査を実行して、失効したデバイス証明書のチェックが不適合であることを示します。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-afs-noncompliant.png)

   オンデマンドの監査結果から、[Device certificate expiring] (デバイス証明書の有効期限が切れます) が 2 つのリソースで不適合であることがわかります。

1. ここでは、デベロッパーが警告内容を修正する新機能をテストしているため、[Device certificate expiring] (デバイス証明書の有効期限が切れます) の不適合チェック警告を無効にします。

   **[防御]** の下の左側のサイドバーから、**[監査]** を選択し、**[検索結果の抑制]** を選択します。**[監査結果の抑制]** ページで、**[作成]** を選択します。  
![\[コンソールで監査所見の抑制を作成する方法\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-afs-suppressions.png)

1. **[監査結果の抑制を作成する]** ウィンドウで、次のように入力する必要があります。
   + **Audit check** (監査チェック): 抑制したい監査チェックである、`Device certificate expiring` を選択します。
   + **リソース識別**: 監査結果を抑制する証明書の 1 つのデバイス証明書 ID を入力します。
   + **Suppression duration** (抑制期間): `Device certificate expiring`の監査チェックを抑制したい期間である、`1 week` を選択します。
   + **説明 (オプション)**: この監査結果を抑制する理由を説明するメモを追加します。  
![\[詳細情報を入力する必要がある [監査結果の抑制を作成する] ページ。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-afs-create.png)

   フィールドに入力したら、**[作成]** を選択します。監査所見の抑制が作成された後に、成功バナーが表示されます。

1. 証明書の 1 つに対して監査所見を非表示にしました。次に、2 番目の証明書の監査所見を抑制する必要があります。ステップ 3 で使用したのと同じ抑制方法を使用することもできますが、デモンストレーションのために、別の方法を使用します。

   **[防御]** の下の左側のサイドバーから、**[監査]** を選択し、**[結果]** を選択します。**[監査結果]** のページで、不適合のリソースの監査を選択します。その後、**[非準拠のチェック]** でリソースを選択します。この例では、[Device certificate expiring] (デバイス証明書の有効期限が切れます) を選択します。

1. **[デバイス証明書の有効期限が切れます]** のページ内の **[非準拠のポリシー]** で、抑制が必要な検出結果の横にあるオプションボタンを選択します。次に、**[アクション]** ドロップダウンメニューを選択し、検出結果を抑制したい期間を選択します。ここでは、他の証明書で行ったのと同じように `1 week` を選択します。**[抑制を確認]** ウィンドウで、**[抑制を有効化]** を選択します。  
![\[フローを完了する [監査抑制を作成] ページ。監査所見の抑制が作成された後に、成功バナーが表示されます。\]](http://docs.aws.amazon.com/ja_jp/iot-device-defender/latest/devguide/images/dd-afs-noncompliantcerts.png)

   監査所見の抑制が作成された後に、成功バナーが表示されます。現在、両方の監査所見が 1 週間抑制されており、デベロッパーは警告に対処するためのソリューションに取り組んでいます。

## CLI で監査所見をカスタマイズする
<a name="dd-afs-example-cli"></a>

次のチュートリアルでは、不適合の監査チェックをトリガーする、1 つの失効したデバイス証明書を持つアカウントを使用します。このシナリオでは、デベロッパーが問題に対処する新しい機能をテストしているため、警告を無効にします。証明書用に監査所見の抑制を作成し、次週以降、監査結果が不適合にならないようにします。

次の CLI コマンドを使用します。
+ [create-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/create-audit-suppression.html)
+ [describe-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-audit-suppression.html)
+ [update-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/update-audit-suppression.html)
+ [delete-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-audit-suppression.html)
+ [list-audit-suppressions](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppressions.html)

1. 次のコマンドを使用して、監査を有効にします。

   ```
   aws iot update-account-audit-configuration \
      --audit-check-configurations "{\"DEVICE_CERTIFICATE_EXPIRING_CHECK\":{\"enabled\":true}}"
   ```

   出力:

   なし。

1. 次のコマンドを使用して、`DEVICE_CERTIFICATE_EXPIRING_CHECK` 監査チェックを対象とするオンデマンド監査を実行します。

   ```
   aws iot start-on-demand-audit-task \
       --target-check-names DEVICE_CERTIFICATE_EXPIRING_CHECK
   ```

   出力:

   ```
   {
       "taskId": "787ed873b69cb4d6cdbae6ddd06996c5"
   }
   ```

1. [describe-account-audit-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-account-audit-configuration.html) コマンドを使用して、監査設定を記述します。`DEVICE_CERTIFICATE_EXPIRING_CHECK` の監査チェックをオンにしたことを確認します。

   ```
   aws iot describe-account-audit-configuration
   ```

   出力:

   ```
   {
       "roleArn": "arn:aws:iam::<accountid>:role/service-role/project",
       "auditNotificationTargetConfigurations": {
           "SNS": {
               "targetArn": "arn:aws:sns:us-east-1:<accountid>:project_sns",
               "roleArn": "arn:aws:iam::<accountid>:role/service-role/project",
               "enabled": true
           }
       },
       "auditCheckConfigurations": {
           "AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": {
               "enabled": false
           },
           "CA_CERTIFICATE_EXPIRING_CHECK": {
               "enabled": false
           },
           "CA_CERTIFICATE_KEY_QUALITY_CHECK": {
               "enabled": false
           },
           "CONFLICTING_CLIENT_IDS_CHECK": {
               "enabled": false
           },
           "DEVICE_CERTIFICATE_EXPIRING_CHECK": {
               "enabled": true
           },
           "DEVICE_CERTIFICATE_KEY_QUALITY_CHECK": {
               "enabled": false
           },
           "DEVICE_CERTIFICATE_SHARED_CHECK": {
               "enabled": false
           },
           "IOT_POLICY_OVERLY_PERMISSIVE_CHECK": {
               "enabled": true
           },
           "IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK": {
               "enabled": false
           },
           "IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK": {
               "enabled": false
           },
           "LOGGING_DISABLED_CHECK": {
               "enabled": false
           },
           "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK": {
               "enabled": false
           },
           "REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK": {
               "enabled": false
           },
           "UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": {
               "enabled": false
           }
       }
   }
   ```

   `DEVICE_CERTIFICATE_EXPIRING_CHECK` には `true` の値になっているはずです。

1. [list-audit-task](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-task.html) コマンドを使用して、完了した監査タスクを識別します。

   ```
   aws iot list-audit-tasks \
       --task-status "COMPLETED" \
       --start-time 2020-07-31 \
       --end-time 2020-08-01
   ```

   出力:

   ```
   {
       "tasks": [
           {
               "taskId": "787ed873b69cb4d6cdbae6ddd06996c5",
               "taskStatus": "COMPLETED",
               "taskType": "SCHEDULED_AUDIT_TASK"
           }
       ]
   }
   ```

   ステップ 1 で実行した監査の `taskId` は、`COMPLETED` の `taskStatus` を持っている必要があります。

1. [describe-audit-task](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-audit-task.html) コマンドを使用して、前のステップの `taskId` 出力を使用して完了した監査の詳細を取得します。このコマンドは、監査の詳細を一覧で表示します。

   ```
   aws iot describe-audit-task \
       --task-id "787ed873b69cb4d6cdbae6ddd06996c5"
   ```

   出力:

   ```
   {
       "taskStatus": "COMPLETED",
       "taskType": "SCHEDULED_AUDIT_TASK",
       "taskStartTime": 1596168096.157,
       "taskStatistics": {
           "totalChecks": 1,
           "inProgressChecks": 0,
           "waitingForDataCollectionChecks": 0,
           "compliantChecks": 0,
           "nonCompliantChecks": 1,
           "failedChecks": 0,
           "canceledChecks": 0
       },
       "scheduledAuditName": "AWSIoTDeviceDefenderDailyAudit",
       "auditDetails": {
           "DEVICE_CERTIFICATE_EXPIRING_CHECK": {
               "checkRunStatus": "COMPLETED_NON_COMPLIANT",
               "checkCompliant": false,
               "totalResourcesCount": 195,
               "nonCompliantResourcesCount": 2
           }
       }
   }
   ```

1. [list-audit-findings](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-findings.html) コマンドを使用して不適合の証明書 ID を検索し、このリソースの監査アラートを一時停止できるようにします。

   ```
   aws iot list-audit-findings \
       --start-time 2020-07-31 \
       --end-time 2020-08-01
   ```

   出力:

   ```
   {
       "findings": [
           {
               "findingId": "296ccd39f806bf9d8f8de20d0ceb33a1",
               "taskId": "787ed873b69cb4d6cdbae6ddd06996c5",
               "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK",
               "taskStartTime": 1596168096.157,
               "findingTime": 1596168096.651,
               "severity": "MEDIUM",
               "nonCompliantResource": {
                   "resourceType": "DEVICE_CERTIFICATE",
                   "resourceIdentifier": {
                       "deviceCertificateId": "b4490<shortened>"
                   },
                   "additionalInfo": {
                   "EXPIRATION_TIME": "1582862626000"
                   }
               },
               "reasonForNonCompliance": "Certificate is past its expiration.",
               "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION",
               "isSuppressed": false
           },
           {
               "findingId": "37ecb79b7afb53deb328ec78e647631c",
               "taskId": "787ed873b69cb4d6cdbae6ddd06996c5",
               "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK",
               "taskStartTime": 1596168096.157,
               "findingTime": 1596168096.651,
               "severity": "MEDIUM",
               "nonCompliantResource": {
                   "resourceType": "DEVICE_CERTIFICATE",
                   "resourceIdentifier": {
                       "deviceCertificateId": "c7691<shortened>"
                   },
                   "additionalInfo": {
                   "EXPIRATION_TIME": "1583424717000"
                   }
               },
               "reasonForNonCompliance": "Certificate is past its expiration.",
               "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION",
               "isSuppressed": false
           }
      ]
   }
   ```

1. [create-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/create-audit-suppression.html) コマンドを使用して、*2020 年 8 月 20 日*まで ID `c7691e<shortened>` を持つデバイス証明書の `DEVICE_CERTIFICATE_EXPIRING_CHECK` 監査チェックの通知を抑制します。

   ```
   aws iot create-audit-suppression \
       --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \
       --resource-identifier deviceCertificateId="c7691e<shortened>" \
       --no-suppress-indefinitely \ 
       --expiration-date 2020-08-20
   ```

1. [list-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppression.html) コマンドを使用して、監査抑制設定を確認し、抑制の詳細を取得します。

   ```
   aws iot list-audit-suppressions
   ```

   出力:

   ```
   {
       "suppressions": [
           {
           "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK",
               "resourceIdentifier": {
                   "deviceCertificateId": "c7691e<shortened>"
               },
           "expirationDate": 1597881600.0,
           "suppressIndefinitely": false
           }
       ]
   }
   ```

1. [update-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/update-audit-suppression.html) コマンドを使用して、監査結果の抑制を更新できます。以下の例では、`expiration-date` を`08/21/20` に更新します。

   ```
   aws iot update-audit-suppression \
       --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \
       --resource-identifier deviceCertificateId=c7691e<shortened> \
       --no-suppress-indefinitely \
       --expiration-date 2020-08-21
   ```

1. [delete-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-audit-suppression.html) コマンドを使用して、監査結果の抑制を削除できます。

   ```
   aws iot delete-audit-suppression \
       --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \
       --resource-identifier deviceCertificateId="c7691e<shortened>"
   ```

   削除を確認するには、[list-audit-suppressions](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppressions.html) コマンドを使用します。

   ```
   aws iot list-audit-suppressions
   ```

   出力:

   ```
   {
    "suppressions": []
   }
   ```

このチュートリアルでは、コンソールと CLI で `Device certificate expiring` チェックを抑制する方法を示しました。監査所見の抑制の詳細については、[監査の所見の抑制](audit-finding-suppressions.md) を参照してください。