AWS PrivateLink egress와 Snowflake 연결
AWS 호스팅 Foundry에서는 AWS PrivateLink로 AWS 서비스, 고객이 운영하는 AWS 리소스 또는 AWS에 있는 외부 API에 연결할 수 있습니다. Control Panel의 Network egress > Private links에서 관리합니다.
Endpoint service 준비
AWS 서비스가 PrivateLink를 기본 지원하면 AWS가 제공하는 endpoint service name을 사용하며 별도 서비스를 만들 필요가 없습니다. Bedrock이 그 예입니다.
이 Foundry PrivateLink 경로의 S3 연결은 지원하지 않습니다. S3에는 Bucket endpoint 및 같은 리전 S3 정책을 사용합니다. AWS 전체에서 S3의 어떤 프라이빗 연결도 불가능하다는 의미는 아닙니다.
고객이 운영하는 데이터베이스나 API는 AWS에서 대상의 endpoint service를 구성합니다. 다른 회사가 운영하는 API는 그 제공자에게 VPC endpoint service name을 요청합니다.
외부 서비스의 TLS 인증서가 AWS가 만든 기본 도메인에 유효하지 않다면 실제 private domain도 받아야 합니다. 설명용 Snowflake 이름의 형태는 abc.us-east-1.privatelink.snowflakecomputing.com입니다.
Palantir AWS 계정 허용
Control Panel에 표시된 Palantir 플랫폼의 AWS account ID를 확인하고 고객 endpoint service의 allowed principal 목록에 해당 계정을 추가합니다. 형식은 다음과 같습니다.
arn:aws:iam::<palantir_platform_aws_account_id>:root
이는 계정 principal의 ARN이며 고객이 임의의 다른 계정 ID를 넣어서는 안 됩니다.
Foundry 연결 생성
Control Panel > Network egress > Private links > New private link를 선택합니다.- 대상의 Endpoint service name을 입력합니다.
- Advanced settings에서 필요한 Private domains와 TCP ports를 지정합니다. Private domains는 실제 TLS 호스트 이름이며 Foundry가 이를 연결 반대편으로 매핑하는 CNAME을 만듭니다. 기본 포트는 443입니다.
- Create를 선택하고 상태를 확인합니다.
| 상태 | 의미 |
|---|---|
| Creating | 생성을 시작했습니다. |
| Creating cloud resources | 클라우드 리소스를 준비합니다. |
| Managing DNS | DNS 레코드를 관리합니다. |
| Waiting for cloud resources | AWS가 리소스를 만들기를 기다립니다. |
| Pending acceptance | 서비스 제공자의 연결 승인을 기다립니다. |
| Ready | 프라이빗 연결 생성이 완료되었습니다. |
실패 원인
Failed 상태에는 다음 원인이 표시될 수 있습니다.
| 원인 | 대응 |
|---|---|
| Failed | AWS endpoint service의 권한을 확인하고 연결을 다시 만듭니다. |
| Rejected | 서비스 소유자가 요청을 거부했습니다. 소유자에게 확인합니다. |
| Expired | 소유자가 제때 승인하지 않았습니다. 연결을 다시 만듭니다. |
| Timeout | 생성 시간이 초과되었습니다. 일시적 문제이면 삭제 후 다시 만들고 해결되지 않으면 Palantir Support에 문의합니다. |
| Validation failed | Palantir 관리자에게 유효성 검증 실패를 문의합니다. |
| Cloud provider error | 클라우드 리소스 생성 실패를 Palantir 관리자에게 문의합니다. |
| DNS management failed | DNS 관리 실패를 Palantir 관리자에게 문의합니다. |
도메인별 egress 정책
연결이 Ready가 되면 Actions > Create network egress policy에서 Private link 유형의 정책을 만들고 대상 포트를 지정합니다. 만든 정책은 Actions > View network egress policy에서 확인합니다.
- 기본 AWS 생성 도메인으로 접속한다면 그 도메인의 정책이 필요합니다. 외부 API의 실제 private domain만 사용하고 기본 도메인을 쓰지 않는다면 사용하지 않는 기본 도메인의 정책은 필요하지 않습니다.
- Zonal 도메인을 사용하면 해당 도메인의 정책도 만듭니다. 고객 VPC와 Foundry가 같은 AWS 가용 영역에 있을 때 같은 영역의 도메인이 더 효율적일 수 있습니다.
- 설정한 private domain을 사용할 때에는 각 도메인의 정책을 만듭니다.
실제 소스에는 승인된 Active 정책을 붙여야 합니다. 생성한 연결의 Ready와 정책 승인 상태는 별개입니다.
변경, 삭제와 공유
연결 상세 또는 목록의 Actions 메뉴를 사용합니다.
Actions > Update에서는 Private domains와 TCP ports를 바꿀 수 있습니다. Actions > Delete는 프라이빗 연결을 삭제합니다. 이 연결 리소스의 변경 및 삭제와, 목적지를 수정하거나 삭제할 수 없는 개별 egress 정책은 다른 대상입니다.
사용자가 연결을 사용하게 하려면 해당 도메인의 View network egress policy로 이동해 Actions > Manage sharing에서 사용자나 그룹에게 필요한 정책 접근을 부여합니다.
Data Connection 소스를 만들 때 기본 도메인 또는 외부 API 도메인을 사용하고 정책을 붙입니다. 설정한 뒤 소스 미리보기나 탐색으로 연결 및 반환 데이터가 올바른지 확인하는 운영 절차가 필요합니다.
Snowflake 연결
플랫폼 계정 허용 요청
Control Panel의 Private links에 표시된 플랫폼 클라우드 account ID를 확인합니다. Snowflake 지원 요청에는 클라우드 종류와 이 account ID, Snowflake account URL, Palantir와의 private connectivity 허용 요청임을 포함합니다.
이 경로에서는 SYSTEM$AUTHORIZE_PRIVATELINK를 직접 사용할 수 없습니다. Foundry 사용자는 기반 클라우드에 직접 접근하거나 필요한 federated_token을 받지 않으므로 Snowflake 지원을 통해 계정을 허용합니다.
연결 정보 가져오기
Snowflake의 ACCOUNTADMIN 역할로 다음 조회를 실행해 구성을 가져옵니다.
SELECT SYSTEM$GET_PRIVATELINK_CONFIG();
Foundry의 New private link에 Endpoint service name으로 privatelink-vpce-id를 입력합니다.
Advanced settings의 Private domains에는 계정에서 반환한 다음 관련 값을 반영합니다. OCSP 주소도 포함해 인증서 상태 확인 경로를 유지해야 합니다.
privatelink-account-urlprivatelink-connection-ocsp-urlsprivatelink-connection-urlsprivatelink-ocsp-urlregionless-privatelink-account-urlregionless-snowsight-privatelink-urlsnowsight-privatelink-url
여러 값을 반환하는 항목은 필요한 각 호스트를 확인합니다. TCP ports에는 443과 80을 지정합니다. Create 후 Ready 상태를 기다립니다.
Data Connection 소스
Data Connection > New Source > Snowflake에서 소스를 만듭니다. Connection details의 Account identifier에 해당 Snowflake 계정 ID를 입력하고 Private link 토글을 켭니다.
다음 조회는 해당 클라이언트 연결에 검토할 host 및 port 목록을 반환합니다.
SELECT SYSTEM$ALLOWLIST_PRIVATELINK();
반환값은 type, host와 port를 가진 항목의 배열이며 같은 type의 항목이 여러 개 있을 수 있습니다. 목록을 검토해 사용하는 클라이언트와 필요한 endpoint의 정책을 빠짐없이 구성합니다. STAGE 항목에는 S3 저장소 경로의 추가 허용도 필요합니다. 이전 구성은 S3 bucket policy를 사용하며 새 방식의 적용은 클라우드 저장소 egress와 구분합니다.
Private link 정책은 wildcard를 지원하지 않으므로 반환된 패턴을 검토 없이 그대로 private 정책에 넣지 않습니다. 실제로 필요한 구체적인 목적지와 클라이언트 기능을 확인합니다. 계정, 연결 및 저장소 인증과 권한은 네트워크 허용과 별도로 유지합니다.