パブリック公開されているCloudTrailバケットの非公開手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、CloudTrailログが保存されているS3バケットのパブリックアクセス設定に関するセキュリティポリシーについて解説します。

ポリシーの説明
[CloudTrail.1] CloudTrail を有効にして、少なくとも 1 つのマルチリージョンの追跡で、読み取りと書き込みの管理イベントを含めた設定をする必要があります。
CloudTrail の Security Hub コントロール – AWS Security Hub
CloudTrail は、アカウント内で実行された API コールをすべて記録します。これらのログファイルは S3 バケットに保存されます。CIS では、CloudTrail が記録する S3 バケットに S3 バケットポリシーまたはアクセスコントロールリスト (ACL) を適用して、CloudTrail ログへのパブリックアクセスを禁止することを推奨しています。CloudTrail ログコンテンツへのパブリックアクセスを許可すると、攻撃者が感染したアカウントの使用または設定における弱点を特定する手助けとなる可能性があります。
このポリシーは、CloudTrailログが保存されているS3バケットがインターネットから誰でもアクセスできないようにすることを求めています。CloudTrailログには、アカウント内のAPIコール履歴などの機密性の高い監査情報が含まれるため、パブリックアクセスを許可すると、不正アクセスや情報漏洩のリスクが極めて高まります。
修復方法
- AWSマネジメントコンソールにログインし、S3コンソールを開きます。
- CloudTrailログが保存されているバケットを特定し、選択します。(CloudTrailの設定画面で確認できます)。
- 選択したバケットの「アクセス許可」タブを開きます。
- パブリックアクセスをブロック (バケット設定)」セクションで、「編集」をクリックします。
- パブリックアクセスをすべてブロック」のチェックボックスをオンにし、「変更を保存」をクリックします。確認画面が表示された場合は指示に従います。
- 念のため、「バケットポリシー」セクションと「アクセスコントロールリスト (ACL)」セクションを確認し、意図せずパブリックアクセスを許可するようなステートメント(例: Principal が “*” や “Everybody” になっている許可ルール)がないかを確認します。もし存在する場合は、削除または修正します。
AWSコンソールでの修正手順

最後に
今回は、CloudTrailログが保存されているS3バケットのパブリックアクセス設定について解説しました。CloudTrailログには機密性の高い監査情報が含まれるため、パブリックアクセスを許可すると、不正アクセスや情報漏洩のリスクが極めて高まります。必ず関連するS3バケットのパブリックアクセスをブロックし、適切なアクセス制御(最小権限のIAMポリシーやバケットポリシー)を実施してください。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。
運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。
最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。