同僚のSivakanth MundruからAWS CloudTrailのいくつかの機能についてご紹介します。
- jeff
ご存知の通り、AWS CloudTrailはアカウントで実行されたAPI Callを記録し、指定したS3バケットにAPIアクティビティを含むログファイルを送信します。今日CloudTrailに新たに2つの新機能が追加されました。
- SSE-KMSを使用した暗号化のサポート - AWS Key Management Service (KMS) の鍵を使用し暗号化することで、S3バケットに保存されているCloudTrailログファイルにセキュリティレイヤを追加することができます。 CloudTrailは、指定したKMS鍵を使用してログファイルを暗号化します。
- ログファイル整合性の検証 - S3バケットに保存されているCloudTrailログファイルの整合性を検証し、CloudTrailがS3バケットにログを送信した後にそれらが変更されたかどうかを検出することができます。
これらの機能は、米国東部(バージニア北部)、米国西部(オレゴン)、米国西部(北カリフォルニア)、欧州(アイルランド)、欧州(フランクフルト)、アジア・パシフィック(東京)、アジア・パシフィック(シドニー)、パシフィック(シンガポール)、南米(ブラジル)のリージョンで本日より利用可能です。
SSE-KMSを使用した暗号化のサポート
CloudTrailは、ログファイルを生成しS3バケットに送信します。 デフォルトでは、ファイルはS3のサーバサイド暗号化(SSE)を使用し暗号化し、それらを読む際に透過的に復号化されます。今日の発表によりCloudTrailにKMS鍵を適用し、ログファイルを暗号化することが可能になります。SSEの場合と同様に読み取りアクセス許可を持っている場合、オブジェクトの復号化は透過に自動的に行われます。そのためログファイルを読んだり、処理をするアプリケーションに変更を加える必要はありません。S3にファイルを復号化するためのアクセス許可を与えるだけです。どのように機能するかを下記に示します。
セットアップの手順は下記になります。
- CloudTrailログファイルを受け取るS3バケットと同じリージョンに新しくKMS鍵を作成するか、既存のKMS鍵を使用してKMS-CloudTrailポリシーを適用します。
- CloudTrailログファイルにアクセスするプリンシパル(IAMのユーザー、ロール、グループ)に復号化のアクセス許可します。
- ステップ1からKMS鍵を持つ既存の証跡を更新します(CLIを使用する場合は、証跡を作成時に暗号化を有効にすることができます)。
ログファイル整合性の検証
セキュリティ監査や調査を行う場合、S3バケットに保存されているCloudTrailログファイルの整合性を検証し、それらがCloudTrailからS3バケットにログファイルを配信された後、削除または変更されたかどうかを検出したいと思います(改ざんされていないに越したことはありません)。新しいCloudTrailログファイルの整合性の検証機能を使用するとこういった検証を行うことができます。
ログファイルの整合性を検証するためには証跡のログファイル検証を有効にする必要があります。CloudTrail設定の詳細から”ログファイルの有効化を検証"を"はい"に設定することでログファイルの検証を有効にできます。
ログファイルの整合性検証を有効にすると、CloudTrailはログファイルを受信するのと同じS3バケットに、時間単位でダイジェストファイルの配信を開始しますが、別のプレイックスになります。
- CloudTrail ログファイルは "/optional_prefix/AWSLogs/AccountID/CloudTrail/*." に送信します。
- ダイジェストファイルは "/optional_prefix/AWSLogs/AccountID/CloudTrail-Digest/*."に送信されます。
そうすることでログファイルに処理をする際にアプリケーションの変更はなく統合が可能になります。またログファイル、ダイジェストファイルにアクセスするきめ細かなアクセス制御を許可できます。
ダイジェストファイルには、S3バケットに送信されたログファイルに関する情報や、ログファイルのハッシュ値、以前のダイジェストファイルのデジタル署名、S3のメタデータセクション内の現在のダイジェストファイルのデジタル署名情報が含まれます。ダイジェストファイル、デジタル署名およびハッシュ値をダイジェストの詳細につきましては、CloudTrail Digest File Structureをご参照下さい。
CloudTrail ログファイルを検証するには、AWS Command Line Interface (CLI) を利用し下記コマンドを実行します。
$ aws cloudtrail validate-logs \
--trail-arn arn:aws:cloudtrail:us-west-2:111111111111:trail/Trailname \
--start-time 2015-09-24T00:00:00Z --region=us-west-2
ログファイルが変更または削除されていない場合は、このような出力が表示されます。
Validating log files for trail arn:aws:cloudtrail:us-west-2:111111111111:trail/Trailname between \
2015-09-24T00:00:00Z and 2015-09-25T18:56:41Z
Results requested for 2015-09-24T00:00:00Z to 2015-09-25T18:56:41Z
Results found for 2015-09-24T00:30:26Z to 2015-09-25T18:56:41Z:43/43 digest files valid
31/31 log files valid
1つ以上のログファイルが削除されている場合は、このような出力が表示されます。
Log file s3://mybucket-CTlogs/AWSLogs/111111111111/CloudTrail/us-west-2/2015/09/22/111111111111_CloudTrail_us-west-2_20150922T1720Z_Jy4SwZotr3eTI2FM.json.gz \ INVALID: not found
Results requested for 2015-09-22T00:00:00Z to 2015-09-25T18:42:03Z
Results found for 2015-09-22T00:30:26Z to 2015-09-25T18:42:03Z:43/43 digest files valid
30/31 log files valid, 1/31 log files INVALID
1つ以上のログ・ファイルが変更されている場合は、このような出力が表示されます。
Log file s3://mybucket-CTlogs/AWSLogs/111111111111/CloudTrail/us-west-2/2015/09/25/111111111111_CloudTrail_us-west-2_20150925T1845Z_lU58MiCsXyI1U3R1.json.gz \INVALID: hash value doesn't match
Results requested for 2015-09-24T00:00:00Z to 2015-09-25T21:44:50Z
Results found for 2015-09-24T00:30:26Z to 2015-09-25T21:44:50Z:45/45 digest files valid
35/36 log files valid, 1/36 log files INVALID
"validate-logs"を詳細モードで実行することで、より深い分析をすることが可能です。詳細に関しましては、Validating CloudTrail Log File Integrity をご参照下さい。
これら新機能についてのご質問やご意見がありましたら、CloudTrailフォーラムに是非投稿下さい。
- Sivakanth Mundru, Senior Product Manager, AWS CloudTral
翻訳はPartner SA酒徳が担当しました。原文はこちら:https://aws.amazon.com/jp/blogs/aws/aws-cloudtrail-update-sse-kms-encryption-log-file-integrity-verification/