緩和アクション - AWS IoT Device Defender

緩和アクション

AWS IoT Device Defender を使用して、監査所見または Detect アラームで検出された問題を緩和するためのアクションを実行できます。

注記

抑制された監査所見に対しては、緩和アクションは実行されません。監査所見の抑制の詳細については、「監査の所見の抑制」を参照してください。

緩和アクションの監査

AWS IoT Device Defender では、さまざまな監査チェック用に事前定義されたアクションが提供されます。これらのアクションを AWS アカウント に設定し、一連の結果に適用します。これらの結果は以下のとおりです。

  • 監査からのすべての結果。このオプションは、AWS IoT コンソールでも AWS CLI の使用によっても利用できます。

  • 個々の結果のリスト。このオプションは、AWS CLI の使用によってのみ利用できます。

  • 監査からフィルタリングされた一連の結果。

次の表は、監査チェックのタイプと、それぞれでサポートされている緩和アクションの一覧です。

監査チェックから緩和アクションへのマッピング
監査チェック サポートされている緩和アクション
REVOKED_CA_CERT_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_CA_CERTIFICATE
INTERMEDIATE_CA_REVOKED_FOR_ACTIVE_DEVICE_CERTIFICATES_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
DEVICE_CERTIFICATE_SHARED_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS
AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS
IOT_POLICY_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS, REPLACE_DEFAULT_POLICY_VERSION
IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK PUBLISH_FINDING_TO_SNS, REPLACE_DEFAULT_POLICY_VERSION
CA_CERTIFICATE_EXPIRING_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_CA_CERTIFICATE
CONFLICTING_CLIENT_IDS_CHECK PUBLISH_FINDING_TO_SNS
DEVICE_CERTIFICATE_EXPIRING_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
LOGGING_DISABLED_CHECK PUBLISH_FINDING_TO_SNS, ENABLE_IOT_LOGGING
DEVICE_CERTIFICATE_KEY_QUALITY_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
CA_CERTIFICATE_KEY_QUALITY_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_CA_CERTIFICATE
IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS
IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK PUBLISH_FINDING_TO_SNS

すべての監査チェックでは、Amazon SNS への監査結果の発行がサポートされるため、通知に応じてカスタムアクションを実行できます。各タイプの監査チェックでは、追加の緩和アクションをサポートできます。

REVOKED_CA_CERT_CHECK
  • 証明書の状態を変更して、AWS IoT で非アクティブとしてマークします。

DEVICE_CERTIFICATE_SHARED_CHECK
  • デバイス証明書の状態を変更して、AWS IoT で非アクティブとしてマークします。

  • その証明書を使用するデバイスをモノのグループに追加します。

UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK
  • 追加でサポートされているアクションはありません。

AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK
  • 追加でサポートされているアクションはありません。

IOT_POLICY_OVERLY_PERMISSIVE_CHECK
  • アクセス許可を制限するには、空の AWS IoT ポリシーバージョンを追加します。

IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK
  • AWS IoT ポリシーの潜在的な設定ミスを特定します。

CA_CERT_APPROACHING_EXPIRATION_CHECK
  • 証明書の状態を変更して、AWS IoT で非アクティブとしてマークします。

CONFLICTING_CLIENT_IDS_CHECK
  • 追加でサポートされているアクションはありません。

DEVICE_CERT_APPROACHING_EXPIRATION_CHECK
  • デバイス証明書の状態を変更して、AWS IoT で非アクティブとしてマークします。

  • その証明書を使用するデバイスをモノのグループに追加します。

DEVICE_CERTIFICATE_KEY_QUALITY_CHECK
  • デバイス証明書の状態を変更して、AWS IoT で非アクティブとしてマークします。

  • その証明書を使用するデバイスをモノのグループに追加します。

CA_CERTIFICATE_KEY_QUALITY_CHECK
  • 証明書の状態を変更して、AWS IoT で非アクティブとしてマークします。

REVOKED_DEVICE_CERT_CHECK
  • デバイス証明書の状態を変更して、AWS IoT で非アクティブとしてマークします。

  • その証明書を使用するデバイスをモノのグループに追加します。

LOGGING_DISABLED_CHECK
  • ログ作成を有効化します。

AWS IoT Device Defender では、監査所見に関する以下のタイプの緩和アクションがサポートされています。

アクションの種類

コメント
ADD_THINGS_TO_THING_GROUP デバイスを追加するグループを指定します。また、モノが属することができるグループの最大数を超える場合、1 つ以上の動的グループのメンバーシップをオーバーライドするかどうかも指定します。
ENABLE_IOT_LOGGING ログ記録レベルとログ記録のアクセス許可を持つロールを指定します。DISABLED のログ記録レベルを指定することはできません。
PUBLISH_FINDING_TO_SNS 結果の発行先となるトピックを指定します。
REPLACE_DEFAULT_POLICY_VERSION テンプレート名を指定します。ポリシーバージョンをデフォルトまたは空白のポリシーに置き換えます。現在、BLANK_POLICY の値のみがサポートされています。
UPDATE_CA_CERTIFICATE CA 証明書の新しい状態を指定します。現在、DEACTIVATE の値のみがサポートされています。
UPDATE_DEVICE_CERTIFICATE デバイス証明書の新しい状態を指定します。現在、DEACTIVATE の値のみがサポートされています。

監査中に問題が見つかったときの標準アクションを設定することで、それらの問題に一貫して対応できます。これらの定義済みの緩和アクションを使用すると、問題をより迅速に解決し、人為的ミスの可能性を低く抑えることができます。

重要

証明書の変更、新しいモノのグループへのモノの追加、またはポリシーの置き換えを行う緩和アクションを適用すると、デバイスとアプリケーションに影響する可能性があります。たとえば、デバイスが接続できなくなる場合があります。緩和アクションは、適用する前に、その影響を考慮してください。デバイスやアプリケーションが正常に機能できるようになる前に、問題を解決するための他のアクションを実行する必要がある場合があります。たとえば、更新されたデバイス証明書を提供する必要がある場合があります。緩和アクションはリスクをすばやく制限するのに役立ちますが、根本的な問題に対処するための是正措置を講じる必要があります。

デバイス証明書の再アクティブ化などの一部のアクションは、手動でのみ実行できます。AWS IoT Device Defender には、適用された緩和アクションを自動的にロールバックするメカニズムはありません。

Detect 緩和アクション

AWS IoT Device Defender では、Detect アラームに関する以下のタイプの緩和アクションがサポートされています。

アクションの種類

コメント
ADD_THINGS_TO_THING_GROUP デバイスを追加するグループを指定します。また、モノが属することができるグループの最大数を超える場合、1 つ以上の動的グループのメンバーシップをオーバーライドするかどうかも指定します。

緩和アクションを定義および管理する方法

AWS IoT コンソールまたは AWS CLI を使用して、AWS アカウント の緩和アクションを定義および管理できます。

緩和アクションの作成

定義する各緩和アクションは、事前定義されたアクションタイプとアカウントに固有のパラメータの組み合わせです。

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

  1. AWS IoT コンソールの [Mitigation actions page] (緩和アクション) ページを開きます。

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

  3. [Create a new mitigation action] (新規の緩和アクションの作成) ページの [Action name] (アクション名) に、緩和アクションの一意の名前を入力します。

  4. [アクションの種類] で、定義するアクションのタイプを指定します。

  5. [Permissions] (アクセス権限) で、アクションが適用されるアクセス権限の IAM ロールを選択します。

  6. 各アクションタイプは、異なる一連のパラメータをリクエストします。アクションのパラメータを入力します。たとえば、[モノのグループにモノを追加] アクションタイプを選択した場合は、追加先グループを選択し、[Override dynamic groups (動的グループのオーバーライド)] を選択またはオフにします。

  7. [Create] (作成) を選択して、緩和アクションを AWS アカウントに保存します。

AWS CLI を使用して緩和アクションを作成するには
  • CreateMitigationAction コマンドを使用して、緩和アクションを作成します。アクションに付ける一意の名前は、そのアクションを監査の結果に適用するときに使用されます。わかりやすい名前を選択します。

AWS IoT コンソールを使用して緩和アクションを表示および変更するには
  1. AWS IoT コンソールの [Mitigation actions page] (緩和アクション) ページを開きます。

    [Mitigation actions] (緩和アクション) ページには、AWS アカウント に対して定義されたすべての緩和アクションのリストが表示されます。

  2. 変更する緩和アクションのアクション名リンクを選択します。

  3. [Edit] (編集) を選択して、緩和アクションを変更します。緩和アクションの名前は識別に使用されるため、名前を変更することはできません。

  4. [Update] (更新) を選択して、緩和アクションに対する変更を AWS アカウント に保存します。

AWS CLI を使用して緩和アクションを一覧表示するには
  • ListMitigationAction コマンドを使用して、緩和アクションを一覧表示します。緩和アクションを変更または削除する場合は、名前をメモします。

AWS CLI を使用して緩和アクションを更新するには
AWS IoT コンソールを使用して緩和アクションを削除するには
  1. AWS IoT コンソールの [Mitigation actions page] (緩和アクション) ページを開きます。

    [Mitigation actions] (緩和アクション) ページには、AWS アカウント に対して定義されたすべての緩和アクションが表示されます。

  2. 削除する緩和アクションを選択し、[Delete] (削除) を選択します。

  3. [Are you sure you want to delete] (本当に削除しますか) ウィンドウで、[Delete] (削除) を選択します。

AWS CLI を使用して緩和アクションを削除するには
AWS IoT コンソールを使用して緩和アクションの詳細を表示するには
  1. AWS IoT コンソールの [Mitigation actions page] (緩和アクション) ページを開きます。

    [Mitigation actions] (緩和アクション) ページには、AWS アカウント に対して定義されたすべての緩和アクションが表示されます。

  2. 表示する緩和アクションのアクション名リンクを選択します。

AWS CLI を使用して緩和アクションの詳細を表示するには

緩和アクションの適用

一連の緩和アクションを定義したら、それらのアクションを監査の結果に適用できます。アクションを適用すると、監査緩和アクションタスクを開始します。このタスクは、結果のセットとそれに適用するアクションによっては、完了までに時間がかかることがあります。たとえば、証明書の有効期限が切れた大規模なデバイスプールがある場合、それらの証明書をすべて無効にするか、それらのデバイスを隔離グループに移動するまでに時間がかかることがあります。ログ記録の有効化など、他のアクションはすばやく完了できます。

アクション実行のリストを表示し、まだ完了していない実行をキャンセルできます。キャンセルされたアクション実行の一部として既に実行されているアクションはロールバックされません。結果のセットに複数のアクションを適用していて、アクションの 1 つが失敗した場合、その結果に対する後続のアクションはスキップされます (ただし、他の結果には適用されます)。結果のタスクのステータスは FAILED です。結果に適用したときに 1 つ以上のアクションが失敗した場合、 taskStatus は失敗に設定されます。アクションは、指定された順序で適用されます。

それぞれのアクション実行では、一連のアクションがターゲットに適用されます。そのターゲットは、結果のリストまたは監査からのすべての結果にすることができます。

次の図は、1 つの監査からすべての結果を取得し、その結果に一連のアクションを適用する監査緩和タスクを定義する方法を示しています。1 回の実行で、1 つのアクションが 1 つの結果に適用されます。監査緩和アクションタスクは、実行の概要を出力します。

概念図は、監査緩和アクションタスクを示しています。

次の図は、1 つ以上の監査から個々の結果のリストを取得し、その結果に一連のアクションを適用する監査緩和タスクを定義する方法を示しています。1 回の実行で、1 つのアクションが 1 つの結果に適用されます。監査緩和アクションタスクは、実行の概要を出力します。

概念図は、監査緩和アクションタスクを示しています。

緩和アクションを適用するには、AWS IoT コンソールまたは AWS CLI を使用できます。

AWS IoT コンソールを使用して、アクション実行を開始することで緩和アクションを適用するには
  1. AWS IoT コンソールの [Audit results] (監査結果) ページを開きます。

  2. アクションを適用する監査の名前を選択します。

  3. [Start mitigation actions] (緩和アクションの開始) を選択します。すべてのチェック項目が適合している場合、このボタンは使用できません。

  4. [Start a new mitigation action] (新規の緩和アクションの開始) では、タスク名はデフォルトで監査 ID になりますが、わかりやすいものに変更できます。

  5. 監査で 1 つ以上の不適合の結果があったチェックのタイプごとに、適用する 1 つ以上のアクションを選択できます。チェックタイプに有効なアクションのみが表示されます。

    注記

    AWS アカウント にアクションを設定していない場合、アクションのリストは空になります。[Create mitigation action] (緩和アクションの作成) リンクを選択して、1 つまたは複数の緩和アクションを作成できます。

  6. 適用するすべてのアクションを指定したら、[Start task] (タスクの開始) を選択します。

AWS CLI を使用して、監査緩和アクションの実行を開始して緩和アクションを適用するには
  1. 監査のすべての結果にアクションを適用する場合は、ListAuditTasks コマンドを使用してタスク ID を見つけます。

  2. 選択した結果にのみアクションを適用する場合は、ListAuditFindings コマンドを使用して結果 ID を取得します。

  3. ListMitigationActions コマンドを使用して、適用する緩和アクションの名前を書き留めます。

  4. StartAuditMitigationActionsTask コマンドを使用して、ターゲットにアクションを適用します。タスク ID を書き留めます。ID を使用して、アクション実行の状態の確認、詳細の確認、またはキャンセルを行うことができます。

AWS IoT コンソールを使用してアクションの実行を表示するには
  1. AWS IoT コンソールの [Action tasks] (アクションタスク) ページを開きます。

    アクションタスクのリストには、それぞれが開始された時刻と現在のステータスが表示されます。

  2. [名前] リンクを選択して、タスクの詳細を表示します。詳細には、タスクによって適用されるすべてのアクション、そのターゲット、およびステータスが含まれます。

    監査緩和アクションタスクの詳細。

    [Show executions for (実行を表示)] フィルターを使用して、アクションの種類やアクションの状態に注目できます。

  3. タスクの詳細を表示するには、[Executions (実行)] で [Show (表示)] を選択します。

    監査緩和アクションタスクの実行の詳細。
AWS CLI を使用して、開始したタスクを一覧表示するには
  1. ListAuditMitigationActionsTasks を使用して、監査結果の緩和アクションタスクを表示します。フィルターを指定して結果を絞り込むことができます。タスクの詳細を表示する場合は、タスク ID をメモしておきます。

  2. 特定の監査緩和アクションタスクの実行の詳細を表示するには、ListAuditMitigationActionsExecutions を使用します。

  3. 開始時に指定されたパラメータなど、タスクの詳細を表示するには、DescribeAuditMitigationActionsTask を使用します。

AWS CLI を使用して、実行中の監査緩和アクションタスクをキャンセルするには
  1. ListAuditMitigationActionsTasks コマンドを使用して、実行をキャンセルするタスクのタスク ID を見つけます。フィルターを指定して結果を絞り込むことができます。

  2. タスク ID を使用して ListDetectMitigationActionsExecutions コマンドを使用し、監査緩和アクションタスクをキャンセルします。完了したタスクはキャンセルできません。タスクをキャンセルすると、残りのアクションは適用されませんが、既に適用された緩和アクションはロールバックされません。

アクセス許可

定義する緩和アクションごとに、そのアクションを適用するために使用するロールを指定する必要があります。

緩和アクションのアクセス許可
アクションの種類 アクセス許可ポリシーテンプレート

UPDATE_DEVICE_CERTIFICATE

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:UpdateCertificate" ], "Resource":[ "*" ] } ] }
UPDATE_CA_CERTIFICATE
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:UpdateCACertificate" ], "Resource":[ "*" ] } ] }
ADD_THINGS_TO_THING_GROUP
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:ListPrincipalThings", "iot:AddThingToThingGroup" ], "Resource":[ "*" ] } ] }
REPLACE_DEFAULT_POLICY_VERSION
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:CreatePolicyVersion" ], "Resource":[ "*" ] } ] }
ENABLE_IOT_LOGGING
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:SetV2LoggingOptions" ], "Resource":[ "*" ] }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":[ "<IAM role ARN used for setting up logging>" ] } ] }
PUBLISH_FINDING_TO_SNS
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "sns:Publish" ], "Resource":[ "<The SNS topic to which the finding is published>" ] } ] }

すべての緩和アクションタイプに、次の信頼ポリシーテンプレートを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:iot:*:111122223333::*" }, "StringEquals": { "aws:SourceAccount": "111122223333:" } } } ] }