송신 IP 주소를 사용하여 Snowflake 요청의 수신 보안

리소스의 네트워크 방화벽을 통해 Snowflake에서 생성된 송신 IP 주소 범위를 허용하여 Snowflake에서 외부 리소스로의 수신 액세스를 안전하게 허용할 수 있습니다.

Snowflake 송신 IP 주소 범위(Classless Inter-Domain Routing(CIDR) 주소) 목록을 생성하여 외부 서버의 네트워크 방화벽을 통한 액세스를 허용할 때 Snowflake를 나타내는 데 사용할 수 있습니다.

지원되는 용도

Snowflake로 생성한 송신 IP 주소를 사용하여 다음 Snowflake 기능에서 수신 액세스를 허용할 수 있습니다.

  • :doc:`UDFs 및 프로시저 </developer-guide/external-network-access/external-network-access-overview>`에서 외부 액세스

  • Snowpark Container Services 외부 액세스 및 Snowpark Container Services의 및 Snowflake Openflow

송신 IP 주소 범위 생성

Snowflake가 SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES 함수를 통해 송신 트래픽에 사용하는 IP 주소 범위를 생성할 수 있습니다.

생성된 IP 주소는 만료되므로 지속적인 요구 사항을 충족하려면 :ref:`label-network_egress_refreshing`에 설명된 대로 외부 서버의 방화벽을 최신 상태의 송신 IP 주소로 자동 새로 고침하는 수단을 설정해야 합니다.

Snowflake 송신 IP 주소를 생성하고 사용하려면 다음 단계를 따릅니다.

  1. :doc:`/sql-reference/functions/system_get_snowflake_egress_ip_ranges`를 호출하여 현재 및 향후 IP 범위와 해당 만료 시간을 확인합니다.

    다음 코드는 함수의 출력 예제를 보여줍니다.

    SELECT
     value: "ipv4_prefix":: VARCHAR AS IP_CIDR_RANGE_FOR_REGION,
     value: "effective":: TIMESTAMP AS IP_CIDR_RANGE_EFFECTIVE,
     value: "expires":: TIMESTAMP AS IP_CIDR_RANGE_EXPIRATION
    FROM TABLE(FLATTEN (INPUT => PARSE_JSON(SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES())));
    
    Copy
    +--------------------------+-------------------------+--------------------------+
    | IP_CIDR_RANGE_FOR_REGION | IP_CIDR_RANGE_EFFECTIVE | IP_CIDR_RANGE_EXPIRATION |
    +--------------------------+-------------------------+--------------------------+
    | 153.45.34.0/24           | 2025-08-01 00:00:00.000 | 2026-05-06 01:33:26.726  |
    | 153.45.77.0/24           | 2025-08-01 00:00:00.000 | 2026-05-06 01:33:26.726  |
    +--------------------------+-------------------------+--------------------------+
    
    • IP CIDR RANGE_EFFECTIVE 열에는 범위가 트래픽을 전달하기 시작하는 시작 날짜가 표시됩니다. 새 범위가 “발효”되기 최소 60일 전에 함수 출력에 나타나야 합니다.

    • IP CIDR RANGE_EXPIRATION 열에는 IP 범위가 트래픽 전달을 중지하는 날짜가 표시됩니다.

  2. IP 범위를 통해 :ref:`label-network_egress_refreshing`에 설명된 대로 또는 APIs, CLIs 또는 구성 관리 도구를 사용하여 방화벽 규칙을 업데이트합니다.

IP 주소 범위 새로 고침 자동화

Snowflake 송신 IP 주소가 만료됩니다. 액세스 보안을 유지하려면 외부 서버의 방화벽을 통해 허용된 Snowflake 송신 IP 주소를 최신 상태로 업데이트해야 합니다.

IP 주소를 최신 상태로 유지하려면 외부 서버에 대한 이러한 업데이트를 매일 또는 매주 등 정기적으로 트리거하는 메커니즘을 구현합니다. 예를 들어, :ref:`사용자 환경의 도구를 사용 <label-network_egress_automation>`하여 이를 수행할 수 있습니다.

업데이트하려면 스크립트에서 다음 단계를 따릅니다.

  1. :doc:`/sql-reference/functions/system_get_snowflake_egress_ip_ranges`를 사용하여 Snowflake 송신 IP 주소 범위를 검색합니다.

  2. 새로 검색된 범위를 현재 사용 중인 범위와 비교합니다.

    주소 범위가 다른 경우에만 업데이트를 수행하여 불필요한 변경을 방지할 수 있습니다.

    • 다르지 않은 경우 스크립트가 만료 날짜를 사용하여 다시 확인할 시간을 설정하도록 합니다(예: 만료 며칠 전).

    • 새로 검색한 목록이 다른 경우 새 주소로 프로그래밍 방식으로 방화벽 규칙을 업데이트합니다. 그런 다음 스크립트가 확인할 새 날짜를 설정하도록 할 수 있습니다(예: 새 만료 며칠 전).

  3. 스크립트에 의한 변경 사항을 기록하고 업데이트 성공 또는 실패에 대한 경고를 설정합니다.

사용자 환경의 도구를 사용하여 업데이트 자동화

스크립트와 도구를 사용하여 Snowflake IP 주소를 최신 상태로 유지하는 데 필요한 작업을 자동화할 수 있습니다. 다음은 두 가지 예에 대한 설명입니다.

  • AWS, Azure, Google Cloud와 같은 클라우드 공급자의 APIs 및 CLIs를 사용한 스크립팅

    클라우드 환경의 경우 Python, PowerShell, Bash와 같은 도구를 사용하여 스크립트를 작성할 수 있습니다. 해당 도구로 수행할 수 있는 작업은 다음과 같습니다.

    1. :doc:`/sql-reference/functions/system_get_snowflake_egress_ip_ranges`를 호출하여 최신 IP 주소 범위 및 만료 날짜를 검색합니다.

    2. 클라우드 공급자의 API 또는 CLI를 사용하여 보안 그룹 규칙, 네트워크 ACLs 또는 방화벽 정책을 업데이트합니다.

    3. cron 작업을 통해 이러한 작업을 수행하는 스크립트가 주기적으로(예: 매일 또는 매주) 실행되거나 만료 날짜를 기준으로 실행되도록 예약합니다. 이러한 작업은 Snowflake 작업과 함께 저장 프로시저를 사용하여 실행할 수 있습니다.

  • 코드로서의 인프라(IaC) 도구

    Terraform, Ansible 또는 CloudFormation과 같은 도구를 사용하여 방화벽 규칙을 코드로 관리할 수 있습니다. 아래에 설명된 접근 방식은 방화벽 규칙 변경 사항에 대한 버전 제어 및 감사 추적도 제공합니다.

    이러한 도구를 사용하여 다음 작업을 수행할 수 있습니다.

    1. IaC 구성에서 방화벽 규칙을 정의합니다.

    2. :doc:`/sql-reference/functions/system_get_snowflake_egress_ip_ranges`를 호출하여 최신 IP 주소 범위 및 만료 날짜를 검색합니다.

    3. 새 Snowflake 송신 IP 범위를 사용할 수 있는 경우 IaC 구성을 새 범위로 업데이트합니다.

    4. IaC 도구를 통해 변경 사항을 적용하여 방화벽 규칙이 프로그래밍 방식으로 일관되게 업데이트되도록 합니다.