新機能のAccess Analyzer for S3を利用して誤ったS3の公開を止める! #reinvent

こんにちは、臼田です。

みなさん、うっかりS3公開してませんか?(挨拶

今回は新しいサービスのAccess Analyzer for S3を利用すると、簡単にS3の公開設定について確認でき、すぐに止めることも可能です。というわけで実際にやってみましょう。

やってみた

Access Analyzer for S3はIAM Access Analyzerの機能を利用しています。下記を参考にIAM Access Analyzerを有効化してS3でもAccess Analyzerが見れることを確認します。

【速報】新機能!S3 Access Analyzerがリリースされました!【導入5分 / ノーコスト】 #reinvent

Access Analyzerが有効になったらテストのためにあるS3バケットでパブリックからのアクセスを有効化してみます。※公開しても大丈夫なようなバケットを使用しています。真似しないでください。

IAM Access Analyzerで該当の設定が拾われました。具体的には、バケットの外部プリンシパルが「すべてのプリンシパル」となっていて、誰からでも見れる状態です。アクセスレベルはList, ReadにとどまっていてWriteは無いですが、この状態で十分情報漏えいにつながる設定です。ちなみに、IAM Access Analyzerは設定について24時間毎の定期スキャンをしているので、そのサイクルで変更が検知されます。ただしS3部分についてはACLやバケットポリシーの変更が30分以内、パブリックアクセスブロックの変更が6時間以内で検知できるようです。詳細はこちら

今度はAccess Analyzer for S3で見てみます。こちらはリージョンごとの表示であることに注意してください。右上でリージョンを選択します。パブリックアクセスが可能になっているバケットの警告がたくさん出てきます。下の方に対象のバケットとして先程公開したものがあがってきました。

是正のアクションは非常に簡単です。該当のバケットを選択して、「すべてのパブリックアクセスをブロックする」を押すだけです。

確認画面が出ますので、「確認」と入力します。

解決されました。Access Analyzer for S3では表示されなくなります。IAM Access Analyzerで下記のように解決済みになったことが確認できます。

実際のS3の設定を見ると、該当の設定を直接編集しているのではなくパブリックアクセスブロックの設定で対処されいてることがわかります。

実際のACLの設定は公開状態のままなので、この後手動で戻しておきました。

まとめ

Access Analyzer for S3の機能で公開されているバケットの状態を確認して、ボタンポチで是正しました。

実際にはEventのトリガーを引いて通知したり、定常的なIAM Access Analyzerの監視から異常に気づいて是正することになると思います。

ワンボタンで公開を止められるので簡単に利用できます。ぜひ使ってみてはいかがでしょうか?