web-dev-qa-db-ja.com

AWSがパブリックS3バケットに対して推奨するのはなぜですか?

「S3バケットへのいかなるパブリックアクセスも決して許可しないことを強くお勧めします。」

ウェブサイトのホストに使用する1つのバケットに非常に詳細なパブリックポリシー(s3:GetObject)を設定しました。 Route53は、この目的でバケットのエイリアスを明示的にサポートしています。この警告は冗長ですが、何か間違っていますか?

57
Andrew Johnson

はい、あなたが何をしているのか知っているなら(edit:とそれにアクセスできる全員elseもそう...)、この警告は無視できます。

大規模組織 であっても、誰が誤ってプライベートデータをパブリックバケットに入れたのかを知っている必要があるためです。コンソール内の警告に加えて、バケットを公開したままにすると、Amazonからヘッドアップメールも送信されます。

アクセンチュア、ベライゾン、バイアコム、イリノイの有権者情報と軍事情報はすべて、IT組織がS3サイロの設定を誤っているため、すべての人がオンラインで誤って公開されたままになっていることがわかりました。

あなたが絶対であれば、バケット内のすべてがパブリックであることが100%確実であり、誰かが誤ってプライベートデータをそこに入れてはならない-静的HTMLサイトは良い例です-ぜひ、公開してください。

72
ceejayoz

ceejayozの回答 で取り上げられているプラ​​イバシーの問題だけが問題ではありません。
S3バケットからオブジェクトを読み取るには料金がかかります。 このバケットからのダウンロードごとにAWSから請求されます。トラフィックが多い場合(またはビジネスを傷つけたい人が開始した場合)一日中ファイルを大量にダウンロードするには、すぐに高価になります。

バケットのファイルにパブリックにアクセスできるようにするには、 S3バケットをポイントし、S3バケットへのアクセスを許可するCloudfrontディストリビューションを作成する にする必要があります。

これで、Cloudfrontディストリビューションのドメイン名を使用して、S3アクセスをパブリックに許可することなくファイルを提供できます。
この構成では、S3ではなくCloudfrontのデータ使用量に対して支払います。量が多いほど安くなります。

37
Quentin Hayot