質問: お世話になります。 やりたいこととしては表題のとおりです。 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 () ``` 適切な権限の設定方法を、おわかりの方いらっしゃいましたら、ご教示いただけないでしょうか。 よろしくお願いいたします。
回答: 問題を読み替えてはどうでしょうか. 例えば「特定ドメインからのみアクセス許可したい」=「ログインしている人のみアクセス許可したい」 これならFirebaseのルールで容易に設定可能です.