Mistake #77 : Public S3 Bucket

世界中に公開された
「顧客名簿.csv」

「便利だから」とクラウドストレージ(S3)を全公開設定にしていませんか?
URLを知っている人だけが見られる? いいえ、検索エンジンは全てを知っています。
公園のベンチに顧客名簿を置き忘れるのと同じ、致命的な過ちです。

📂 ガバガバ設定診断
  • S3バケットのポリシーに `"Principal": "*"` という記述がある
  • 画像を表示するために、バケット全体を「Webサイトホスティング」設定にしている
  • 開発環境だからと、誰もが読み書きできる設定(Public Read/Write)にしている
  • アップロードされたファイル名が連番(001.pdf, 002.pdf)で推測可能だ
⚠️ 警告:情報漏洩は「ハッキング」ではなく、「設定ミス」から起きます。
あなたの会社の重要書類は、今まさにダウンロードされています。

01. 公園のファイルキャビネット

クラウドストレージはデフォルトで「非公開(Private)」です。
しかし、開発者が「アクセス権限とか面倒くさいから」という理由で、安易に「Public」スイッチをオンにします。
その瞬間、認証の壁は消え去り、世界中の誰でもURLさえ分かればファイルにアクセスできるようになります。
そして悪いことに、攻撃者は辞書攻撃でURLを総当たりしてきます。

「誰でも見れる」設定は、
「全員に見せたい」時だけ使え。

02. 署名付きURLの活用

ユーザーだけに特定の画像やPDFを見せたい場合、バケットを公開する必要はありません。
「署名付きURL(Presigned URL)」という機能を使いましょう。
これは「5分間だけ有効な特別なチケット(URL)」を発行する仕組みです。
これなら、S3を非公開に保ったまま、必要な人にだけ安全にファイルを渡せます。

03. Block Public Access

AWS S3には「Block Public Access」という、うっかり公開を防ぐ最強の盾があります。
これをアカウントレベル、バケットレベルで有効にしてください。
そうすれば、間違った設定をしようとしてもS3が「拒否」してくれます。
人間はミスをする。だからシステム側で「ミスできない」ようにするのです。

執筆:クラウドセキュリティアーキテクト

クラウドの鍵師。
IAMポリシーとバケットポリシーを駆使し、利便性と堅牢性を両立させる権限設計のプロ。