Google I/O 2022 で発表された Firebase の最新情報をご覧ください。
詳細
さまざまな開発ワークフロー環境に対応した一般的なセキュリティ ガイドライン
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このページでは、環境全体のセキュリティに関する最も重要なベスト プラクティスについて説明します。セキュリティと Firebase に関するより詳細なガイダンスについては、セキュリティ チェックリストをご覧ください。
本番前環境のセキュリティ
異なる Firebase プロジェクトで環境を分離するメリットの 1 つは、本番前環境にアクセスできる悪意のあるユーザーが、実際のユーザーデータにアクセスできないことです。本番前環境で最も重要なセキュリティ対策は次のとおりです。
本番前環境へのアクセスを制限するモバイルアプリの場合は、App Distribution または類似のアプリを使用して、特定のユーザーセットにアプリを配布します。ウェブ アプリケーションは制限が難しいため、本番前環境用にブロック機能を設定し、ドメイン固有のメールアドレスを持つユーザーにアクセスを制限します。Firebase Hosting を使用している場合は、一時的なプレビュー URL を使用して、本番前環境のワークフローを設定します。
環境を持続する必要がなく、1 人(またはテストの場合は 1 台のマシン)でのみ使用する場合は、Firebase Local Emulator Suite を使用します。これらのエミュレータは、クラウド リソースを使用する代わりに localhost で完全に動作するため、安全かつ高速です。
本番環境と同様に、本番前環境で Firebase セキュリティ ルールが設定されていることを確認します。一般に、ルールは環境全体で同一にする必要があります。ただし、ルールはコードによって変更されるため、パイプライン内で本番環境にないルールが存在している可能性があります。
本番環境のセキュリティ
本番環境データは、アプリの状態に関係なく、常にターゲットになっています。次のガイドラインは、悪意のある人物によるデータの取得を完全に防ぐものではありませんが、このガイドラインに従うことで、データの取得は非常に難しくなります。
使用しているすべてのプロダクトで App Check を有効にして適用する。App Check は、バックエンド サービスに対するリクエストが正規のアプリから送信されていることを確認します。この機能を使用するには、アプリの各バージョンを App Check に登録する必要があります。ユーザーがいない状態でも簡単に設定できるので、できるだけ早い段階で設定してください。
堅牢な Firebase セキュリティ ルールを作成する。Realtime Database、Cloud Firestore、Cloud Storage はすべて、デベロッパーが構成したルールを使用して、データへのアクセスを許可するユーザーと禁止するユーザーを特定します。セキュリティ上、適切なルールを記述することが重要です。方法がわからない場合は、まずこの Codelab をご覧ください。
本番環境用のセキュリティの詳細については、セキュリティ チェックリストをご覧ください。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2023-10-31 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2023-10-31 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2023-10-31 UTC。"]]