質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Q&A

解決済

1回答

3528閲覧

Firebase Storageで、あるバケットを特定のドメインからしかファイルにアクセスできないようにしたい

EMADURANDAL

総合スコア41

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

0グッド

1クリップ

投稿2018/08/07 21:09

お世話になります。

やりたいこととしては表題のとおりです。
Firebase Storageで、あるバケットを特定のドメインからしかファイルにアクセスできないようにしたく、
ドキュメントを参考に以下を行いました。

https://cloud.google.com/storage/docs/access-control/making-data-public#buckets

しかし、この方法だと本当に不特定多数に完全公開になってしまいます。

そうではなく、あるドメインで公開中の自作のWebサービスから、必要なリソースとしてアクセス(XMLHttpRequest)したく、その上で以下のアクセス制限をつけたいです。

・指定ドメイン以外のサービスからは、バケット上のファイルにはアクセスできない。
・バケット上のファイルのURLを直接指定しても、一般の人はダウンロードできない。

最初にやった完全公開は危ないので、
https://cloud.google.com/storage/docs/access-control/making-data-public#buckets
のallUsersの閲覧権限を削除した上で、

CORSをバケットに設定してみましたが、サービスからのアクセスがうまくいきませんでした。
https://cloud.google.com/storage/docs/cross-origin?hl=ja

Webサービスのページでは、(クライアント側でJavaScriptのXMLHTTPRequestでアクセスするのですが)、コンソールに以下のように出てしまいます。

Failed to load resource: the server responded with a status of 403 ()

適切な権限の設定方法を、おわかりの方いらっしゃいましたら、ご教示いただけないでしょうか。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

問題を読み替えてはどうでしょうか.
例えば「特定ドメインからのみアクセス許可したい」=「ログインしている人のみアクセス許可したい」
これならFirebaseのルールで容易に設定可能です.

投稿2018/08/08 00:20

編集2018/08/08 00:22
Yatima

総合スコア1159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EMADURANDAL

2018/08/08 01:19

ありがとうございます。 それが、そのドメインのWebサービスを利用する人は、ログインなどの認証なしに利用できることが前提なので、その手が使えないのです。
Yatima

2018/08/08 01:22

Firebaseを使われているのなら,匿名ログインを利用すれば,いわゆるログインの手間は不要ですが,いかがでしょう.
EMADURANDAL

2018/08/08 10:34

ありがとうございます。 Webサービスにアクセスしてきた不特定の人でも、匿名ログインの仕組みにより、自動的にFirebase的にログイン状態になり、非公開バケットのファイルもその人のブラウザからアクセスできようになる、ということしょうか。 匿名ログインの数に制限があるようですが、それほど多くの方が利用するわけではないので、なんとかなりそうです。 ちょっと試してみたいと思います。
Yatima

2018/08/08 10:37

その通りです. ぜひ試してみてください.
EMADURANDAL

2018/10/10 17:04

返信たいへん遅れました。 おっしゃる通りのこと確認できましたが、本質的な問題である、望めばデータが取れてしまうという点は匿名認証という時点で、ある程度許されてしまい。そもそもの問題設定次第なのかな、と思っております。 でも、ファイルへの直リンの直アド打ちによるダウンロードを防げるという意味では、良いですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問