はじめに
7月14日のアップデート情報に、Amazon S3(以下、S3表記)コンソールにて、すべてのバケットの外部アクセス可否が分かるようになったと発表がありました。
どのようなアップデートか確認しましたので、記事を書いていこうと思います。
本記事は、筆者が個人利用の範囲で試した結果のため、個人の見解となります。また、本記事の情報は、2025年7月19日現在のものです。参考程度に留めていただけますと幸いです。
アップデート概要
パブリックアクセス設定をしているか否かを確認するためには、調査対象のバケットの設定画面、アクセス許可タブから一つ一つ確認する必要がありました。
それを、S3コンソールからパブリックアクセス設定されているバケット、または他のAWSアカウントからアクセスされているバケットの有無を確認することができます。
コンソール画面の何が変わったか?
S3 コンソールを開くと、「外部アクセスの概要」という欄が追加されていました(以前は無かったと思います)。
▶ をクリックすると結果が表示されます。パブリックアクセスの検出結果、クロスアカウントアクセスの検出結果が表示されました。自分の環境ではパブリックアクセス設定しているバケットはありませんでした。

しかし、他のリージョンで分析されないバケットもあるとのこと。公式情報では任意のAWSリージョンから特定できるといった内容が書かれていたので疑問に思いましたが、どうも該当のリージョンで IAM Access Analyzer が有効になっていないからのようです。これを機に IAM Access Analyzer を有効にすべく、まず、us-east-1 のIAM Access Analyzer を有効にしてみました。
us-east-1 のエラーは消えました。

us-east-2 の方も IAM Access Analyzer を有効したら、エラーは消えました。

空のバケットをパブリックアクセス設定にしてみた
試しに空のバケットを作り、以下3点を変更しました。
- ブロックパブリックアクセスをOFF
- オブジェクト所有者を希望するバケット所有者に変更
- アクセスコントロールリスト (ACL)で全員に読み取り権限を付与
IAM Access Analyzer for S3 では数分後に「パブリックアクセスを備えたバケット」として検出されました。
ブロックパブリックアクセスのOFFだけでは「パブリックアクセスを備えたバケット」として検出されませんでした。ACLを有効にしたところ検出されました。
しかし、「外部アクセスの概要」欄はなかなか更新されませんでした。
「毎日更新」とは書かれていますが、即時更新はされないようです。何時を起点にして更新しているのかが分からないため、たびたび見て更新されることを確認するしかなさそうです。しばらくして、ようやく情報が更新されました。

「ap-northeast-1 での 1個の検出結果」⇒「ap-northeast-1 での 検出結果を表示」をクリックすると、IAM Access Analyzer for S3 の検出結果画面に遷移します。
対象のバケットをパブリックアクセスブロック設定する
IAM Access Analyzer for S3 からパブリックアクセスブロック設定をすることができます。
対象のバケットをクリックして、「パブリックアクセスをすべてブロック」をクリックします。
「確認」と入力して「確認」ボタンをクリックします。

IAM Access Analyzer for S3 の検出結果画面から、対象バケットが表示されなくなりました。
S3の設定を見ても、ブロックパブリックアクセスがONになっていたことを確認できました。
ちなみに、パブリックアクセスブロックしても、「外部アクセスの概要」は即時更新されず、ap-northeast-1 にパブリックアクセスバケットがあると表示されたままでした…
個人的な所感
パブリックアクセスされたバケットがある気づきが増えたのは良いこと
何らかの事情(金銭面の理由など?)でAWS Configを使えない環境もあると思います。IAM Access Analyzer を有効にしておけば、パブリックアクセスできるS3の存在に気づくことができるポイントにはなりそうです。AWS Configのルール追加を検討するキッカケにもなると思いますし、その点では意義のあるアップデートかと思いました。
IAM Access Analyzer を有効にするだけでなく、EventBridge で監視し、検出されたらSNSにて通知を出すところまで設定した方がなお良いと思います。
AWS Config のルール設定でパブリックアクセスブロックを検出・修復した方が良い
これまでの検証から、パブリックアクセスを許可にしても情報は即時更新されませんでした。また、確認したタイミング直近にパブリックアクセスされたバケットについては気づくことができないため、パブリックアクセスを見逃す可能性は少なからず残ってしまいます。
これありきで考えるのは危険だと思いました。この機能だけに頼らずに、可能な限り AWS Config でパブリックアクセスの修復を設定するのが望ましいと思いました。そうすれば、パブリックアクセスが放っておかれることは無くなり、この機能に頼ることも無いのではと思いました。
最後に
地味なアップデートかもしれませんが、パブリックアクセスがあることをユーザに気づかせる仕組みが一つでも多くあるのは良いことだと思いました。色々深掘りしてみて、IAM Access Analyzer for S3 の検出トリガも分かり、良い勉強になりました。
この記事がどなたかの参考に少しでもなれば幸いです。
以上です。最後まで読んでいただき、ありがとうございました!