はじめに
今回はSupabaseの利用前に事前に設定しておくと後で困らない設定項目を紹介していきます。
※最終更新は2024/11/03です。今後Supabaseの更新に合わせて内容は変化します。
Organizationの設定
Supabaseのダッシュボードを開くと、サイドバーにOrganizationsという項目が表示されるかと思います。
この中の項目からまずは見ていきましょう。
コストコントロール
Organization設定のBilling
の項目の中に、Cost Controll
という設定があります。
この項目を利用すると毎月の課金額に上限を設定することができます。
利用ユーザやリクエストの一時的な増加で多額の課金が行われる可能性を防いでくれます。
特に開発中に役立ちますので、設定しておくとよいと思います。

※注意に書いてある通り割当量を超えるとサービスが停止される可能性があるため、あくまで開発中に実装上のバグなどで多額の課金がされてしまうことを防ぐ目的で利用するのが良いです。
プロジェクト内の設定
新規プロジェクトを作成後に設定しておくべき項目を紹介します。
Point In Time Recovery
Project Settings
のAdd ons
の中にPoint in time recovery
という設定項目があります。

こちらはPro版以上で利用できるバックアップよりもさらに短いスパンでバックアップを作成する機能です。
最大数秒間の粒度でバックアップの作成をしてくれます。
実際にサービスを運営する際には検討しておくべき機能のため覚えておきましょう。
データベースのSSL設定
Project Settings
のDatabase
の中にSSL Certificate
という設定項目があります。

安全にDBに接続するために、SSL接続以外を拒否し、Supabaseから発行したSSL証明書がないと接続できない設定にすることができます。
詳しくはこちらのドキュメントに載っています。
https://supabase.com/docs/guides/platform/ssl-enforcement
IPアドレス制限
SSL Certificate
の下にNetwork Restriction
という項目があります。

こちらを利用するとSupabaseへのアクセスをIPアドレスの範囲で制限することができます。
会社のネットワーク内や自宅などに制限して開発時に何らかのセキュリティ的な問題が起きることを防げます。
パスワード設定
Project Settings
のAuthentication
の中にPasswords
という設定項目があります。

最小のパスワードの長さやパスワードに含まないといけない文字のタイプなどを指定できます。
加えてPro版以上であれば漏洩したパスワード(想像しやすいPasswordや12345などの連番など)を事前に拒否できます。
安全に利用するためにある程度デフォルトから変更しておきましょう。
Captchaの有効化
Project Settings
のAuthentication
の中にBot and Abuse Protection
という設定項目があります。

ボットや悪意のあるアクセスを弾くことができるため、設定しておくとよいです。
Custom SMTPの設定
Project Settings
のAuthentication
の中にSMTP Settings
という設定項目があります。

SupabaseのデフォルトのSMTPのレート制限がかなり厳しいうえ、organizationsに登録されているメールアドレスのみにしか送れない状況のため、メール配信のためにSMTPサーバを設定する必要があります。(resendなどを利用するのが良いです)
また、Custom SMTPを有効にしただけだとレート制限自体はデフォルト設定のままなので、Authentication
のRate Limits
にアクセスしメール配信数を変更しましょう。

URL設定
Project Settings
のAuthentication
の中にURL Configuration
という設定項目があります。

サービスを公開する前に利用するドメインをこちらに追加してリダイレクトが正しく行われるようにしましょう。