Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

에이전트 프록시 정책 운영

에이전트 프록시는 Foundry에서 직접 도달할 수 없는 네트워크의 시스템으로 연결 경로를 제공합니다. 연산을 에이전트 호스트에서 수행하는 Agent worker와 달리, Foundry 워커의 외부 통신 정책에 에이전트를 연결하여 사용합니다.

클라우드 Foundry에서는 인터넷에서 접근할 수 없는 사설 원천에 연결할 때 사용할 수 있습니다. Foundry가 사설 네트워크에 설치된 경우에는 다른 네트워크, 필요에 따라 직접 접근할 수 없는 인터넷 시스템으로 연결하는 데 사용할 수 있습니다. 여러 에이전트를 구성하고 유지보수 시간을 나누면 한 에이전트를 중단하는 동안 다른 경로를 유지할 수 있습니다.

소스에 연결하기

  1. 에이전트를 설치하고 Foundry 및 대상 시스템에 연결할 네트워크 경로를 준비합니다.
  2. 해당 에이전트를 사용하는 Agent proxy 외부 통신 정책을 생성합니다.
  3. Foundry 워커 소스에 그 정책을 연결합니다.

기존 Agent worker 소스에서 사용 중인 에이전트도 별도 에이전트 설치 없이 프록시로 재사용할 수 있습니다. 역할을 재사용하더라도 호스트 자원과 허용 목적지는 함께 검토합니다.

보안 통제의 계층

통제적용 조건관리 주체
소스 구성 강제항상 적용되며 끌 수 없습니다. 소스의 호스트 이름과 포트만 허용합니다.소스 구성에 따라 강제됩니다.
Foundry의 에이전트 허용 목록선택 사항이며 기본적으로 켜져 있지 않습니다.에이전트 리소스 Owner만 수정할 수 있습니다.
호스트의 로컬 허용 목록선택 사항이며 로컬 파일에서 적용합니다.호스트에 SSH 접근 및 필요한 파일 권한을 가진 관리자
호스트 방화벽추가적인 독립 통제이며 강하게 권장됩니다.호스트 및 네트워크 관리자

소스에 구성하지 않은 호스트나 포트로 연결하면 프록시는 HTTP 403을 반환합니다. 소스를 코드에서 사용하더라도 이 제한은 적용됩니다.

소스 구성 강제만 사용하는 경우에는 에이전트를 소스에 배정할 수 있는 사용자가 에이전트에서 도달 가능한 시스템에 연결할 수 있다는 점을 고려해야 합니다. 그런 사용자에게 넓은 목적지 선택 권한을 맡겨도 되는지 판단하고, 필요하면 에이전트 단위 허용 목록과 방화벽으로 범위를 더 제한합니다.

Foundry에서 IP 및 CIDR 허용 목록 설정

Agent settings의 Manage Configuration에서 Advanced를 켭니다. YAML의 security와 같은 깊이에 agentProxyConfiguration을 추가합니다.

다음은 예시 범위입니다. 실제 네트워크의 승인된 CIDR과 포트로 설정합니다.

agentProxyConfiguration:
  allowListedCidrs:
    - cidrBlock: '192.168.1.1/32'
      port: 7000
      endPort: 9000
    - cidrBlock: '192.168.2.2/24'
      port: 443

이 허용 목록은 배정된 소스와 관계없이 해당 에이전트가 연결할 수 있는 IP 주소 및 CIDR 범위를 제한합니다. endPort를 쓰면 시작 포트부터 끝 포트까지의 범위를 지정합니다.

호스트의 로컬 허용 목록

Foundry 사용자가 변경할 수 없는 추가 통제가 필요하면 에이전트 호스트에 같은 내용을 저장할 수 있습니다.

  1. 호스트에 SSH로 접속합니다.
  2. 버전별 magritte-bootvisor-... 디렉터리가 들어 있는 루트에 agentProxyConfig 폴더를 만듭니다.
  3. 그 안에 agentProxyConfig.yml을 만듭니다.
  4. 폴더와 파일은 root 사용자로 생성하고 에이전트가 쓸 수 없게 권한을 설정합니다.

파일 내용은 Foundry 설정의 agentProxyConfiguration 내부와 같습니다. 로컬 파일에서는 바깥 래퍼를 제외합니다.

allowListedCidrs:
  - cidrBlock: '192.168.1.1/32'
    port: 7000
    endPort: 9000
  - cidrBlock: '192.168.2.2/24'
    port: 443

agentProxyConfig.yml이 존재하면서 에이전트가 그 파일 또는 부모 디렉터리 중 하나에 쓸 수 있으면 프록시 기능은 실행되지 않습니다. 파일 하나만 읽기 전용으로 만드는 것으로 충분하지 않을 수 있으므로 전체 부모 경로의 쓰기 권한을 확인합니다.

호스트 방화벽은 이 파일과 별개로 작동합니다. Foundry로 가는 필수 연결과 승인된 원천만 허용하도록 구성합니다.

연결 풀

에이전트 프록시는 요청 처리를 위한 연결 풀을 유지합니다. Agent settings > Manage Configuration > Advanced의 같은 블록에서 크기를 조정할 수 있습니다.

옵션기본값의미
maxConnections300프록시가 열 수 있는 최대 연결 수
coreConnections20풀에서 유지하는 최소 연결 수

다음은 기본값이 아니라 변경 예시입니다.

agentProxyConfiguration:
  maxConnections: 250
  coreConnections: 100

Databricks 같은 일부 커넥터는 동시에 많은 연결을 열 수 있습니다. 연결 풀 고갈 오류가 나타나면 실제 부하에 맞춰 maxConnections와 coreConnections를 늘리는 방안을 검토합니다. 소스의 허용 목적지나 호스트 자원 한도를 넓히는 설정과는 구분합니다.

사설 IP만 있는 원천에는 host override를 사용하여 Foundry에서는 호스트 이름으로 연결하고 에이전트에서 해당 사설 IP로 해석하도록 구성할 수 있습니다.