AWS CloudTrail
ユーザーガイド (Version 1.0)

AWS CloudTrail におけるセキュリティのベストプラクティス

AWS CloudTrail では、お客様が独自のセキュリティポリシーを開発および実装するにあたって検討すべき数多くのセキュリティ機能を提供しています。以下のベストプラクティスは一般的なガイドラインであり、完全なセキュリティソリューションに相当するものではありません。これらのベストプラクティスはお客様の環境に適切ではないか、十分ではない場合があるため、これらは処方箋ではなく、有用な考慮事項と見なしてください。

CloudTrailでの検出に関するセキュリティのベストプラクティス

証跡の作成

AWS アカウントのイベントの継続的な記録については、証跡を作成します。CloudTrail は証跡を作成せずに CloudTrail コンソールで管理イベントの 90 日間のイベント履歴情報を提供していますが、これは永久的な記録ではなく、すべてのタイプのイベントについての情報を提供しているわけではありません。進行中のレコード、および指定したすべてのイベントタイプを含むレコードの場合は、指定した Amazon S3 バケットにログファイルを配信する証跡を作成する必要があります。

CloudTrail データを管理しやすいように、すべての AWS リージョンで管理イベントをログに記録する 1 つの証跡を作成すること、および Amazon S3 バケットアクティビティや AWS Lambda 関数など、リソースの特定のイベントタイプを記録する追加の証跡を作成することを検討してください。

以下に示しているのは、実行できるいくつかのステップです。

証跡をすべての AWS リージョンに適用します

イベントの完全な記録を取得するためにユーザー、ロール、またはサービスによって実行された各 AWS アカウントのすべての AWS リージョンでイベントをログに記録するように証跡を設定する必要があります。すべての AWS リージョンでイベントをログに記録することで、AWS アカウントで発生したすべてのイベントが、発生した AWS リージョンにかかわらず、ログに記録されます。これには、そのサービスに固有の AWS リージョンに記録されているグローバルサービスイベントのログ記録が含まれます。すべてのリージョンに適用される証跡を作成すると、CloudTrail は、各リージョンでイベントを記録し、指定した S3 バケットに CloudTrail イベントログファイルを配信します。すべてのリージョンに適用される証跡を作成した後で AWS リージョンを追加した場合、その新しいリージョンは自動的に含まれ、そのリージョンのイベントがログに記録されます。これは、CloudTrail コンソールで証跡を作成するときのデフォルトのオプションです。

以下に示しているのは、実行できるいくつかのステップです。

CloudTrail ログファイルの整合性の実現

検証されたログファイルは、セキュリティおよびフォレンシック調査で特に重要です。たとえば、検証されたログファイルを使用すると、ログファイル自体が変更されていないこと、または特定のユーザーの認証情報が特定の API アクティビティを実行したことを確実にアサートできます。CloudTrail ログファイルの整合性の検証プロセスでは、ログファイルが削除または変更されたかどうかを知ることもできます。また、指定された期間内にログファイルがアカウントに配信されていないことを確実にアサートします。CloudTrail ログファイルの整合性検証では業界標準のアルゴリズムが使用されます。ハッシュには SHA-256、デジタル署名には RSA を使用した SHA-256 が使用されます。これにより、CloudTrail ログファイルを検出せずに変更、削除、または偽造することは計算上実行不可能になります。詳細については、「検証の有効化とファイルの検証」を参照してください。

Amazon CloudWatch Logs と統合します

CloudWatch Logs を使用すると、CloudTrail によってキャプチャされた特定のイベントに関するアラートを監視および受信できます。CloudWatch Logs に送信されるイベントは証跡によって記録されるように設定されているため、監視するイベントタイプ (管理イベントやデータイベント) を記録するために証跡を設定してください。

たとえば、失敗した AWS コンソールのサインインイベントや、インスタンスの起動、削除、再起動などの Amazon EC2インスタンスに対する変更など、主要なセキュリティおよびネットワーク関連の管理イベントを監視できます。

以下に示しているのは、実行できるいくつかのステップです。

CloudTrail での予防的セキュリティのベストプラクティス

CloudTrail での以下のベストプラクティスはセキュリティ問題を防ぐのに役立ちます。

専有および一元化された Amazon S3 バケットへのログ

CloudTrail ログファイルは、ユーザー、ロール、または AWS サービスによって実行されたアクションの監査ログです。これらのログの整合性、完全性、および可用性は、フォレンジックおよび監査目的にとって非常に重要です。専有および一元化された Amazon S3 バケットにログに記録することで、厳格なセキュリティ管理、アクセス、および役割分担を実施できます。

以下に示しているのは、実行できるいくつかのステップです。

  • ログアーカイブアカウントとして別の AWS アカウントを作成します。AWS Organizations を使用する場合は、このアカウントを組織に登録し、組織内のすべての AWS アカウントのデータを記録するための組織証跡を作成することを検討してください。

  • 組織 を使用せずに複数の AWS アカウントのデータをログに記録する場合は、このログアーカイブアカウントにアクティビティを記録するための証跡を作成します。このアカウントへのアクセスを、アカウントおよび監査データへのアクセス権限を有する信頼された管理ユーザーだけに制限します。

  • 証跡の作成の一環として、組織の証跡でも、単一の AWS アカウントの証跡でも、この証跡のログファイルを保存するための専用の Amazon S3 バケットを作成します。

  • 複数の AWS アカウントのアクティビティを記録する必要がある場合は、AWS アカウントのアクティビティを記録するすべての AWS アカウントのログファイルの記録と保存を許可するようにバケットポリシーを変更します。

  • 組織証跡を使用していない場合は、ログアーカイブアカウントで Amazon S3 バケットを指定して、すべての AWS アカウントで証跡を作成します。

AWS KMS で管理されたキーを使用したサーバー側の暗号化

デフォルトでは、CloudTrail によってバケットに配信されるログファイルは、Amazon Amazon S3 で管理された暗号化キーによるサーバー側の暗号化 (SSE-S3) によって暗号化されます。直接管理可能なセキュリティレイヤーを提供するには、代わりに CloudTrail ログファイルの AWS KMS によって管理されたキーを使用したサーバー側の暗号化 (SSE-KMS) を使用できます。CloudTrail で SSE-KMS を使用するには、カスタマーマスターキー (CMK) とも呼ばれる KMS キーを作成して管理します。

注記

SSE-KMS とログファイルの検証を使用していて、SSE-KMS で暗号化されたファイルのみを許可するように Amazon S3 バケットポリシーを変更した場合は、次の例のポリシー行に示すように、バケットポリシーを AES256 暗号化を特に許可するように変更しない限り、そのバケットを活用する証跡を作成することはできません。

"StringNotEquals": { "s3:x-amz-server-side-encryption": ["aws:kms", "AES256"] }

以下に示しているのは、実行できるいくつかのステップです。

ログファイルを保存する Amazon S3 バケットへの最低限のアクセス権限を実装する

CloudTrail 証跡は、指定した Amazon S3 バケットにイベントをログに記録します。これらのログファイルには、ユーザー、ロール、および AWS サービスによって実行されたアクションの監査ログが含まれています。これらのログファイルの整合性と完全性は、監査とフォレンジック用に非常に重要です。整合性を確実にするために、CloudTrail ログファイルを保存するために使用される Amazon S3 バケットへのアクセスを作成または変更するときは、最小権限の原則に従う必要があります。

以下に示しているのは、実行できるいくつかのステップです。

ログファイルを保存する Amazon S3 バケットで MFA Delete を有効にする

多要素認証 (MFA) を設定すると、バケットのバージョニング状態を変更したり、オブジェクトバージョンを完全に削除しようとした場合に、追加の認証が必要になります。これにより、ユーザーが Amazon S3 オブジェクトを完全に削除するアクセス許可を持つ IAM ユーザーのパスワードを取得した場合でも、ログファイルの整合性が損なわれる可能性のある操作を防ぐことができます。

以下に示しているのは、実行できるいくつかのステップです。

ログファイルを保存する Amazon S3 バケットにオブジェクトライフサイクル管理を設定する

CloudTrail 証跡のデフォルトでは、証跡に対して設定された Amazon S3 バケットにログファイルは無期限に保存されます。Amazon S3 オブジェクトライフサイクル管理ルールを使用して、独自の保持ポリシーを定義し、ビジネスおよび監査のニーズをより適切に満たせるようになります。たとえば、1 年以上経過しているログファイルを Amazon Glacier にアーカイブしたり、一定の時間が経過した後にログファイルを削除できます。

AWSCloudTrailFullAccess ポリシーへのアクセスを制限する

AWSCloudTrailFullAccess ポリシーを持つユーザーは、自分の AWS アカウントで最も機密性の高い重要な監査機能を無効したり再設定することができます。このポリシーは、AWS アカウントのユーザーおよびロールに共有または広く適用されることを想定していません。このポリシーの適用は、AWS アカウント管理者として行動すると思われるできるだけ少ない個人に制限してください。