# 保護された環境 (/ja/docs/workspaces/protected-environments)

保護された環境は、何かを送信する前に確認します。本番の環境を保護しておけば、うっかり押した<kbd>⌘</kbd><kbd>R</kbd>、ランナーの実行、エージェントの呼び出しが、誰かの承諾なしにそこへ届くことはありません。保護された環境は、表示されるすべての場所で赤で示されます。

## 環境を保護する [#protect-an-environment]

1. [環境](/docs/workspaces/environments)ページ（<kbd>⌥</kbd><kbd>⌘</kbd><kbd>E</kbd>）を開きます。
2. 環境を選択します。
3. 名前の横の**保護**をオンにします。

環境の行と、環境メニューの点が、盾マークとともに赤くなります。ファイルでは1行なので、この設定はワークスペースを開く全員で共有されます。

```toml
name = "Production"
protected = true
```

Alpenglowでは、**Production**が保護されています。

## 先に確認される操作 [#what-asks-first]

保護された環境がアクティブな間、次の操作は、送信される前に確認されます。

| 開始する操作 | 場所 |
| --- | --- |
| あらゆる種類のリクエストの送信（`GET`などの安全なメソッドも含む） | リクエストページ: **送信**、**リクエスト › 送信**（<kbd>⌘</kbd><kbd>R</kbd>）、<kbd>⌘</kbd><kbd>↩</kbd> |
| WebSocket、Socket.IO、MQTTなどのセッションへの接続 | リクエストページ: **接続** |
| 保護された環境に切り替える前に開いたセッション内のメッセージ | リクエストページ |
| 実行 | [ランナー](/docs/requests/runner): **実行**（実行ごとに1回） |
| フローの実行 | [フロー](/docs/flows)ページ: **実行** |
| クイック送信 | [クイック送信](/docs/mac/quick-send)パネル |
| ショートカットのアクション | [ショートカット](/docs/mac/shortcuts)アプリが質問を表示 |
| 呼び出し、チェック、ウォッチ | [MCPサーバ](/docs/mcp-servers)ページ |
| OAuth 2.0トークンの取得、GraphQLスキーマの取得、gRPCリフレクション | リクエストページ |

ボタンは、クリックする前から知らせます。<strong>送信</strong>は赤で<strong>Productionに送信…</strong>、<strong>接続</strong>は<strong>Productionに接続…</strong>、<strong>実行</strong>は<strong>Productionで実行…</strong>と表示されます。

<Shot id="workspaces-protected-send-button" alt="Productionがアクティブなときの「Catalog › List products」。送信ボタンが赤で「Productionに送信…」と表示されている" />

## 確認の内容 [#the-question]

確認では、環境の名前と、送信される内容が表示されます。メソッドと解決済みのアドレスで、シークレットはマスクされます。たとえば次のとおりです。

> **Productionに送信しますか？**
>
> Productionは保護されています。送信のたびに確認します。
>
> GET https://api.alpenglow.example/v1/products?category=tents&in_stock=true&sort=-price&per_page=10

- **キャンセル**がデフォルトのボタンです。<kbd>↩</kbd>でも<kbd>Esc</kbd>でもキャンセルされます。保護された環境に、誤って何かが送られることはありません。
- **送信**（または**接続**、**実行**）で送信されます。マウスでクリックしてください。
- **環境を切り替えるまで確認しない**を選ぶと、別の環境を選ぶまで、このウインドウでの確認がなくなります。Echolotはこれをメモリ内にだけ保持します。ディスクには書き込まれず、環境を切り替えるか、ウインドウを閉じるか、終了すると終わります。

<Shot id="workspaces-protected-send-question" alt="リクエストページの上に表示された「Productionに送信しますか？」の確認。キャンセルがデフォルトのボタンで、チェックボックス「環境を切り替えるまで確認しない」がある" />

## エージェントの場合 [#what-agents-do-instead]

AIエージェントは、保護された環境を自力で通過することはできません。メソッドやワークスペースのエージェントのルールにかかわらず、そこへのすべての送信は、エージェントの承認シートであなたに確認されます。シートには「環境が保護されているため、メソッドやポリシーにかかわらず、すべての送信の前に確認します。」と表示されます。そこでは**1回だけ許可**はデフォルトのボタンではないので、<kbd>↩</kbd>で承認されることはありません。**このセッションでは許可**を選ぶと、ウインドウを閉じるまで、同じ呼び出しは確認なしで行われます。**拒否**は拒否します。

これは、内蔵の[アシスタント](/docs/ai/assistant)と、EcholotのMCPサーバを通じた[外部エージェント](/docs/ai/agents)の両方に当てはまります。ワークスペースのエージェントのルールで、保護された環境への送信を無条件に許可することはできません。`echolot mcp serve`が、確認する相手のいないヘッドレスで動いているときは、それらの送信は拒否されます。

## コマンドライン [#the-command-line]

`echolot run`、`echolot send`、そのほかのコマンドは確認しません。コマンドラインで`--env production`を選ぶこと自体が、判断だからです。CIが本番に到達してはならない場合は、本番の認証情報をCIのシークレットに入れないでください。

## ヒント [#tips]

- 本番だけでなく、実際のデータを指しているすべての環境を保護してください。
- ステータス画面の[Echo](/docs/ai/echo)は、保護された環境がアクティブな間、赤いリマインダーを表示します。
- しばらく確認なしで本番に対して作業したいときは、**保護**をオフにするのではなく、**環境を切り替えるまで確認しない**を使ってください。チームメンバーとエージェントに対しては、保護が残ります。
