> ## Documentation Index
> Fetch the complete documentation index at: https://factory-docs-cli-sandbox-mcp-whole-process.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Droid Shield

> git commitやpushで認証情報が誤って公開されるのを防ぐ自動シークレット検出。

## Droid Shieldとは？

Droid Shieldは、コミットしてリモートにプッシュする前に、未コミットの変更を自動的にスキャンして潜在的なシークレットを検出する組み込みセキュリティ機能です。APIキー、トークン、パスワードなどの機密認証情報がバージョン管理履歴に誤って公開されることを防ぐセーフティネットとして機能します。

<Tip>
  **高度な保護をお探しですか？** [Droid Shield Plus](/jp/cli/account/droid-shield-plus)は、プロンプトインジェクション検出、強化されたシークレット検出、機密データ保護を備えたAI搭載セキュリティスキャンを提供します。エンタープライズのお客様が利用できます。
</Tip>

***

## Droid Shieldの動作原理

Droidを使用して`git commit`または`git push`操作を実行すると、Droid Shieldは自動的に以下を行います：

1. **差分をスキャン** - 追加される行のみを分析（削除や変更されていない行は対象外）
2. **シークレットを検出** - パターンマッチングを使用して潜在的な認証情報を識別
3. **実行をブロック** - シークレットが検出された場合、git操作を停止
4. **検出結果を報告** - 潜在的なシークレットが見つかった正確な場所を表示

<Note>
  Droid ShieldはDroid経由で実行されたgit操作のみをスキャンします。Droidの外で手動実行したgitコマンドには影響しません。
</Note>

***

## Droid Shieldが検出する対象

Droid Shieldは、以下を含む幅広い認証情報パターンをスキャンします：

<CardGroup cols={2}>
  <Card title="APIキーとトークン" icon="key">
    Factory APIキー、GitHubトークン、GitLabトークン、npmトークン、AWS、Google Cloud、Stripe、SendGridなどのAPIキー。
  </Card>

  <Card title="認証情報" icon="user-lock">
    （JWT、OAuth、セッショントークンなど）と、認証情報が埋め込まれたURL。
  </Card>

  <Card title="秘密鍵" icon="file-shield">
    （SSH秘密鍵、PGP鍵、ageシークレットキー、OpenSSH鍵など）およびその他の暗号鍵形式。
  </Card>

  <Card title="サービス固有のシークレット" icon="cloud">
    （Slack Webhookとトークン、Twilio認証情報、Mailchimpキー、Square OAuthシークレット、Azureストレージキーなど）。
  </Card>
</CardGroup>

### 検出アルゴリズム

Droid Shieldは、ランダム性検証を伴うスマートパターンマッチングを使用します：

* **パターンマッチング** - フォーマットによる認証情報の識別
* **ランダム性チェック** - キャプチャされた値が実際のシークレットのように見えるかを検証
* **コンテキスト認識** - 変数名と代入パターンを考慮して誤検出を減らす

***

## Droid Shieldが起動するタイミング

Droid Shieldは以下のgit操作中に自動的に起動します：

* **`git commit`** - コミット作成前にステージされた変更をスキャン
* **`git push`** - リモートにプッシュされるコミットをスキャン

<Warning>
  シークレットが検出された場合、認証情報の露出を防ぐためgit操作はブロックされます。続行する前にシークレットを削除する必要があります。
</Warning>

***

## Droid Shield設定の管理

### CLIでの操作

設定メニューからDroid Shieldのオン/オフを切り替えることができます：

1. `droid`を実行
2. `/settings`を入力
3. \*\*「Droid Shield」\*\*設定を切り替え
4. 変更は即座に有効になります

<Info>
  Droid Shieldは保護のため**デフォルトで有効**です。有効のままにしておくことを強く推奨します。
</Info>

***

## シークレットが検出された場合の対処法

Droid Shieldが潜在的なシークレットを検出すると、以下のようなエラーメッセージが表示されます：

```
Droid-Shield has detected potential secrets in 2 location(s) across files:
src/config.ts, .env.example

If you would like to override, you can either:
1. Perform the commit/push yourself manually
2. Disable Droid Shield by running /settings and toggling the "Droid Shield" option
```

### 推奨される対処方法

<Steps>
  <Step title="検出結果を確認">
    記載されたファイルと行を慎重に確認し、検出内容を特定します。
  </Step>

  <Step title="シークレットを削除">
    * ハードコードされた認証情報の代わりに環境変数を使用する
    * シークレットを安全な認証情報ストアに移動する
    * 機密ファイルを`.gitignore`に追加する
    * シークレットがすでにコミットされている場合は、git filter-branchまたはBFG Repo-Cleanerを使用する
  </Step>

  <Step title="操作を再試行">
    シークレットを削除したら、Droid経由でgitコマンドを再度実行します。
  </Step>
</Steps>

<Warning>
  **チェックを回避するためだけにDroid Shieldを無効化しないでください。** 認証情報の露出は、セキュリティ侵害、不正アクセス、コンプライアンス違反につながる可能性があります。
</Warning>

### 誤検出の場合

Droid Shieldは慎重を期すために保守的なパターンを使用します。検出が誤検出だと思われる場合：

1. **実際のシークレットでないことを確認** - その値が機密情報でないことを再確認
2. **手動コミットを使用** - Droid以外でgit操作を直接実行
3. **パターンを報告** - 繰り返し発生する誤検出がある場合は[support@factory.ai](mailto:support@factory.ai)までご連絡ください

***

## ベストプラクティス

<AccordionGroup>
  <Accordion title="環境変数を使用">
    すべてのシークレットを環境変数または安全な認証情報マネージャーに保存し、ソースファイルには絶対にハードコードしないでください。

    ```bash theme={null}
    # 良い例 - 環境変数を使用
    const apiKey = process.env.FACTORY_API_KEY;

    # 悪い例 - シークレットをハードコード
    const apiKey = "fk-abc123xyz789...";
    ```
  </Accordion>

  <Accordion title="Droid Shieldを有効にしておく">
    Droid Shieldは重要な安全レイヤーを提供します。特にチーム環境では常に有効にしておいてください。
  </Accordion>

  <Accordion title="コミット前に確認">
    Droid Shieldがあっても、コミット前に変更を手動で確認し、機密データが含まれていないことを確認してください。
  </Accordion>

  <Accordion title="チームに周知">
    すべてのチームメンバーがDroid Shieldの仕組みと、有効に保つ重要性を理解していることを確認してください。
  </Accordion>
</AccordionGroup>

***

## 制限事項

<Note>
  **Droid Shieldは検出ツールであり、保証ではありません。** 一般的なシークレットパターンの多くを検出できますが、以下は検出できません:

  * パターンデータベースにないカスタムシークレット形式
  * 認識可能なパターンに従わないシークレット
  * 難読化またはエンコードされた認証情報
  * ビジネスロジックの脆弱性やコードセキュリティの問題

  常にセキュリティのベストプラクティスに従い、シークレット保護を自動ツールだけに依存しないでください。
</Note>

***

## 関連リソース

<CardGroup cols={2}>
  <Card title="セキュリティ概要" icon="shield" href="/jp/cli/account/security">
    Factoryの包括的なセキュリティ機能とベストプラクティスについて学びます。
  </Card>

  <Card title="設定" icon="gear" href="/jp/cli/configuration/settings">
    Droid Shieldの設定を含むDroid設定を構成します。
  </Card>
</CardGroup>

***

## サポートが必要ですか？

<CardGroup cols={2}>
  <Card title="セキュリティに関する質問" icon="envelope">
    セキュリティチームへのお問い合わせ: **[security@factory.ai](mailto:security@factory.ai)**
  </Card>

  <Card title="誤検知" icon="flag">
    継続的な誤検知パターンを報告するには、**[support@factory.ai](mailto:support@factory.ai)**までお問い合わせください。
  </Card>
</CardGroup>
