

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# のセキュリティのベストプラクティス AWS CloudTrail
<a name="best-practices-security"></a>

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

**Topics**
+ [CloudTrail 検出に関するセキュリティのベストプラクティス](#best-practices-security-detective)
+ [CloudTrail 予防的セキュリティのベストプラクティス](#best-practices-security-preventative)

## CloudTrail 検出に関するセキュリティのベストプラクティス
<a name="best-practices-security-detective"></a>

**証跡の作成**

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

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

以下に示しているのは、実行できるいくつかのステップです。
+ [AWS アカウントの証跡を作成します。](cloudtrail-create-a-trail-using-the-console-first-time.md#creating-a-trail-in-the-console)
+ [組織の証跡を作成します。](creating-trail-organization.md)

**マルチリージョン証跡を作成する**

 AWS アカウントの IAM アイデンティティまたはサービスによって実行されたイベントの完全な記録を取得するには、マルチリージョン証跡を作成します。マルチリージョン証跡は、 で[有効](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone) AWS リージョン になっているすべての でイベントをログに記録します AWS アカウント。有効なすべての でイベントをログに記録することで AWS リージョン、 で有効なすべてのリージョンでアクティビティを確実にキャプチャできます AWS アカウント。これには、その[サービスに固有の にログ記録されるグローバルサービスイベントの](cloudtrail-concepts.md#cloudtrail-concepts-global-service-events)ログ記録が含まれます。 AWS リージョン CloudTrail コンソールを使用して作成する証跡はすべてマルチリージョン証跡になります。

以下に示しているのは、実行できるいくつかのステップです。
+ [AWS アカウントの証跡を作成します。](cloudtrail-create-a-trail-using-the-console-first-time.md#creating-a-trail-in-the-console)
+ [既存の単一リージョン証跡をマルチリージョン証跡に変換します](cloudtrail-update-a-trail-console.md)。
+ [multi-region-cloud-trail-enabled](https://docs.aws.amazon.com/config/latest/developerguide/multi-region-cloudtrail-enabled.html)ルール AWS リージョン を使用して、作成されたすべての証跡がすべての でイベントをログ記録するように、継続的な検出コントロールを実装します AWS Config。

**CloudTrail ログファイルの整合性を有効にする**

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

**Amazon CloudWatch Logs との統合**

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

たとえば、[AWS マネジメントコンソール サインインに失敗したイベントなど、主要なセキュリティイベントやネットワーク関連の管理イベント](cloudwatch-alarms-for-cloudtrail.md#cloudwatch-alarms-for-cloudtrail-signin)をモニタリングできます。

以下に示しているのは、実行できるいくつかのステップです。
+ 例 [CloudTrail の CloudWatch Logs ログの統合](cloudwatch-alarms-for-cloudtrail.md) を確認します。
+ [CloudWatch Logs にイベントを送信するように](monitor-cloudtrail-log-files-with-cloudwatch-logs.md)証跡を設定します。
+ Cloud-trail-cloud-watch-logs-enabled ルールを使用して、すべての証跡がモニタリングのために CloudWatch Logs にイベントを送信していることを確認するために、継続的な検出コントロールを実装することを検討してください AWS Config。 [cloud-trail-cloud-watch-logs-enabled](https://docs.aws.amazon.com/config/latest/developerguide/cloud-trail-cloud-watch-logs-enabled.html) 

**Amazon GuardDuty の使用**

Amazon GuardDuty は、 AWS 環境内のアカウント、コンテナ、ワークロード、データを保護するのに役立つ脅威検出サービスです。機械学習 (ML) モデルと異常および脅威検出機能を使用して、GuardDuty はさまざまなログソースを継続的に監視し、環境内の潜在的なセキュリティリスクと悪意のあるアクティビティを特定して優先順位を付けます。

例えば、GuardDuty は、インスタンス起動ロールを通じて Amazon EC2 インスタンス専用に作成された認証情報が、 AWS内の別のアカウントで使用されていることを検出した場合に、潜在的な脅威を検出します。詳細については、「[https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html)」を参照してください。

**使用アイテム AWS Security Hub CSPM**

[AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)を使用して、セキュリティのベストプラクティスに関連する CloudTrail の使用状況をモニタリングします。Security Hub CSPM は、検出的な*セキュリティコントロール*を使用してリソース設定と*セキュリティ標準*を評価し、さまざまなコンプライアンスフレームワークへの準拠を支援します。Security Hub CSPM を使用して CloudTrail リソースを評価する方法の詳細については、*AWS Security Hub 「 ユーザーガイド*」の[AWS CloudTrail 「 コントロール](https://docs.aws.amazon.com/securityhub/latest/userguide/cloudtrail-controls.html)」を参照してください。

## CloudTrail 予防的セキュリティのベストプラクティス
<a name="best-practices-security-preventative"></a>

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

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

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

以下に示しているのは、実行できるいくつかのステップです。
+ ログアーカイブ AWS アカウントとして別のアカウントを作成します。を使用する場合は AWS Organizations、このアカウントを組織に登録し、組織内のすべての AWS アカウントのデータをログに記録する組織の[証跡を作成する](creating-trail-organization.md)ことを検討してください。
+ Organizations を使用しないが、複数の AWS アカウントのデータをログに記録する場合は、このログアーカイブアカウントでアクティビティをログに記録する[証跡を作成します](cloudtrail-create-a-trail-using-the-console-first-time.md#creating-a-trail-in-the-console)。このアカウントへのアクセスを、アカウントおよび監査データへのアクセス権限を有する信頼された管理ユーザーだけに制限します。
+ 証跡の作成の一環として、組織の証跡であっても、単一の AWS アカウントの証跡であっても、この証跡のログファイルを保存する専用の Amazon S3 バケットを作成します。
+ 複数の AWS アカウントのアクティビティをログに記録する場合は、[バケットポリシーを変更](cloudtrail-set-bucket-policy-for-multiple-accounts.md)して、 AWS アカウントアクティビティをログに記録するすべての AWS アカウントのログファイルのログ記録と保存を許可します。
+ 組織証跡を使用していない場合は、ログアーカイブアカウントで Amazon S3 バケットを指定して、すべての AWS アカウントで証跡を作成します。

** AWS KMS マネージドキーでサーバー側の暗号化を使用する**

デフォルトでは、CloudTrail から S3 バケットに配信されるログファイルは、[KMS キーを使用したサーバー側の暗号化 (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) を使用して暗号化されます。CloudTrail で SSE-KMS を使用するには、[AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) とも呼ばれる KMS キーを作成して管理します。

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

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

以下に示しているのは、実行できるいくつかのステップです。
+ [SSE-KMS を使用してログファイルを暗号化する利点を確認します](encrypting-cloudtrail-log-files-with-aws-kms.md)。
+ [ログファイルの暗号化に使用する KMS を作成します](create-kms-key-policy-for-cloudtrail.md)。
+ [証跡のログファイル暗号化を設定します。](create-kms-key-policy-for-cloudtrail-update-trail.md)
+ Cloud-[cloud-trail-encryption-enabled](https://docs.aws.amazon.com/config/latest/developerguide/cloud-trail-encryption-enabled.html)ルールを使用して、すべての証跡が SSE-KMS でログファイルを暗号化するように、継続的な検出コントロールを実装することを検討してください AWS Config。

**デフォルトの Amazon SNS トピックポリシーに条件キーを追加する**

Amazon SNS に通知を送信するように証跡を設定すると、CloudTrail は SNS トピックアクセスポリシーに、CloudTrail が SNS トピックにコンテンツを送信できるようにするポリシーステートメントを追加します。セキュリティのベストプラクティスとして、`aws:SourceArn` (またはオプションで `aws:SourceAccount`) 条件キーを Amazon SNS トピックポリシーステートメントに追加することが奨励されます。これにより、SNS トピックへの不正なアカウントアクセスを防止できます。詳細については、「[CloudTrail の Amazon SNS トピックポリシー](cloudtrail-permissions-for-sns-notifications.md)」を参照してください。

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

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

次のステップを実行します。
+ ログファイルを保存するすべてのバケットの [Amazon S3 バケットポリシー](create-s3-bucket-policy-for-cloudtrail.md)を確認し、必要に応じてそれを調整して不要なアクセスを削除します。このバケットポリシーは、CloudTrail コンソールを使用して証跡を作成した場合に生成されますが、手動で作成および管理することもできます。
+ セキュリティのベストプラクティスとして、バケットポリシーに `aws:SourceArn` 条件キーを手動で追加してください。　 詳細については、「[CloudTrail の Amazon S3 バケットポリシー](create-s3-bucket-policy-for-cloudtrail.md)」を参照してください。
+ 同じ Amazon S3 バケットを使用して複数の AWS アカウントのログファイルを保存している場合は、[複数のアカウントのログファイルを受信する](cloudtrail-receive-logs-from-multiple-accounts.md)ためのガイダンスに従ってください。
+ 組織証跡を使用している場合は、[組織証跡](creating-trail-organization.md)のガイダンスに従っていることを確認し、[を使用して組織の証跡を作成する AWS CLI](cloudtrail-create-and-update-an-organizational-trail-by-using-the-aws-cli.md) の組織証跡の Amazon S3 バケットのポリシー例を確認してください。
+ [Amazon S3 セキュリティのドキュメント](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security.html)と[バケットを保護するためのチュートリアルの例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/walkthrough1.html)を確認してください。

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

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

以下に示しているのは、実行できるいくつかのステップです。
+ 「*Amazon Simple Storage Service ユーザーガイド*」の [MFA Delete](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html) のガイダンスを確認します。
+ [MFA を要求する Amazon S3 バケットポリシーの追加します](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-MFA)

**注記**  
ライフサイクル設定で MFA 削除を使用することはできません。ライフサイクル設定と、それが他の設定とどのように相互作用するかの詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[ライフサイクルとその他のバケット設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-and-other-bucket-config.html)」を参照してください。

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

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

**注記**  
多要素認証 (MFA) が有効なバケットのライフサイクル設定はサポートされていません。

**AWSCloudTrail\_FullAccess ポリシーへのアクセスを制限する**

[AWSCloudTrail\_FullAccess](security_iam_id-based-policy-examples.md#grant-custom-permissions-for-cloudtrail-users-full-access) ポリシーを持つユーザーは、 AWS アカウントで最も機密で重要な監査機能を無効化または再設定できます。このポリシーは、 AWS アカウントの IAM ID に共有または広く適用されることを想定していません。このポリシーの適用は、 AWS アカウント管理者として行動する予定の個人をできるだけ少なく制限します。