1. Device Defenderの監査

この章のゴール

この章ではDevice Defenderの監査機能の設定方法を学びます。 設定ではすべての監査(Audit)の有効化、定期的な監査の構成、アラートの設定をおこないます。

手順の説明では、コンソールの言語は「English(US)」が選択されていることを前提に説明をしています。

Step-1 - すべての監査チェックを有効にする

AWS IoT Device Managementのコンソールを開く

AWSコンソールを開き、“Find Services"の検索窓で「IoT Core」と入力し、IoTのサービスコンソールを開きます。IoTの最初の画面でGet Startedのボタンがあるので、クリックして先に進みます。

IoTのコンソールで、左側のDefendをクリックし、Get started with an auditをクリックします。

chapter1-1

すべての監査チェックを有効にする

最初の画面でNextをクリックします。 次の画面では、IoTサービスがサービスのIAMロールにアタッチするために必要な特定の権限について説明しています。まだRoleを作成したことがなければIAMロールを作成する必要があります。

chapter1-2
すでにRoleがある場合は選択します。まだない場合は、Create Roleをクリックして、“AWSIoTDeviceDefenderAudit”とRoleの名前をつけます。

chapter1-3

作成したRoleが自動的に選択されるのが確認できます。 どの様な権限が必要化確認したい場合は、Requierd permissionsの> Permissions> Trust relationships をクリックすると、どの様な権限が必要なのか確認することができます。

chapter1-4

iotの読み取り権限が多く確認できますが、中にはiotではなく、cognitoやIAMの設定を確認するための権限もリストに含まれているのが確認できます。

Nextをクリックすると、すべての有効な監査のチェックを確認することが出来ます。 ”?”マークをクリックすると、各チェックの詳細を確認することが出来ます。

chapter1-5

このワークショップではすべてのチェックは利用しませんが、すべて選択したままで進めます。

chapter1-6

Nextをクリックすると、エラーの際にSNSトピックへ送信するか聞かれます。SNSを利用すると、送信先として、E-mail、HTTP、AWS Lambdaなどを選ぶことが出来ます。ワークショップではこの設定は後で行うので、このままEnable Auditをクリックします。

chapter1-7

監査が登録されました

SNS(Simple Notifications Service)を有効にする

chapter1-8

先程の手順で飛ばしたSNSの設定を行います。 左側のメニューの中から、Defendの中にある Settingsを選びます。一番下までスクロールすると、SNS alertsが見つかるので、Editをクリックします。

chapter1-9

Enabledを選択して、SNSへの送信を有効にします。Topicの項目でCreateをクリックするとトピックの名前をつけるダイアログが表示されるので、IoTDDNotificationと入力してCreateをクリックします。 次にRoleの項目では作成したAWSIoTDeviceDefenderAuditを選択します。

最後にUpdateをクリックして監査の準備は完了です。本来であれば、さらにSNSの設定でサブスクリプションを追加し、通知先のE-mailやチャットアプリに通知できるようにしますが、このワークショップではその手順は飛ばします。 サブスクリプションの設定について詳しく知りたい場合は、こちらを参考にしてください。

ここまでの手順で、デイリーで監査結果を受け取ることができるようになりました。しかし、このワークショップではすぐに監査を試してみたいので、以下の手順で手動実行を行います。

chapter1-10

左側のメニューから、Audit > Schedulesと開き、Createボタンをクリックします。

Create a new auditの画面で、チェックが付いている監査項目はそのままにし、画面の一番下までスクロールして、Run audit now (once)をクリックします。最後にCreateをクリックすると監査が実行されます。Resultsのメニューに切り替わると、監査結果を確認することが出来ます。

Step 2 – 監査結果の確認

まだThingの登録もしていないのに監査の結果でエラーが出ていることに驚くかもしれません。何が置きてるか見ていきましょう。

監査結果の確認

chapter1-11

Resultsの中を見ると、先程実行したOn-Demandという名前の監査結果を確認することができます。この名前をクリックして詳細画面に進みます。

chapter1-12

監査結果を見ると、Logの有効化がされていないことが確認できます。早速この問題を修正しましょう。 (注意:過去にAWS IoTのログ出力を有効にしていた場合、このエラーは検出されません)

Logの設定を有効化(AWS IoTを利用する場合は最初にするべき設定です)

chapter1-13

左側のメニューからSettingsを選択し、LogのセクションにあるEditをクリックします。

chapter1-14

Logの設定画面では、Log LevelをDebugに変更します。次に、CloudWatch Logsにログを書き込むために、AWS IoTに付与するRoleを付与します。Create Roleをクリックして、名前にAWSIoTLoggingRoleを入力し、Create roleをクリックします。Roleが作成されたら、最後にUpdateボタンをクリックして反映します。

chapter1-15

AWS IoTではJSON形式のログ出力に対応していますので、Upgradeをクリックして、JSON形式のログ出力を有効にします。

chapter1-17

これで問題が修正されました。もう一度Defend > Audit > Schedules の画面に戻り、Create > Createで再度on-demandの監査を実行します。 今回の結果では、問題なしと表示されるはずです。

chapter1-16

この様に、Device Defenderでは事前に用意された監査機能があり、定期的に実行したり、手動で実行することによって、継続的に設定の問題や証明書の問題などを検出してくれます。監査で実行されるチェックの種類の詳細については、こちらの監査チェック項目を参照してください。

この章の手順は以上です。