1

S3 には、安全に提供したい静的アセットがたくさんあります。

カスタム ドメイン名と SSL 証明書を使用できず、既存の認証ソリューションと統合したいという事実のため、EC2 上の実際の Web サーバーを介して S3 コンテンツを提供したいと考えています。

S3 をボリュームとしてマウントする方法を示すhttp://www.cyberkan.com/how-to-mount-s3-over-ec2-linux/を見つけました。

EC2 上の Apache または nginx 経由で s3fs 経由で S3 バケットを提供しようとした人はいますか? これは、パフォーマンスと信頼性の点で実行可能な戦略ですか?

4

2 に答える 2

0

私の経験はまちまちです。S3 はブロックデバイスではありません。多くのアプリケーションは、ブロック デバイスであると想定してファイル システムにアクセスします。s3fs マウント上のファイルにアクセスしようとすると、結果が予測できない場合があります。

S3 は SSL をサポートしています。ドメインを使用するだけで済みます。署名付き URL を介してプライベート ファイルへのアクセスを提供できます。これは、特定の期間、ユーザーに対して有効になります。

于 2013-05-14T19:51:56.000 に答える
-2

コンテンツを S3 に残すことでコンテンツを保護し、S3 のバケット ポリシーを編集して、ユーザーがサーバーからリンクをクリックした場合にのみコンテンツへのアクセスを許可することができます。たとえば、コンテンツ管理システム (何らかの形式の認証を実装していると思われます) が www.example.com にある場合、S3 でバケットの [プロパティ] に移動し、[アクセス許可] エリアで [バケット ポリシーの追加] をクリックします。 "。

たとえば、次のコードを使用して、特定の HTTP リファラーへのアクセスを制限できます。

{
  "Version":"2008-10-17",
  "Id":"http referer policy example",
  "Statement":[
    {
      "Sid":"Allow get requests originated from www.example.com and example.com",
      "Effect":"Allow",
      "Principal":"*",
      "Action":"s3:GetObject",
      "Resource":"arn:aws:s3:::examplebucket/*",
      "Condition":{
        "StringLike":{
          "aws:Referer":[
            "http://www.example.com/*",
            "http://example.com/*"
          ]
        }
      }
    }
  ]
}

注: この例はS3 ドキュメントからのものです

私はこのアプローチをうまく使いました。誰かがページ ソースを表示して S3 バケット ソースに直接アクセスしようとしても、「アクセスが拒否されました」というメッセージが表示されます。www.example.com に対して認証され、その認証されたブラウザ セッション内からコンテンツを表示またはダウンロードするためのリンクをクリックした場合にのみ、ファイルにアクセスできます。

于 2013-05-18T00:13:59.123 に答える