Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Foundry의 외부 연결 정책

Network egress는 Foundry 안에서 외부 시스템으로 연결을 시작하는 트래픽입니다. 연결을 시작한 방향을 뜻하므로 그 연결로 데이터를 가져오거나 밖으로 내보낼 수 있습니다. 외부에서 Foundry로 연결을 시작하는 ingress와 구분합니다.

고객 관리 egress 정책은 Cilium과 eBPF 기반 컨테이너 네트워킹으로 개별 작업의 방화벽 규칙을 적용합니다. Palantir 정보보안팀이 인프라 프록시 수준에서 관리하는 규칙도 함께 적용합니다.

대상에는 Foundry worker를 사용하는 Data Connection 소스, 외부 연결 변환과 함수, 외부 스트리밍 UDF, 실시간 모델 배포의 외부 어댑터와 Code Workbook 등이 포함됩니다. 신뢰하는 외부 목적지도 데이터를 반출하는 경로가 될 수 있으므로 정책 사용자를 제한하고 외부 호출 로직의 변경 검토 및 감사를 운영해야 합니다.

정책 생성과 종류

Control Panel의 Network egress에서 Request network egress policy로 시작합니다. 생성한 정책의 목적지는 수정할 수 없습니다. 정책 자체도 삭제하지 않고 필요 없어지면 Revoke로 폐기합니다.

종류연결 경로
Direct connectionFoundry 네트워크에서 외부 목적지로 직접 연결합니다.
Agent proxy고객 네트워크의 Data Connection 에이전트를 통해 연결합니다.
Secure tunnel고객 네트워크의 initiator가 연 터널을 통해 연결합니다.
Private link같은 클라우드의 프라이빗 연결로 지정한 목적지에 접근합니다.
Bucket endpoint현재 AWS에서 같은 리전의 S3 버킷에 연결할 때 사용하는 VPC endpoint 경로를 허용합니다.

Direct connection

클라우드 Foundry에서는 인터넷의 REST API나 클라우드 시스템에 직접 연결하는 경로입니다. 온프레미스 Foundry에서는 그 설치의 네트워크에 연결된 시스템에 접근합니다. 목적지 시스템은 Foundry의 발신 주소를 허용해야 합니다.

설정허용 값
AddressDNS 이름, 단일 IPv4 또는 IPv4 CIDR
Port(s)1~65535. DNS 주소에는 단일 포트를 지정합니다. 포트 구간을 사용할 때에는 시작이 끝보다 작거나 같아야 합니다.
ProtocolTLS, TCP 또는 UDP

포트 443과 SNI

인프라는 기본적으로 포트 443 연결에서 SNI(Server Name Indication)를 검사하려고 합니다. FTP(S), SFTP나 많은 TCP 데이터베이스 연결처럼 SNI를 보내지 않는 비 HTTPS 프로토콜을 443에서 사용하면 연결이 멈추거나 시간 초과 오류가 발생할 수 있습니다.

해당 정책이 443에서 비 HTTPS 트래픽을 보내도록 설계되었다면 관리자가 정책의 SNI 검사를 끌 수 있습니다. 인증서 검증이나 외부 시스템 인증을 불필요하게 해제하는 대체책으로 사용하지 않습니다.

Wildcard 주소

Direct connection과 Agent proxy는 동적 하위 도메인을 위해 wildcard를 지원합니다. Azure SQL redirect, Kafka 노드와 MongoDB SRV 같은 구성이 예입니다.

Wildcard는 도메인 맨 왼쪽 레이블 하나여야 하며 정확히 한 단계의 하위 도메인에 일치합니다. *.domain.com은 bar.domain.com에 일치하지만 domain.com이나 bar.baz.domain.com에는 일치하지 않습니다.

패턴사용 가능 여부
*.domain.com가능
*.com, *.co.uk, *.github.ioPublic suffix이므로 불가
*.s3.amazonaws.comPublic suffix이므로 불가
subdomain.*.com중간 레이블 wildcard이므로 불가
*.*.domain.com여러 wildcard이므로 불가

Private link와 Bucket endpoint 정책은 wildcard를 지원하지 않습니다. Secure tunnel의 주소 형식은 아래의 해당 정책 설정을 따릅니다.

Agent proxy

Foundry 작업은 목적지에 직접 연결하는 것처럼 동작하지만 실제 트래픽은 에이전트로 전달됩니다. 목적지에 Foundry가 새 인바운드 연결을 시작하는 방식이 아니므로 목적지 방화벽은 Foundry 대신 에이전트 호스트의 연결을 허용해야 합니다. 에이전트에서 목적지로 나가는 연결도 가능해야 합니다.

설정의미
AddressDNS, 단일 IPv4 또는 IPv4 CIDR입니다. DNS는 한 단계 wildcard를 지원합니다.
Port(s)1~65535입니다. DNS에는 단일 포트, 구간에는 시작 및 끝을 지정합니다.
Agent(s)연결할 에이전트입니다. 여러 개를 선택하면 목록에서 무작위로 하나에 트래픽을 배정합니다.

10.x.x.x 같은 사설 IP가 Foundry 내부 인프라 주소와 충돌해 라우팅되지 않을 수 있습니다. 사설 IP로만 접근하는 원천에는 에이전트의 host overrides로 별칭 도메인을 해당 사설 IP에 매핑하는 구성을 사용합니다. 에이전트 구성을 참조합니다.

지원 작업은 Data Connection의 일반 기능, 외부 변환, 배포된 외부 함수, 외부 스트리밍 UDF, Code Workspaces와 Compute modules입니다. 외부 변환의 Preview는 VS Code에서만 지원합니다. Agent proxy 정책을 쓰는 소스의 Virtual tables는 지원하지 않습니다. Foundry 로그인용 OIDC 인증에도 Agent proxy 정책을 사용할 수 없습니다.

Secure tunnel

고객 네트워크 안의 initiator가 연 터널로 트래픽을 전달합니다. Foundry가 목적지에 새 인바운드 연결을 시작하지 않으므로 목적지에서 Foundry의 인바운드 연결을 허용할 필요는 없습니다. 대신 initiator에서 목적지로 아웃바운드 연결이 가능해야 하고, 목적지는 initiator의 연결을 허용해야 합니다. Initiator의 자체 egress allowlist에도 목적지가 있어야 합니다.

설정의미
AddressDNS, 단일 IPv4 또는 IPv4 CIDR입니다. DNS는 한 단계 wildcard를 사용할 수 있습니다.
Port(s)1~65535입니다. DNS는 단일 포트이며 IP 범위에는 시작 및 끝 포트를 지정할 수 있습니다.
ProtocolTCP 또는 UDP
Secure tunnel cluster연결된 initiator 사이에서 부하를 분산할 클러스터

클러스터와 자체 허용 목록의 구성은 Secure tunnels를 참조합니다.

지정한 DNS 주소의 트래픽을 선택한 프라이빗 연결로 보냅니다. 주소는 구체적인 이름이어야 하며 wildcard는 지원하지 않습니다. Foo와 bar처럼 다른 호스트를 쓰려면 각각 정책을 만듭니다. 포트는 1~65535 범위에서 DNS 목적지의 단일 포트를 지정합니다.

이전에는 private link 도메인에 Direct connection 정책을 사용했습니다. 기존 정책은 계속 동작하며 Private link 정책으로 자동 이전됩니다.

이 정책을 사용하는 소스의 Virtual tables와 Iceberg BYOB 저장소는 지원하지 않습니다. Foundry 로그인용 OIDC 인증에도 Private link 정책을 사용할 수 없습니다. 프라이빗 연결 구성과 연결 리소스 자체의 포트 및 DNS 설정도 함께 맞춰야 합니다.

정책 권한

작업권한과 동작
Propose모든 Foundry 사용자가 제안할 수 있습니다. 승인 전에는 사용할 수 없으며 Control Panel Approvals에 표시됩니다.
Approve/Create, Update metadata, RevokeManage network egress configuration 작업 권한 묶음이 필요합니다. 기본적으로 Enrollment Administrator와 Information Security Officer에 포함됩니다.
PausePalantir 정보보안팀이 위험하다고 판단한 연결을 차단합니다. 잘못 중지되었다고 판단하면 상세 정보와 함께 지원 요청을 보냅니다.
View정책의 존재를 볼 수 있지만 작업에 가져와 사용하지는 못합니다.
Import정책을 보고 가져와 작업에서 사용할 수 있습니다.

관리자는 승인 시 View 및 Import를 받을 사용자와 그룹을 정하고 나중에는 정책의 Manage Sharing에서 바꿀 수 있습니다. 향후 정책이 필요할 수 있는 사용자는 우선 Viewer로 두어 존재를 발견하게 할 수 있습니다.

Import 사용자는 해당 목적지와 통신하는 임의의 코드를 실행할 수 있습니다. 필요한 소스 하나의 정해진 호출만 허용한다고 해석하면 안 됩니다. 조직의 보안 기준을 이해하고 신뢰하는 개발자에게 부여합니다.

Enrollment Administrators와 Information Security Officers는 프로젝트 자체에 접근하지 못해도 정책이 어느 프로젝트에 import되었는지 볼 수 있습니다. 정책 사용을 조사하고 폐기 또는 제한할지 판단하기 위한 관리 메타데이터입니다.

정책 상태

상태실행 영향
Pending approval새 정책의 기본 상태입니다. 작업에 붙일 수는 있지만 이를 사용하는 작업은 실행에 실패합니다.
Active승인된 정책입니다. Importer가 작업에 붙여 해당 목적지로 연결할 수 있습니다.
PausedPalantir 정보보안팀이 중지한 상태입니다. 이를 사용하는 작업은 실패합니다.
Revoked인스턴스의 권한 있는 담당자가 폐기한 상태입니다. 이를 사용하는 작업은 실패합니다.

작업에 적용

정책은 기본적으로 필요한 작업에 명시적으로 붙이는 opt-in 방식입니다. Palantir가 정책을 관리하는 환경에서는 담당자에게 상세를 전달해 검토받습니다. 셀프서비스 환경에서는 승인한 정책을 방화벽에 적용합니다.

Foundry worker를 사용하는 Data Connection 소스는 생성 또는 구성 시 네트워크 정책을 지정합니다. 해당 정책의 Importer 권한이 필요합니다.

Code Workbook에는 세분화된 네트워크 관리가 아직 제공되지 않아 전역 정책을 사용하는 경로가 있습니다. 전역 정책은 모든 작업에 구분 없이 적용하므로 매우 신뢰하는 경로에만 사용해야 합니다.

코드 리소스 또는 변환에는 최대 10개 소스를 가져올 수 있으며, 이 소스들의 TCP 수준 allowlisting 정책은 합계 최대 50개입니다.

TCP 수준 allowlisting

Direct connection의 포트 80과 443을 제외한 정책에는 TCP 수준 allowlisting이 필요합니다. 80이나 443에서도 HTTP(S)가 아닌 프로토콜을 보내려면 이를 켜야 합니다.

이는 허용 검사를 적용하는 네트워크 계층에 관한 선택이며 TLS 암호화 유무와는 구분합니다. Egress 관측은 TCP 수준 allowlisting을 사용하는 정책에만 제공됩니다.

겹치는 정책과 발신 주소

같은 목적지 또는 단일 IP와 CIDR처럼 겹치는 정책도 생성할 수 있습니다. 작업이 참조하는 정책이 Active이면 그 정책으로 허용을 평가하고, Paused 또는 Revoked를 사용하면 실패합니다. 같은 목적지의 다른 정책 상태를 보고 현재 작업의 정책이 사용 가능하다고 판단하지 않습니다.

중복 제안을 받은 관리자는 거부하거나, 거부한 뒤 기존 정책의 Import 권한을 부여하거나, 중복을 승인할 수 있습니다. 중복 승인은 관리상 권장하지 않습니다.

Palantir 클라우드의 발신 IP는 Control Panel Network egress에 표시된 CIDR을 목적지 허용 목록에 사용합니다. Agent proxy는 에이전트 호스트의 주소에서 원천으로 연결하므로 고객이 그 구간을 관리해야 합니다.

같은 클라우드의 저장소는 일반 정책 외에 S3 및 Azure Storage 경로를 추가 구성해야 할 수 있습니다. 외부 시스템의 신뢰 인증서는 egress 인증서에서 관리합니다.