> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/pentesuto/integrate-your-supabase-projects.md).

# Supabase プロジェクトを統合する

Supabase の組織を Aikido に接続すると、当社のペンテストエージェントは設定に関するより深い文脈を得られ、そうでなければ見逃される可能性のあるセキュリティ問題の発見に役立ちます。

{% hint style="warning" %}
ペンテストを実施すると、エージェントはアプリケーション内の脆弱性を見つけようとし、そのためにアプリケーションとやり取りする必要があります。これにより、Supabase プロジェクト内にテストデータが作成される場合があります。
{% endhint %}

## Supabase のペンテストでは何が対象になりますか？

Supabase 連携により、Aikido は Supabase プロジェクトの設定を確認し、より隠れたセキュリティ問題を見つけるために必要な文脈をペンテストエージェントに提供します。

以下の領域をテストします：

* **RLS ポリシー：** これらは、誰がデータを表示または変更できるかを決定します。設定が誤っていると、顧客情報や社内データが本来許可されていないユーザーに公開される可能性があります。
* **ストレージバケット：** ここには機密性の高いアップロード、ドキュメント、画像、エクスポートデータが含まれることがよくあります。設定ミスが少しあるだけで、気づかないうちに機密ファイルが公開されることがあります。
* **Edge Functions：** これらは、決済、アカウント操作、連携などの重要なバックエンドロジックを処理することがよくあります。適切に保護されていない場合、攻撃者がそのロジックを悪用したり、その背後のデータにアクセスしたりできる可能性があります。
* **PostgREST の公開：** Supabase は API を通じてデータベースのデータを公開できます。意図したデータと操作だけにアクセスできるよう、これを確認する必要があります。
* **認証設定：** ログインおよびサインアップの設定は、ユーザーアカウントを保護するものです。設定が弱いと、アカウントの悪用、偽のサインアップ、不正アクセスが可能になる場合があります。
* **Realtime：** Realtime 機能はユーザーにリアルタイム更新を送信します。アクセス範囲が広すぎると、誤ったユーザーに送られた更新を通じて機密データが公開される可能性があります。
* **サービスキーと anon キーの露出：** キーはアプリを Supabase に接続するためのものです。誤った場所で露出すると、攻撃者にプロジェクトを悪用される手段を与えてしまう可能性があります。
* **データベース設定：** パブリックスキーマの公開や危険な拡張機能により、データベースの機密部分が誤って開かれる可能性があります。これをテストすることで、攻撃者がデータにアクセスするために使える危険な設定を事前に見つけることができます。

## Supabase を接続してペンテストを実行する

Supabase の接続には OAuth 認可フローを使用します。フロー中に選択した Supabase 組織へのアクセス権が Aikido に付与され、そのアクセスはいつでも Supabase から取り消せます。

{% stepper %}
{% step %}
**アプリケーションタイプとして Supabase を選択する**

Aikido でペンテストプロジェクトを開き、次をクリックします **アセスメントを作成**。次の **アプリケーション** ステップで、次を選択します **Supabase** ペンテストしたいアプリケーションの種類として。

<div data-with-frame="true"><figure><img src="/files/8c8d0a28db6e5ab7ea712041d0018c7b1a0bab8f" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**スコープを定義して Supabase 接続を開始する**

Supabase プロジェクト上に構築されたアプリケーションのエントリーポイントを追加してください。これは Supabase の URL ではなく、アプリケーションの URL である必要があります。

Aikido は、実際の攻撃者と同じようにアプリケーションのエントリーポイントを使って Supabase の設定をテストします。これにより、エージェントはアプリケーションや業務フローの文脈を把握でき、特定の設定が意図したものか、あるいは潜在的に危険かを判断しやすくなります。

本番環境にできるだけ近いテスト環境に対してペンテストを実行することをおすすめします。

で **Supabase プロジェクト** セクションで、 **Supabase を接続** して OAuth フローを開始します。

<div data-with-frame="true"><figure><img src="/files/09f24bf575ffa482375256d4b08a04d8c78eb5a4" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Supabase で Aikido を認可する**

Supabase にリダイレクトされるので、要求された権限を確認し、アクセスを許可する組織を選択できます。

認可を承認します。Aikido は短時間有効な認可コードを受け取り、これをプロジェクト一覧の取得に使うリフレッシュトークンと交換します。Personal Access Token を作成したり保存したりする必要はありません。

<div data-with-frame="true"><figure><img src="/files/a346a6e48b3efb80c9f58c764ba52f781096a935" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**クラウド設定に名前を付ける**

Aikido に戻り、接続した Supabase 組織に名前を付け、それが表す環境（本番、ステージングなど）を選択します。これにより、Aikido は重大度やビジネスへの影響に基づいて検出結果の優先順位を付けやすくなります。

<div data-with-frame="true"><figure><img src="/files/921bce5e1cf7134ec2934f1c8d3ef0c6944ee4d9" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Supabase プロジェクトを選択する**

Aikido から次の **スコープ** ステップに戻されます。次の **プロジェクトを追加** ドロップダウンから、テストしたいプロジェクトを選択してください。Aikido はプロジェクトの Supabase ドメイン（または設定済みのカスタムドメイン）を自動的にペンテストのスコープに追加します。

<div data-with-frame="true"><figure><img src="/files/446c57d28691b80ca80c35e6cd39e26ed69e27e7" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/a55c73e58502f5ae23ac32a92ac518429ede21ac" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**残りのセットアップを完了する**

Aikido の評価フローの残りのステップを進めます。最も重要なのは、テストユーザーを追加すること（これにより Aikido はアプリの認証が必要な領域に到達できます）と、検出されたドメインを確認することです。

各セクションでは、以下を確認してください：

* [ペンテストをセットアップする方法](/docs/docs-ja/pentesuto/configure-a-pentest/starting-an-assessment.md) - セットアップフロー全体の概要
* [テストユーザーの設定](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing.md) - より広い範囲をカバーするためにテストユーザーとロールを追加する
* [評価範囲](/docs/docs-ja/pentesuto/configure-a-pentest/scope-of-assessment.md) - ドメインを攻撃可能またはアクセス可能としてマークする
* [コードとドキュメントの活用](/docs/docs-ja/pentesuto/configure-a-pentest/leveraging-code-and-documentation.md) - リポジトリをリンクして、エージェントが RLS ポリシーと Edge Functions を推論できるようにする
* [安全対策](/docs/docs-ja/pentesuto/configure-a-pentest/safety-measures.md) - 実行前に安全性チェックを確認する

このペンテストプロジェクトで Supabase ドメインの所有権をまだ確認していない場合は、次に従ってください [Supabase のドメイン検証](/docs/docs-ja/pentesuto/configure-a-pentest/domain-verification/supabase.md).
{% endstep %}

{% step %}
**ペンテストを選択する**

次の **料金** ステップで、目的に合うペンテストの種類を選択してください：

* **Supabase テスト** - Supabase プロジェクトの脆弱性の発見に焦点を当てた、対象を絞ったペンテスト。
* **標準** - Supabase テストも含む、アプリケーションの標準的なペンテスト。
* **適正化** - アプリケーションの規模に応じた完全なペンテスト。これには Supabase テストも含まれます。
  {% endstep %}

{% step %}
**ペンテストを開始する**

すべて設定済みです。次をクリックしてください **ペンテストを開始** して評価を開始します。
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.aikido.dev/docs/docs-ja/pentesuto/integrate-your-supabase-projects.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
