翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Device Defender
AWS IoT Device Defender コンポーネント (aws.greengrass.DeviceDefender) は、Greengrass コアデバイスの状態の変化を管理者に通知します。これは、侵害されたデバイスを示す可能性のある異常な動作を特定するのに役立ちます。詳細については、「AWS IoT Core
デベロッパーガイド」の 「AWS IoT Device Defender」を参照してください。
このコンポーネントは、コアデバイスのシステムメトリクスを読み込みます。その後、そのメトリクスを AWS IoT Device Defenderにパブリッシュします。このコンポーネントが報告するメトリクスを読み取り、解釈する方法の詳細については、「AWS IoT Core デベロッパーガイド」の「デバイスメトリクスドキュメントの仕様」を参照してください。
注記
このコンポーネントは、 の Device Defender コネクタと同様の機能を提供します AWS IoT Greengrass V1。詳細については、「AWS IoT Greengrass V1 デベロッパーガイド」の「Device Defender コネクタ」を参照してください。
バージョン
このコンポーネントには、次のバージョンがあります。
-
4.0.x
-
3.1.x
-
3.0.x
-
2.0.x
コンポーネントの各バージョンに対する変更については、「変更ログ」を参照してください。
タイプ
- v4.x - v3.x
-
このコンポーネントはジェネリックコンポーネント (
aws.greengrass.generic) です。Greengrass nucleus は、コンポーネントのライフサイクルスクリプトを実行します。 - v2.x
-
このコンポーネントは Lambda コンポーネントです (
aws.greengrass.lambda)。Greengrass nucleus は、Lambda ランチャーコンポーネントを使用してこのコンポーネントの Lambda 関数を実行します。
詳細については、「コンポーネントタイプ」を参照してください。
オペレーティングシステム
- v4.x - v3.x
-
このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。
Linux
Server
- v2.x
-
このコンポーネントは、Linux コアデバイスにのみインストールできます。
要件
このコンポーネントには次の要件があります。
- v4.x - v3.x
-
-
Python
バージョン 3.7 がコアデバイスにインストールされ、PATH 環境変数に追加されています。 -
依存関係を含む次の Python ライブラリをインストールし、コンポーネントを実行しているユーザーが使用できるようにする必要があります。
注記
UseInstaller設定を に設定trueして、提供された Python 環境にこれらのライブラリを自動的にインストールできます。 -
AWS IoT Device Defender Detect 機能を使用して違反をモニタリングするように設定されています。詳細については、「AWS IoT Core デベロッパーガイド」の「検出」を参照してください。
-
- v2.x
-
-
コアデバイスは、Lambda 関数を実行するための要件を満たしている必要があります。コアデバイスが、コンテナ化された Lambda 関数を実行させる場合、そのデバイスは要件を満たす必要があります。詳細については、「Lambda 関数の要件」を参照してください。
-
Python
バージョン 3.7 がコアデバイスにインストールされ、PATH 環境変数に追加されています。 -
AWS IoT Device Defender Detect 機能を使用して違反をモニタリングするように設定されています。詳細については、「AWS IoT Core デベロッパーガイド」の「検出」を参照してください。
-
コアデバイスにインストールされた psutil
ライブラリ。このコンポーネントの動作が確認された最新のバージョンはバージョン 5.7.0 です。 -
コアデバイスにインストールされた cbor
ライブラリ。このコンポーネントの動作が確認された最新のバージョンはバージョン 1.0.0 です。 -
このコンポーネントから出力データを受信するには、このコンポーネントをデプロイするときに、次の設定更新プログラムをレガシーサブスクリプションルーターのコンポーネント (
aws.greengrass.LegacySubscriptionRouter) のためにマージする必要があります。この設定は、このコンポーネントがレスポンスを公開するトピックを指定します。Legacy subscription router v2.1.xLegacy subscription router v2.0.x- Legacy subscription router v2.1.x
{ "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "component:aws.greengrass.DeviceDefender", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }- Legacy subscription router v2.0.x
{ "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }-
regionAWS リージョン を、使用する に置き換えます。 -
バージョンを、このコンポーネントが実行する Lambda 関数のバージョンに置き換えます。Lambda 関数のバージョンを確認するには、デプロイするこのコンポーネントのバージョンの recipe を確認する必要があります。AWS IoT Greengrass コンソールで、このコンポーネントの詳細ページを開き、[Lambda function] (Lambda 関数) の key-value ペアを見つけます。このキー値のペアには、Lambda 関数の名前とバージョンが含まれます。
重要
このコンポーネントをデプロイするたびに、レガシーサブスクリプションルーターの Lambda 関数のバージョンを更新する必要があります。これにより、デプロイするコンポーネントバージョンに正しい Lambda 関数のバージョンが使用されることが保証されます。
-
詳細については、「デプロイの作成」を参照してください。
-
依存関係
コンポーネントをデプロイすると、 は互換性のあるバージョンの依存関係 AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソール
- 4.0.0 - 3.0.0
-
次の表に、このコンポーネントのバージョン 4.0.0 から 3.0.0 までの依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <3.0.0 ソフト トークン交換サービス >=0.0.0 ハード - 2.0.12 - 2.0.17
-
次の表に、このコンポーネントのバージョン 2.0.12 から 2.0.17 までの依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <3.0.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.12 - 2.0.16
-
次の表に、このコンポーネントのバージョン 2.0.16 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <3.0.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.10 - 2.0.11
-
次の表に、このコンポーネントのバージョン 2.0.10 および 2.0.11 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <2.8.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.9
-
次の表に、このコンポーネントのバージョン 2.0.9 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <2.7.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.8
-
次の表に、このコンポーネントのバージョン 2.0.8 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <2.6.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.7
-
次の表に、このコンポーネントのバージョン 2.0.7 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <2.5.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.6
-
次の表に、このコンポーネントのバージョン 2.0.6 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <2.4.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.5
-
次の表に、このコンポーネントのバージョン 2.0.5 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <2.3.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.4
-
次の表に、このコンポーネントのバージョン 2.0.4 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.0 <2.2.0 ハード Lambda ランチャー ^2.0.0 ハード Lambda ランタイム ^2.0.0 ソフト トークン交換サービス ^2.0.0 ハード - 2.0.3
-
次の表に、このコンポーネントのバージョン 2.0.3 の依存関係を示します。
依存関係 互換性のあるバージョン 依存関係タイプ Greengrass nucleus >=2.0.3 <2.1.0 ハード Lambda ランチャー >=1.0.0 ハード Lambda ランタイム >=1.0.0 ソフト トークン交換サービス >=1.0.0 ハード
コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。
設定
このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。
- v4.x
-
PublishRetryCount-
パブリッシュが再試行される回数。
最小値は 0 です。
最大数は 72 です。
デフォルト: 5
SampleIntervalSeconds-
(オプション) コンポーネントがメトリクスを収集してレポートする各サイクルの間隔 (秒単位)。
最小値は 300 秒 (5 分) です。
デフォルト: 300 秒
-
UseInstaller -
(オプション) インストーラスクリプトを使用して、このコンポーネントの Python 依存関係を指定された Python 環境にインストールするかどうかを定義するブール値。
この値を に設定すると
true、このコンポーネントの Python 依存関係が自動的にインストールされます。に設定するとfalse、依存関係を含む次のライブラリをインストールし、コンポーネントを実行しているユーザーに提供される Python 環境で使用できるようにする必要があります。デフォルト:
false
- v3.x
-
PublishRetryCount-
パブリッシュが再試行される回数。この機能は、バージョン 3.1.1 で使用できます。
最小値は 0 です。
最大数は 72 です。
デフォルト: 5
SampleIntervalSeconds-
(オプション) コンポーネントがメトリクスを収集してレポートする各サイクルの間隔 (秒単位)。
最小値は 300 秒 (5 分) です。
デフォルト: 300 秒
-
UseInstaller -
(オプション) インストーラスクリプトを使用して、このコンポーネントの Python 依存関係を指定された Python 環境にインストールするかどうかを定義するブール値。
カスタムスクリプトを使用するか、依存関係を手動でインストール
falseするには、この値を に設定します。に設定するとfalse、依存関係を含む次のライブラリをインストールし、コンポーネントを実行しているユーザーに提供される Python 環境で使用できるようにする必要があります。注記
HTTPS プロキシを使用するように設定したコアデバイスで、このコンポーネントのバージョン 3.0.0 または 3.0.1 を使用する場合は、この値を
falseに設定する必要があります。インストーラスクリプトは、このコンポーネントのこれらのバージョンでは HTTPS プロキシの背後からの操作をサポートしていません。デフォルト:
true
- v2.x
-
注記
このコンポーネントのデフォルト設定には、Lambda 関数のパラメータが含まれます。デバイスにこのコンポーネントを設定するには、次のパラメータのみを編集することをお勧めします。
lambdaParams-
このコンポーネントの Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。
EnvironmentVariables-
Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。
PROCFS_PATH-
(オプション)
/procフォルダへのパス。-
コンテナでこのコンポーネントを実行するには、デフォルト値の
/host-procを使用します。このコンポーネントは、デフォルトでコンテナ内で実行されます。 -
このコンポーネントをコンテナなしモードで実行するには、このパラメータに
/procを指定します。
デフォルト:
/host-proc。これは、このコンポーネントがコンテナ内に/procフォルダをマウントするためのデフォルトのパスです。注記
このコンポーネントは、このフォルダに対して読み取り専用のアクセス許可を有します。
-
SAMPLE_INTERVAL_SECONDS-
(オプション) コンポーネントがメトリクスを収集してレポートする各サイクルの間隔 (秒単位)。
最小値は 300 秒 (5 分) です。
デフォルト: 300 秒
containerMode-
(オプション) このコンポーネントのコンテナ化モード。次のオプションから選択します。
-
GreengrassContainer– コンポーネントは、 AWS IoT Greengrass コンテナ内の分離されたランタイム環境で実行されます。 -
NoContainer- コンポーネントは、分離されたランタイム環境では実行されません。このオプションを指定する場合は、
PROCFS_PATH環境変数パラメータに/procを指定する必要があります。
デフォルト:
GreengrassContainer -
containerParams-
(オプション) このコンポーネントのコンテナパラメータを含むオブジェクト。
containerModeのGreengrassContainerを指定した場合、コンポーネントはこれらのパラメータを使用します。このオブジェクトには、次の情報が含まれます。
memorySize-
(オプション) コンポーネントに割り当てるメモリ量 (KB 単位)。
デフォルトは 50,000 KB です。
pubsubTopics-
(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピックを含むオブジェクト。各トピックと、コンポーネントが から MQTT トピックをサブスクライブするか、ローカルのパブリッシュ/サブスクライブトピックをサブスクライブ AWS IoT Core するかを指定できます。
このオブジェクトには、次の情報が含まれます。
0- これは文字列としての配列インデックスです。-
次の情報が含まれるオブジェクト。
type-
(オプション) このコンポーネントがメッセージをサブスクライブするために使用するパブリッシュ/サブスクライブメッセージングのタイプ。次のオプションから選択します。
-
PUB_SUB- ローカルのパブリッシュ/サブスクライブメッセージをサブスクライブします。このオプションを選択した場合、トピックに MQTT ワイルドカードを含めることはできません。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。 -
IOT_CORE– AWS IoT Core MQTT メッセージをサブスクライブします。このオプションを選択した場合、トピックに MQTT ワイルドカードを含めることができます。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「AWS IoT Core MQTT メッセージを発行/サブスクライブする」を参照してください。
デフォルト:
PUB_SUB -
topic-
(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピック。
typeのIotCoreを指定した場合、このトピックで MQTT ワイルドカード (+および#) を使用できます。
例例: 設定マージの更新 (コンテナモード)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }例例: 設定マージの更新 (コンテナモードなし)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }
入力データ
このコンポーネントは、メッセージを入力データとして受け入れません。
出力データ
このコンポーネントは、次の予約済みトピックにセキュリティメトリクスを発行します AWS IoT Device Defender。このコンポーネントは、メトリクスをパブリッシュするときに、coreDeviceName をコアデバイスの名前に置き換えます。
トピック (AWS IoT Core MQTT): $aws/things/coreDeviceName/defender/metrics/json
例出力の例
{ "header": { "report_id": 1529963534, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 1157864729406, "bytes_out": 1170821865, "packets_in": 693092175031, "packets_out": 738917180 }, "tcp_connections": { "established_connections":{ "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } } }
このコンポーネントが報告するメトリクスの詳細については、「AWS IoT Core デベロッパーガイド」の「Device metrics document specification」を参照してください。
ローカルログファイル
このコンポーネントは次のログファイルを使用します。
- Linux
-
/logs/aws.greengrass.DeviceDefender.log/greengrass/v2 - Windows
-
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
このコンポーネントのログを確認するには
-
コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。
または/greengrass/v2C:\greengrass\v2を AWS IoT Greengrass ルートフォルダへのパスに置き換えます。- Linux
-
sudo tail -f/logs/aws.greengrass.DeviceDefender.log/greengrass/v2 - Windows (PowerShell)
-
Get-ContentC:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait
ライセンス
このコンポーネントは、Greengrass Core ソフトウェアライセンス契約
変更ログ
次の表は、コンポーネントの各バージョンにおける変更を示します。
- v4.x - v3.x
-
バージョン
変更
4.0.0
- 新機能
-
-
UseInstaller設定はデフォルトで になりましたfalse。
-
3.1.1
- バグ修正と機能向上
-
-
ネットワークの停止後に接続の回復に失敗した場合に、クライアント接続の再試行を追加します。
-
メトリクスを公開するための構成可能な再試行を追加します。
-
3.1.0
- バグ修正と機能向上
-
-
HTTPS ネットワークプロキシ設定へのサポートが追加されました。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」および「コアデバイスが HTTPS プロキシを信頼できるようにする」を参照してください。
-
3.0.1
コンポーネントがメトリクスのデルタ値を計算する方法で生じる問題を修正しました。
3.0.0
警告
このバージョンは現在利用できません。このバージョンの改善は、このコンポーネントのそれ以降のバージョンで利用できます。
当初のバージョン
- v2.x
-
バージョン
変更
2.0.17
Greengrass nucleus バージョン 2.14.0 リリース用にバージョンが更新されました。
2.0.16
Greengrass nucleus バージョン 2.13.0 のリリース用にバージョンが更新されました。
2.0.11
Greengrass nucleus バージョン 2.11.0 のリリース用にバージョンが更新されました。
2.0.10
Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。
2.0.9
Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。
2.0.8
Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。
2.0.7
Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。
2.0.6
Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。
2.0.5
Greengrass nucleus バージョン 2.2.0 のリリース用にバージョンが更新されました。
2.0.4
Greengrass nucleus バージョン 2.1.0 のリリース用にバージョンが更新されました。
2.0.3
当初のバージョン