S3 で静的ウェブサイトホスティング用のバケットを GuardDuty が検出するときの対処方法

対応を行わない検出結果をフィルタリングするには、抑制ルールを使用します。
2023.05.11

困っていた内容

S3 で静的ウェブサイトホスティングを用いて、ウェブサイトを公開しています。

ホスティング用のバケットはパブリックアクセス可能な状態にしていますが、GuardDuty が検出します。

この検出結果は理解しているので、検出結果から除外したいです。何かいい方法はありますか?

どう対応すればいいの?

GuardDuty には指定した条件をアーカイブして検出結果をフィルタリングする、抑制ルールといった機能があります。

やってみた

GuardDuty を有効化する

GuardDuty を下記ドキュメントを元に有効化します。

GuardDuty の開始方法 - Amazon GuardDuty

S3 静的ウェブサイトホスティング

下記ドキュメントを元に S3 静的ウェブサイトホスティング用のバケットを作成し、インターネットからアクセスできるようにします。

Amazon S3 を使用して静的ウェブサイトをホスティングする - Amazon Simple Storage Service

Web ページを開くとこのように、パブリックアクセス可能となっています。

GuardDuty の検出結果を確認する

GuardDuty が S3 バケットがパブリックアクセス可能な状態にされたことを検知しています。

GuardDuty の検出結果を抑制する

「検出結果の抑制」ボタンを押下し、絞り込み条件として、対象の S3 バケット名、検出結果タイプ: Policy:S3/BucketAnonymousAccessGranted、及び、Policy:S3/BucketBlockPublicAccessDisabled を追加します。

抑制対象としたい結果が表示されることを確認し、フィルタルールの名前を付け、保存ボタンを押下します。

すぐに適用されることはありませんが、自動的にアーカイブ済みになるとの記載が確認できます。

数日後、再度 S3 バケットの操作をしてみた

S3 バケットとパブリックアクセス可能な状態から、ブロックパブリックアクセスをオンにし、バケットポリシーの削除を行い、再度パブリックアクセス可能な状態にしました。

すると、アーカイブ済みの状態で検出されるようになりました。

想定通り、検出結果が自動的にアーカイブ済みとして検出されることが確認できました!

参考情報

抑制ルール - Amazon GuardDuty

GuardDuty のS3 の検出結果タイプ - Amazon GuardDuty