개요
네트워크 송신 정책은 에이전트의 런타임 포드가 도달할 수 있는 외부 호스트를 제어합니다. 송신 정책은 에이전트 파일 에 선언되고 에이전트 배포 때 적용됩니다. 모든 작업 공간은 deny_all 모드 에서 시작되며, 이는 런타임이 Atlas Agent Engine 기본 정책을 초과하는 아웃바운드 연결을 허용하지 않음을 의미합니다. 이 가이드 에서는 에이전트 에 필요한 대상을 선언하고 아웃바운드 액세스 태세를 설정하다 방법을 학습 . 에이전트 파일 의 sandboxes 차단 에 있는 각 샌드박스에 대해 두 가지를 모두 구성합니다.
각 샌드박스의 송신 정책은 network.egress에서 선언하는 대상과 network.egress_mode에서 설정하다 송신 모드 , 이렇게 두 부분으로 구성됩니다. 모드 는 플랫폼이 해당 대상(allow_list, deny_all 또는 allow_all)을 적용하는 방법을 결정합니다.
기본 정책은 항상 다음 대상에 대한 아웃바운드 트래픽을 허용합니다.
DNS
동일한 네임스페이스 의 서비스
작업 공간에 연결된 Atlas cluster
기본 정책은 이러한 대상을 포함하므로 어느 것도 송신 대상으로 추가하지 않습니다.
팁
Atlas cluster 작업 공간에 연결하는 방법을 학습 보려면 네트워크 이그레스용 Atlas 클러스터 연결 가이드 참조하세요.
이그레스 정책은 다음과 같은 방법으로 관리 .
첫 번째 배포 전에 에이전트 파일 송신 정책을 선언해야 합니다.
agent.yaml파일 의sandboxes.agent.network및sandboxes.tool.network아래에서 각 샌드박스에 대한 정책을 선언합니다.egress차단 대상을 나열하고egress_mode는 모드 를 설정합니다.에이전트 배포하여 송신 정책을 적용 . 배포에는
Project Owner역할 필요합니다.초기 배포 후 송신 정책을 업데이트 할 수 있습니다.
agentengine agent egress add및agentengine agent egress remove를 사용하여 각 샌드박스의network.egress차단 편집하고agentengine agent egress mode을 사용하여network.egress_mode를 설정하다 . 변경 사항을 적용하려면 에이전트 다시 배포하세요.agentengine egress또는 작업 공간 아웃바운드 액세스 UI 사용하여 현재 배포된 정책을 검사합니다. 이 보기는 정책을 편집하지 않습니다.
참고
Atlas Agent 엔진은 Atlas 외부의 대상에 대해 다음 이그레스 IP 주소를 사용합니다.
34.196.57.8554.227.181.25
에이전트 Salesforce와 같은 외부 서비스를 호출하는 경우 외부 서비스의 허용 목록에 이러한 주소가 포함되어야 합니다.
전제 조건
시작하기 전에 다음 전제 조건을 충족하는지 확인하세요.
agentengineCLI 버전 0.1.54-alpha 이상이 설치되어 있고PATH환경 변수에서 사용할 수 있습니다. 자세한 학습 은 설치 및 인증 가이드 참조하세요.agentengine auth login명령을 사용하여 플랫폼에 인증할 수 있습니다.에이전트 를 배포 하고 이그레스 정책 변경 사항을 적용 할 수 있는 프로젝트 소유자 역할 있습니다.
송신 정책의 작동 방식
다음 섹션에서는 송신 정책을 구성하는 샌드박스, 모드 및 동작에 대해 설명합니다.
Sandboxes
송신 범위는 샌드박스별로 지정됩니다. 에이전트 샌드박스와 도구 샌드박스를 독립적으로 제어합니다.
Sandbox | 설명 |
|---|---|
| 에이전트 샌드박스. 메인 에이전트 프로세스. |
| 도구 샌드박스. 도구 샌드박스에서 실행 하도록 구성한 도구를 실행합니다. 기본값 으로 도구는 에이전트 샌드박스에서 실행 . |
agent.yaml에서 sandboxes.agent.network 또는 sandboxes.tool.network 아래에 각 샌드박스의 정책을 선언합니다. CLI 명령의 경우 --component agent 또는 --component tool를 사용합니다.
동일한 샌드박스에 있는 도구는 해당 샌드박스에 허용된 모든 이그레스 대상에 연결할 수 있습니다. 샌드박스가 도구 간에 비밀과 네트워크 액세스 주식 방법을 학습 보려면 MongoDB Atlas Agent Engine 제한을 참조하세요.
모드
각 샌드박스는 다음 모드 중 하나에서 작동하며, 이 모드는 에이전트 파일 에서 샌드박스의 network.egress_mode 필드 사용하여 설정하다 .
모드 | 행동 |
|---|---|
| 잠김. 플랫폼 기본 정책만 활성화됩니다. 사용자가 정의한 대상에 연결할 수 없습니다. |
| 플랫폼 기본 정책이 활성화되어 있으며 |
| 열기. 런타임은 기본 정책 외에도 모든 호스팅하다 에 대한 아웃바운드 트래픽을 허용합니다. |
동일한 샌드박스의 대상 목록과 allow_all을 결합할 수 없습니다. 대상도 나열하는 샌드박스에 allow_all을 설정하다 에이전트 파일 유효성 검사 실패합니다.
배포가 이그레스 정책을 적용하는 방법
agent.yaml 파일 을(를 ) 배포 때 적용된 송신 정책의 진실 소스입니다. 첫 번째 배포 전에 샌드박스에 대해 network.egress_mode을(를) 설정하여 파일 에서 이그레스 정책을 선언합니다. allow_list의 경우 network.egress에서도 대상을 선언합니다. 파일 이 송신 정책을 선언하지 않으면 배포가 거부됩니다.
을 (배포 하면 플랫폼이 정책을 작업 공간에 적용합니다. 파일 에 선언된 모드 는 샌드박스의 기존 모드 보다 우선합니다.
배포서버 후 agentengine egress 또는 작업 공간 아웃바운드 액세스 UI 사용하여 적용된 설정을 확인합니다.
참고
에이전트 가 MCP 서버를 사용하는 경우, 각 서버의 호스트 이름이 해당 서버를 호출하는 샌드박스의 network.egress 차단 에 나열되어 있는지 확인합니다. 서버 mcp.servers 차단 아래에 나열한다고 해서 아웃바운드 액세스 저절로 열리지는 않습니다.
역할 기반 액세스 제어
RBAC(역할 기반 액세스 제어)를 사용하여 액세스 지정할 수 있습니다. 송신 작업에는 다음과 같은 역할이 필요합니다.
작업 | 필수 역할 |
|---|---|
배포된 이그레스 정책( | 프로젝트 멤버(읽기) |
로컬 에이전트 파일 ( | 로컬에서 역할 필요 없음 |
에이전트 배포하여 파일의 송신 정책을 적용 . | 프로젝트 소유자 |
프로젝트 멤버(읽기) 역할 있는 사용자는 배포된 정책을 검사할 수 있습니다. 로컬 에이전트 파일 편집하는 데에는 역할 필요하지 않지만, 에이전트 배포하여 변경 사항을 적용 하려면 프로젝트 소유자 역할 필요합니다.
에이전트 파일에서 이그레스 정책 설정
에이전트 파일 의 sandboxes.agent 및 sandboxes.tool 아래에 있는 network 차단 의 각 샌드박스에 대한 송신 정책을 구성합니다. 에이전트 파일 에 대한 변경 사항은 에이전트 배포 후에만 적용됩니다.
샌드박스의 network.egress 차단 사용하여 해당 샌드박스에 외부 호스트 이름을 허용합니다. 다음 예시 도구 샌드박스만 여러 호스트에 연결할 수 있도록 허용합니다.
sandboxes: agent: network: egress_mode: deny_all tool: network: egress: - fqdn: api.openai.com ports: [443] - fqdn: "*.googleapis.com" ports: [443] - fqdn: db.example.com # Omit ports, or use an empty list, to allow all ports to # this destination.
두 샌드박스 모두에 호스팅하다 허용하려면 각 샌드박스 아래에 호스트를 나열합니다.
샌드박스의 network.egress_mode 필드 사용하여 샌드박스의 상태를 설정하다 . 유효한 값은 deny_all, allow_list 및 allow_all입니다. egress_mode를 생략하면 대상을 나열하는 샌드박스가 자동으로 allow_list를 사용합니다.
다음 규칙이 sandboxes 차단 에 적용 .
sandboxes을 선언할 때sandboxes.agent을 포함해야 합니다.둘 중 하나의 샌드박스가 송신을 선언하는 경우 송신을 선언하지 않는 샌드박스는
deny_all을 사용합니다.샌드박스 내부가 아닌 최상위
network.atlas_clusters차단 에서 Atlas 클러스터를 선언합니다.
팁
에이전트 파일 최상위 network 차단 에서 egress 또는 egress_mode을 선언하는 경우, 에이전트 프로젝트 디렉토리 에서 agentengine migrate sandboxes를 실행 정책을 sandboxes 차단 으로 이동합니다.
참고
새 정책을 적용하려면 에이전트 파일 변경 후 에이전트 다시 배포하세요. 이 플랫폼은 런타임이 아닌 배포 시 송신 정책을 적용합니다.
FQDN(정규화된 도메인 이름) 규칙
이 플랫폼은 다음 대상을 허용합니다.
호스트 이름(예:
api.openai.com또는storage.googleapis.com)하위 도메인 수준이 하나인 선행 레이블 와일드카드(예:
*.example.com두 개의 하위 도메인 수준이 있는 선행 레이블 와일드카드(예:
*.*.example.com모든 하위 도메인 수준과 일치하는 재귀 와일드카드(예:
**.example.com). 이 플랫폼은**.com과 같은 패턴도 허용합니다.
플랫폼은 다음 대상을 거부합니다.
다음과 같은 IP 리터럴
1.2.3.4다음과 같은 CIDR 범위
10.0.0.0/8localhost,*.local,*.svc.cluster.local클라우드 메타데이터 엔드포인트(예:
*.metadata.google.internal및169.254.169.254)베어 와일드카드(예:
*및**)선행하지 않는 와일드카드(예:
api.*.com단일 레이블 와일드카드가 2개 이상 있는 패턴은 다음과 같습니다.
*.*.*.example.com예약된 접미사(예:
.arpa,.test,.example,.invalid)
대상이 이러한 규칙 중 하나라도 위반하면 유효성 검사 실패하고 대상이 적용되지 않습니다. agentengine agent validate를 실행 로컬에서 오류를 포착할 수 있습니다. 플랫폼은 빌드 경로 중에 동일한 유효성 검사 적용합니다. 이 오류는 fqdn_ip_literal 또는 fqdn_wildcard_misuse와 같은 이유를 예시 합니다.
IP addresses are not allowed; declare a hostname such as api.example.com
각 대상은 1 ~ 65535의 포트 범위 , 대상당 최대 10 포트, 작업 공간당 최대 50 대상을 지원합니다.
대상에 대한 포트를 생략하면 플랫폼은 해당 대상에 대한 모든 포트를 허용하고 비차단 경고를 반환합니다.
참고
이 플랫폼은 *.mongodb.net와 같은 Atlas cluster 호스트 이름을 허용하지만, 송신 대상이 Atlas 액세스 구성하지 않기 때문에 저장 시 경고를 반환합니다. 에이전트 에 Atlas cluster 에 대한 액세스 부여하려면 agentengine atlas 명령 또는 agent.yaml 파일 의 network.atlas_clusters 차단 사용합니다.
CLI 로 송신 구성
에이전트 프로젝트 디렉토리 에서 agentengine egress 명령을 사용하여 에이전트 파일 편집하고 배포된 정책을 검사합니다. 이 명령은 실행 정책을 직접 변경하지 않습니다.
배포된 정책 보기
두 샌드박스에 대한 현재 정책을 보려면 agentengine egress 명령을 사용할 수 있습니다. 특정 작업 공간에 대한 정책을 보려면 --workspace 플래그를 사용합니다. 다음 예시 이러한 명령을 보여 줍니다.
View the deployed policy for both sandboxes agentengine egress View the policy for a specific workspace agentengine egress --workspace my-workspace
agentengine egress 명령은 보기 전용입니다. 파일 기반 정책을 변경하려면 agent.yaml를 편집하거나 agentengine agent egress add 및 agentengine agent egress remove를 사용한 다음 에이전트 를 재배포합니다.
대상 추가 또는 제거
agentengine agent egress add 및 agentengine agent egress remove 명령은 로컬 에이전트 파일 에서 각 샌드박스의 network.egress 차단 편집합니다. 한 번에 하나의 대상을 변경하고 목록의 나머지 부분은 변경되지 않습니다. --component 플래그를 사용하여 하나의 샌드박스를 대상으로 합니다. 플래그를 생략하면 명령이 두 샌드박스를 모두 업데이트 . 이러한 로컬 편집은 에이전트 배포 때까지 배포된 정책을 변경하지 않습니다. 단일 대상을 변경하려면 다음 명령을 사용합니다.
Add a destination for both sandboxes agentengine agent egress add api.openai.com:443 Add a destination with multiple ports for the tool sandbox only agentengine agent egress add --component tool '*.mongodb.net:443,27017' Stop allowing a destination agentengine agent egress remove api.openai.com
포트가 없는 베어 FQDN을 agentengine agent egress remove에 전달합니다. 에이전트 를 배포 후 agentengine egress 명령 또는 작업 공간 아웃바운드 액세스 UI 사용하여 새 설정을 확인합니다.
명령은 다음과 같이 작동합니다.
대상 샌드박스가
deny_all에 있는 경우,add은 이를allow_list로 전환하고mode: deny_all → allow_list을 출력합니다.대상 샌드박스가
allow_all에 있는 경우,allow_all모드 에서는 대상이 영향을 미치지 않으므로add는 파일 변경하지 않고 그대로 둡니다. 대상을 추가하려면 먼저agentengine agent egress mode명령을 사용하여 모드 를allow_list로 설정하다 .remove가 샌드박스의 마지막 대상을 제거하면 샌드박스는deny_all로 돌아가서no destinations remain; mode set to deny_all를 인쇄합니다.동일한 FQDN과 동일한 포트를 의미하는 정확한 복제본을 추가해도 아무런 효과가 없습니다.
송신 모드 업데이트
agentengine agent egress mode를 사용하여 로컬 에이전트 파일 에서 각 샌드박스의 network.egress_mode 값을 설정하다 . --component 플래그를 사용하여 하나의 샌드박스를 대상으로 지정합니다. 이러한 변경 사항을 적용하려면 에이전트 배포합니다.
다음 예시에서는 송신 모드 업데이트 방법을 보여줍니다.
Set allow-list mode agentengine agent egress mode allow_list Set deny-all mode agentengine agent egress mode deny_all Set allow-all mode agentengine agent egress mode allow_all --confirm-allow-all
agentengine agent egress mode 명령은 로컬 에이전트 파일 만 편집합니다. 변경 사항을 적용하려면 에이전트 배포합니다.
다음 단계
단계별 튜토리얼에서 네트워크 송신을 구성하는 방법을 학습 네트워크 송신 시작하기 가이드 참조하세요.