話題の記事

意図せず公開しているS3バケットはありませんか?〜S3アクセス権限設定を見直そう〜

2017.11.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

西澤です。S3のアクセス権は適切に管理されていますでしょうか?大変恥ずかしながら私はお客様のS3バケットに対するアクセス権について不適切な設定をしてしまったことがあります。

先日、素晴らしいアップデートがありましたので、それをご紹介しつつ、この記事をご覧になった方がS3バケットのアクセス権を見直すきっかけになればと思い、自戒の意味もこめて、まとめ記事を書いておこうと思います。

S3への不適切なアクセス権限設定が招く事故

つい先日も下記のような記事がありましたが、S3へのアクセス権限が不適切な状態だった為に、意図しない情報が外部に漏洩してしまうというニュースを目にすることがあります。

誤解の無いように声を大にしてお伝えしたいのですが、これらについてAWSサービス側には何ら問題はありません。いずれもアクセス権限を不適切な状態に設定したユーザ側の責任による事故です。適切な設定をしているのにも関わらず、外部に情報が漏れてしまうようなことはありませんので、くれぐれもS3やAWSサービスそのものに対して無用なご不安による不適切な評価を行わないようにお願いします。

AWSからの注意喚起

逆にAWSは様々な形でユーザに適切な設定を施すよう注意喚起を行っています。2017年7月には、下記のような発表もありました。

この際には、S3バケットが外部からリストまたは参照可能な状態となっているユーザに向けてメールが一切に送られました。また、この記事の中では、下記のガイドラインも紹介されています。IAMを利用したユーザーポリシーや、バケットポリシー、バケットACL、オブジェクトACL等のリソースベースポリシーをどのような場面で利用するのが適切なのか、わかりやすくまとめられたページとなっていますので、内容について理解が不足しているという方はぜひ目を通してみてください。

S3のアクセス権設定については、設定できる箇所が多いこともあり、正直慣れるまで少し時間がかかるところがあるかもしれません。このような記事をしっかり読み、ユースケースに合わせて適切なアクセス権限を設定できるようにする必要があると思います。

また、一定ランク以上のAWSサポート契約を結ぶ必要はありますが、Trusted Advisorからもこれらの状態を確認することができますので、ぜひご確認ください。

Trusted Advisorのアラート条件

Trusted Advisorがチェックするアラート条件は以下の通りです。

  • 黄: バケット ACL では、「全員」または「任意の認証済みの AWS ユーザー」に対して「リスト」アクセスが許可されます。
  • 黄: バケットポリシーでは、任意の種類のオープンアクセスが許可されます。
  • 黄: Trusted Advisor にポリシーを確認するアクセス権限がないか、その他の理由でポリシーを評価できませんでした。
  • 赤: バケット ACL では、「全員」または「任意の認証済みの AWS ユーザー」に対して「アップロード/削除」アクセスが許可されます。

公開設定をひと目で判別可能な新機能

そして先日、些細ではあるものの素晴らしい機能が付加されました。

他のアップデートも素晴らしいのですが、今回は触れません。今回取り上げたいのは、「アクセス許可チェック」です。S3のAWS Management Consoleをご覧の方は以前との違いに気付いて、「おっ!」と思われたと思いますが、画面上に新たな列が登場していることがわかります。パブリックアクセスが許可されたバケットが一目瞭然ですね!!!

バケット単位でアクセス権限を確認すれば、どこにその設定が施されているかもわかるようになっています。このような設定がひと目で判別できるようになっているので、意図せず公開設定してしまうようなことはほとんど無くなるのではないでしょうか?

S3コンテンツをWEB配信するケース等、必要に応じてパブリックな設定にすること自体は割りとよくあることかと思いますが、意図せずパブリックな設定としたままとなっているS3バケットがあると、不正なアクセスや意図しない課金につながってしまうケースもありますので、ぜひこの機能を利用してS3へのアクセス権限を見直していただければと思います。

便利なConfigルールも

合わせて、パブリック設定となっているS3バケットを通知してくれるConfigルールも公開されています。1ルールあたりたったの$2/月で安心を手に入れることができますので、こちらも非常にお薦めです。

まとめ

内容としては、AWSブログに書いてあることをまとめただけなのですが、個人的な反省の意味と、これらの便利な機能をより多くの方に知ってもらう為に書いてみました。

どこかの誰かのお役に立てば嬉しいです。