AWS の Trusted Advisor で発見された問題:S3 bucket の非公開に関する誤検知とは?

AWS Trusted Advisor flaw allowed public S3 buckets to go unflagged

2025/08/21 HelpNetSecurity — AWS の Trusted Advisor ツールは、ユーザーの S3 ストレージ・バケットが公開されている場合には、警告を発することになっている。しかし、実際に公開されていても、誤った報告により、公開されていないとユーザーが信じてしまう可能性があることが、Fog Security の研究者たちにより明らかにされた。

S3 アクセス保護メカニズム

Amazon S3 は、複数のメカニズムを提供することで、ストレージ・バケットへのアクセスを制御している。

  • IAM User/Role/Policy:きめ細かな権限設定を用いて、S3 リソースにアクセス可能なユーザーを定義する。
  • Bucket Policy:バケットに対してダイレクトにアタッチされた JSON ポリシーを用いて、S3 バケットにアクセス可能なユーザーを指定する。
  • Access Control List (ACL):AWS が廃止を推奨している、従来からの方式である。いまは、Bucket Policy の使用が推奨されている。

さらに AWS は、”Block Public Access” 機能を提供している。この機能の設定により、ACL や Bucket Policy を上書きし、意図していないパブリック・アクセスを阻止できる。デフォルトでは、新規の S3 バケットは、すべてパブリック・アクセスをブロックする。しかし、S3 バケットの公開を前提に使用する一部のユーザーは、”Block Public Access” を無効化している。

Trusted Advisor の誤検知

Fog Security の研究者たちは、特定の Bucket Policy を調整している最中に発見したのは、インターネット上の誰もが S3 バケットと機密データにアクセスできても、Trusted Advisor が正しく検知できない可能性である。

Trusted Advisor が騙される、シナリオは以下のとおりである:

  • S3 の Bucket Policy または ACL をパブリック・アクセス許可に設定する。
  • Trusted Advisor によるバケット確認を、拒否するポリシーを追加する。

具体的には以下の操作が含まれる:

  • s3:GetBucketPolicyStatus を拒否する
  • s3:GetBucketPublicAccessBlock を拒否する
  • s3:GetBucketAcl を拒否する

これらを組み合わせることで、実際にバケットがパブリックであっても、その状況はTrusted Advisor から確認できず、潜在的な問題も報告されない。

Fog Security の創設者である Jason Kao は、「こうしたポリシー変更を可能にするのは、悪意のインサイダーや、侵害済の AWS 認証情報を持つ攻撃者による侵害での悪用である。そのような場合には、疑念を持たれることなく、データが窃取されていく」と Help Net Security に述べている。

また、正規ユーザーが設定を誤り、非公開であるべきバケットをパブリック化した場合にも、Trusted Advisor が警告を出さない可能性がある。

AWS による修正

この問題は、AWS に対して非公開で報告され、2025年6月に修正が実施された。したがって、現時点での Trusted Advisor は、正しくステータスを表示し、ユーザーに警告を出すようになっている。

すでに AWS は、問題と修正を通知するメールをユーザーに送信している。しかし Jason Kao は、この通知では、問題の深刻さが十分に伝わらないと指摘している。さらに、彼のテスト・アカウントに対して、通知メールが届いていないことから、他の顧客にもメールが届いていないことを懸念している。その場合のユーザーは、新しい Amazon S3 バケット権限チェックを実施せず、公開されていないと思い込んでいるバケットを、そのまま放置し続ける可能性がある。

推奨される対策

AWS S3 ユーザーに対して、Fog Security が推奨するのは、以下の項目である:

  • 可能な限り、アカウント・レベルとバケット・レベルにおいて、”Block Public Access” を有効化する。
  • ACL の利用を廃止し、IAM ポリシーへと移行する。
  • S3 バケットとコンフィグを確認し、意図しないデータの公開を確認する。

さらに同社は、オープンソース・ツールを公開しており、それにより、S3 リソースをスキャンしてアクセス問題を検出し、ACL の廃止を支援するとしている。