web-dev-qa-db-ja.com

S3バケットから静的Webサイトを実行して、パスワード保護を追加できますか?

Amazon S3バケットから完全に静的なウェブサイトを実行していますが、コンテンツをパスワードで保護したいと考えています。これは可能ですか?認証の種類は私を困らせません、それがそこにある必要があるだけなので、人々は私のウェブサイトを単に「発見」することはできません。

現在のところ、ドメイン名を設定していません。これは考えられる解決策 http://www.s3auth.com/ を除外していると考えています。他に何かありますか?

26
James Ford

AWSは現在、これを直接行う方法を提供していません。あなたが言及したS3authソリューションは、バケット/オブジェクトがプライベートのままであるため、バケットに直接アクセスしてもプライベート認証情報なしでオブジェクトを読み取ることができないという点で優れています。 s3authアプローチの欠点は、個人の資格情報でs3authを信頼することに依存していることです。資格情報がいずれかの段階で侵害された場合、誰かがあなたのアクセス権をどのように悪用するかによっては、コストがかかる可能性があります。

(Webサイトを作成するときのように)オブジェクトを一般に読めるようにすると、オブジェクト名などを学習/推測/知っている人なら誰でもアクセスできます。または、実際にバケットが読み取り可能な場合、必要なのはバケット名だけです。 S3アクセス許可を厳しくすることを除いて、これを回避する実際の方法はありません。

特定のIPアドレスからのみWebサイトにアクセスする場合は、おそらく バケットポリシー を参照すると役立つ場合があります。 特定のIPアドレスへのアクセスを制限するまでスクロールします。これはパスワードではありませんが、少なくともアクセス元を制限することができます。

オブジェクトへの一時的なアクセスを提供するためのもう1つの一般的な手法は Query String Request Authentication です。ただし、これはS3バケットWebサイトを保護するパスワードの元の要件と一致しません。

14
MeSee

これは、CloudFrontおよびLambda @ Edgeを使用して可能です。ここで答えを参照してください: https://stackoverflow.com/a/45971193/455088

6
Leonid Makarov

AWS SDK for Javascript があなたが探しているものだと思います。公平を期すために、2年前にこの質問を投稿したときには利用できませんでした。 Facebook、Google、Amazonでログインできます。 別のリソース AWSログインを使用しています。

3