# 보호된 환경 (/ko/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. 이름 옆의 <strong>보호됨</strong>을 켭니다.

환경의 행과 환경 메뉴의 점이 방패와 함께 빨간색으로 바뀝니다. 파일에서는 한 줄이므로, 이 선택은 작업 공간을 여는 모든 사람과 공유됩니다.

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

Alpenglow에서는 <strong>Production</strong>이 보호되어 있습니다.

## 먼저 묻는 것 [#what-asks-first]

보호된 환경이 활성인 동안 다음은 나가기 전에 묻습니다.

| 시작하는 것 | 위치 |
| --- | --- |
| `GET` 같은 안전한 메서드를 포함한 모든 종류의 요청 보내기 | 요청 페이지: <strong>보내기</strong>, <strong>요청 › 보내기</strong>(<kbd>⌘</kbd><kbd>R</kbd>), <kbd>⌘</kbd><kbd>↩</kbd> |
| WebSocket, Socket.IO, MQTT 또는 다른 세션 연결 | 요청 페이지: <strong>연결</strong> |
| 보호된 환경으로 전환하기 전에 열어 둔 세션의 메시지 | 요청 페이지 |
| 실행 | [실행](/docs/requests/runner): <strong>실행</strong>, 한 번의 실행마다 |
| 플로 실행 | [플로](/docs/flows) 페이지: <strong>실행</strong> |
| 빠른 보내기 | [빠른 보내기](/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]

질문에는 환경의 이름과 나갈 내용이 표시됩니다. 메서드와 해석된 주소이며, 비밀 값은 가려집니다. 예를 들면 다음과 같습니다.

> <strong>Production으로 보내시겠습니까?</strong>
>
> Production 환경은 보호되어 있습니다. 보낼 때마다 먼저 묻습니다.
>
> GET https://api.alpenglow.example/v1/products?category=tents&in_stock=true&sort=-price&per_page=10

- <strong>취소</strong>가 기본 버튼입니다. <kbd>↩</kbd>는 취소하며 <kbd>Esc</kbd>도 마찬가지입니다. 보호된 환경에는 실수로 아무것도 나가지 않습니다.
- <strong>보내기</strong>(또는 <strong>연결</strong>, <strong>실행</strong>)는 전송합니다. 마우스로 클릭하세요.
- <strong>환경을 전환할 때까지 다시 묻지 않음</strong>은 다른 환경을 선택할 때까지 이 윈도우에서 질문을 멈춥니다. Echolot은 이 설정을 메모리에만 보관합니다.
  디스크에는 절대 기록되지 않으며 환경을 전환하거나, 윈도우를 닫거나, 종료하면 끝납니다.

<Shot id="workspaces-protected-send-question" alt="요청 페이지 위의 Production으로 보내시겠습니까? 질문: 취소가 기본 버튼이고 환경을 전환할 때까지 다시 묻지 않음 체크박스가 있음" />

## 에이전트는 대신 이렇게 합니다 [#what-agents-do-instead]

AI 에이전트는 보호된 환경을 혼자서는 절대 통과할 수 없습니다. 메서드나 작업 공간의 에이전트 규칙과 관계없이 그 환경으로 가는 모든 전송은 에이전트의
승인 시트에서 사용자에게 묻습니다. 시트에는 “보호된 환경이므로 메서드와 정책에 관계없이 모든 전송 전에 먼저 묻습니다.”라고 표시됩니다.
<strong>한 번 허용</strong>은 거기서 기본 버튼이 아니므로 <kbd>↩</kbd>로는 승인되지 않습니다. <strong>이 세션 동안 허용</strong>은 윈도우를 닫을 때까지 같은 호출이 묻지 않고
다시 나가게 하고, <strong>거부</strong>는 거절합니다.

이는 내장 [어시스턴트](/docs/ai/assistant)와 Echolot의 MCP 서버를 통한 [외부 에이전트](/docs/ai/agents)에 모두 적용됩니다. 작업 공간의 에이전트
규칙은 보호된 환경으로의 전송을 무조건 허용할 수 없습니다. `echolot mcp serve`가 물어볼 사람이 없는 헤드리스 상태로 실행되면 그 전송은
거부됩니다.

## 명령줄 [#the-command-line]

`echolot run`, `echolot send` 등의 명령은 묻지 않습니다. 명령줄에서 `--env production`을 선택하는 것이 곧 결정입니다. CI가 운영 환경에 절대 닿으면
안 된다면 운영 환경의 자격 증명을 CI의 비밀 값에 넣지 마세요.

## 팁 [#tips]

- Production만이 아니라 실제 데이터를 가리키는 모든 환경을 보호하세요.
- 상태 화면인 [Echo](/docs/ai/echo)는 보호된 환경이 활성인 동안 빨간색 알림을 표시합니다.
- 한동안 질문 없이 운영 환경에서 작업하려면 <strong>보호됨</strong>을 끄지 말고 <strong>환경을 전환할 때까지 다시 묻지 않음</strong>을 사용하세요. 그러면 팀원과 에이전트에게는
  보호가 유지됩니다.
