この章ではDevice Defenderの監査機能の設定方法を学びます。 設定ではすべての監査(Audit)の有効化、定期的な監査の構成、アラートの設定をおこないます。
手順の説明では、コンソールの言語は「English(US)」が選択されていることを前提に説明をしています。
AWSコンソールを開き、“Find Services"の検索窓で「IoT Core」と入力し、IoTのサービスコンソールを開きます。IoTの最初の画面でGet Started
のボタンがあるので、クリックして先に進みます。
IoTのコンソールで、左側のDefend
をクリックし、Get started with an audit
をクリックします。
最初の画面でNext
をクリックします。
次の画面では、IoTサービスがサービスのIAMロールにアタッチするために必要な特定の権限について説明しています。まだRoleを作成したことがなければIAMロールを作成する必要があります。
Create Role
をクリックして、“AWSIoTDeviceDefenderAudit”
とRoleの名前をつけます。
作成したRoleが自動的に選択されるのが確認できます。
どの様な権限が必要化確認したい場合は、Requierd permissionsの> Permissions
や > Trust relationships
をクリックすると、どの様な権限が必要なのか確認することができます。
iotの読み取り権限が多く確認できますが、中にはiotではなく、cognitoやIAMの設定を確認するための権限もリストに含まれているのが確認できます。
Next
をクリックすると、すべての有効な監査のチェックを確認することが出来ます。
”?”マークをクリックすると、各チェックの詳細を確認することが出来ます。
このワークショップではすべてのチェックは利用しませんが、すべて選択したままで進めます。
Next
をクリックすると、エラーの際にSNSトピックへ送信するか聞かれます。SNSを利用すると、送信先として、E-mail、HTTP、AWS Lambdaなどを選ぶことが出来ます。ワークショップではこの設定は後で行うので、このままEnable Audit
をクリックします。
監査が登録されました
先程の手順で飛ばしたSNSの設定を行います。 左側のメニューの中から、Defend
の中にある Settings
を選びます。一番下までスクロールすると、SNS alerts
が見つかるので、Edit
をクリックします。
Enabled
を選択して、SNSへの送信を有効にします。Topicの項目でCreate
をクリックするとトピックの名前をつけるダイアログが表示されるので、IoTDDNotification
と入力してCreate
をクリックします。
次にRoleの項目では作成したAWSIoTDeviceDefenderAudit
を選択します。
最後にUpdate
をクリックして監査の準備は完了です。本来であれば、さらにSNSの設定でサブスクリプションを追加し、通知先のE-mailやチャットアプリに通知できるようにしますが、このワークショップではその手順は飛ばします。
サブスクリプションの設定について詳しく知りたい場合は、こちらを参考にしてください。
ここまでの手順で、デイリーで監査結果を受け取ることができるようになりました。しかし、このワークショップではすぐに監査を試してみたいので、以下の手順で手動実行を行います。
左側のメニューから、Audit
> Schedules
と開き、Create
ボタンをクリックします。
Create a new audit
の画面で、チェックが付いている監査項目はそのままにし、画面の一番下までスクロールして、Run audit now (once)
をクリックします。最後にCreate
をクリックすると監査が実行されます。Results
のメニューに切り替わると、監査結果を確認することが出来ます。
まだThingの登録もしていないのに監査の結果でエラーが出ていることに驚くかもしれません。何が置きてるか見ていきましょう。
Results
の中を見ると、先程実行したOn-Demandという名前の監査結果を確認することができます。この名前をクリックして詳細画面に進みます。
監査結果を見ると、Logの有効化がされていないことが確認できます。早速この問題を修正しましょう。 (注意:過去にAWS IoTのログ出力を有効にしていた場合、このエラーは検出されません)
左側のメニューからSettings
を選択し、LogのセクションにあるEdit
をクリックします。
Logの設定画面では、Log LevelをDebug
に変更します。次に、CloudWatch Logsにログを書き込むために、AWS IoTに付与するRoleを付与します。Create Role
をクリックして、名前にAWSIoTLoggingRole
を入力し、Create role
をクリックします。Roleが作成されたら、最後にUpdate
ボタンをクリックして反映します。
AWS IoTではJSON形式のログ出力に対応していますので、Upgrade
をクリックして、JSON形式のログ出力を有効にします。
これで問題が修正されました。もう一度Defend
> Audit
> Schedules
の画面に戻り、Create
> Create
で再度on-demandの監査を実行します。
今回の結果では、問題なしと表示されるはずです。
この様に、Device Defenderでは事前に用意された監査機能があり、定期的に実行したり、手動で実行することによって、継続的に設定の問題や証明書の問題などを検出してくれます。監査で実行されるチェックの種類の詳細については、こちらの監査チェック項目を参照してください。
この章の手順は以上です。