1

私の構成には、ページの場合、たとえば/secure、ログインが必要であることを示すルートがあります(authlogicを介して行われます)。コントローラーの before_filter がそれを処理します。それは問題なく動作し、ページとそのリソースへのアクセスはアプリケーションを通じて制限されています。

問題は、heroku にデプロイされたこのアプリ (refinerycms に基づく) のストレージに Amazon S3 を使用していることです。私はバケツを持っていますが、うまくいきます。

ただし、アプリケーションの安全な部分に挿入されたリソースは、ブラウザから直接アクセスできます。つまり、/secureページには pdf ファイルのようなアイテムが含まれています。アプリを介してリソースが保護されている間、これらの pdf ファイルはインターネットのどこからでもアクセスできます (URL の例): http://s3.amazonaws.com/my_bucket/images/1234/the_file_which_should_be_secure.pdf

S3 できめ細かいアクセス制御を行うことはできますか? 新しいバケットを作成する必要がありますか? 理想的には、リソースにフラグを設定して、インターネットで見えないようにしたいのですが、わかりません。

どんな提案も歓迎します。

PS openid.org の ssl 証明書の有効期限が切れているため、ログインできなかったため、新しい空のアカウントを作成する必要がありました

4

4 に答える 4

5

このページに書かれていることを試すことができます:

http://thewebfellas.com/blog/2009/8/29/protecting-your-paperclip-downloads

仕様は、「ストリーミングはもうありません。リダイレクトの時間です」セクションの下にあります。

概要: S3 には 4 つの既定のアクセス ポリシーがあります。S3 は、認証済み読み取りポリシーを使用して、指定された期間のみ機能するプライベート コンテンツの認証済み URL を生成する方法を提供します。

私は実際にこれを行っていないので、うまくいくかどうか教えてください。:-)

于 2010-10-28T03:38:41.670 に答える
4

最も単純で簡単な解決策は、S3 アセットにランダムで推測不可能なファイル名を付け、秘密の URL をアクセス権を持つべき人だけに公開することです。

これが、Facebook の写真や他の多くのサイトのしくみです (個々のファイル名がわかりにくいこと以外に、プライバシーやセキュリティはありません)。

于 2010-10-23T21:28:26.957 に答える
2

ペーパークリップを使用すると、URL を期限切れにすることで、Amazon S3 に保存されているオブジェクトへのアクセスを制限できます。(期限切れの URL を使用してもかまわない場合)

GitHub の thinkbot/paperclip の Wiki は次のとおりです。

https://github.com/thoughtbot/paperclip/wiki/Restricting-Access-to-Objects-Stored-on-Amazon-S3

また、そのページの下部には、見逃したくない役立つリンクがいくつかあります。

于 2011-08-11T06:34:29.960 に答える
0

あなたが何を達成しようとしているのか混乱しているかもしれませんが、S3 には、ユーザーに提供する URL に暗号化キーが必要なアクセス許可があります。aws-s3 gem を使用する場合、このオプションはデフォルトで有効になっています。したがって、暗号化されたキーが埋め込まれたリンクをユーザーが使用しない限り、ファイルにアクセスすることはできません。これには、ファイルが許可されたアクセスのみに設定されていることを確認する必要があります。

gem に関する詳細情報はhttp://amazon.rubyforge.org/にあります。アクセス制御に関連するドキュメントを探します (「authenticated_read」が必要だと思います)。

于 2010-10-24T02:01:59.477 に答える