네트워크 정책

네트워크 정책은 Snowflake 서비스의 네트워크 구성을 관리하기 위한 옵션을 제공합니다.

네트워크 정책에서는 사용자 IP 주소를 기준으로 사용자 계정에 대한 액세스 제한을 허용합니다. 실질적으로 네트워크 정책을 사용하면 원하는 경우 IP 허용 목록 및 IP 차단 목록 을 만들 수 있습니다.

참고

현재 미리 보기 로 제공되는 네트워크 규칙 을 네트워크 정책과 결합하여 네트워크 액세스를 제한할 수 있습니다. 네트워크 규칙에는 다음과 같은 이점이 있습니다.

  • 네트워크 정책을 사용하여 해당 식별자를 차단하거나 허용하기 전에 네트워크 식별자를 논리 단위로 그룹화합니다.

  • 비공개 연결 엔드포인트(AWS VPC 엔드포인트 및 Azure 비공개 엔드포인트)에서 시작되는 요청을 제한할 수 있습니다.

  • Snowflake 서비스 내부 스테이지 에 대한 액세스를 모두 제한합니다.

Snowflake에서는 허용되거나 차단된 식별자를 지정하는 네트워크 규칙을 사용하여 모든 새로운 네트워크 정책을 구현할 것을 강력히 권장합니다.

자세한 내용은 네트워크 규칙 사용하기 섹션을 참조하십시오.

이 항목의 내용:

개요

기본적으로 Snowflake는 사용자가 모든 컴퓨터 또는 디바이스 IP 주소에서 서비스에 연결하는 것을 허용합니다. 보안 관리자(또는 이상)는 1개 IP 주소 또는 주소 목록에 대한 액세스를 허용하거나 거부하는 네트워크 정책을 만들 수 있습니다. 현재 네트워크 정책은 인터넷 프로토콜 버전 4(즉, IPv4) 주소만 지원합니다.

충분한 권한이 있는 관리자는 원하는 만큼 네트워크 정책을 만들 수 있습니다. 네트워크 정책은 계정 또는 개별 사용자 수준에서 활성화 되어야 활성화됩니다. 네트워크 정책을 활성화하려면 계정 또는 사용자 속성을 수정하고 네트워크 정책을 오브젝트에 적용하십시오. 계정 또는 특정 사용자에게 한 번에 하나의 네트워크 정책만 적용할 수 있습니다.

네트워크 정책은 일부 유형의 보안 통합에도 적용할 수 있습니다.

네트워크 정책 우선 적용

네트워크 정책은 계정, 보안 통합 또는 사용자에게 적용할 수 있습니다. 이들 중 둘 이상에 적용되는 네트워크 정책이 있는 경우 가장 구체적인 네트워크 정책이 상대적으로 더 일반적인 네트워크 정책보다 우선합니다. 다음은 우선 순위를 요약한 것입니다.

계정

계정에 적용되는 네트워크 정책은 가장 일반적인 네트워크 정책입니다. 이 정책보다는 보안 통합 또는 사용자에게 적용되는 네트워크 정책이 우선입니다.

보안 통합

보안 통합에 적용되는 네트워크 정책이 계정에 적용되는 네트워크 정책보다 우선하지만, 사용자에게 적용되는 네트워크 정책이 그보다 더 우선합니다.

사용자

사용자에게 적용되는 네트워크 정책이 가장 구체적인 네트워크 정책입니다. 이런 정책이 계정과 보안 통합보다 모두 우선합니다.

CIDR 표기법

Snowflake는 CIDR(즉, Classless Inter-Domain Routing) 표기법 을 사용한 IP 주소 범위 지정을 지원합니다. CIDR 표기법에서 선택 사항 서브넷은 접두사 길이를 나타내는 10진수로 표시됩니다.

ip_address[/prefix_length]

예를 들어, 192.168.1.0/24192.168.1.0 ~ 192.168.1.255 범위의 모든 IP 주소를 나타냅니다.

허용 및 차단 주소 목록의 예

Snowflake는 현재 IP 주소를 차단하는 네트워크 정책 설정을 허용하지 않습니다. 현재 IP 주소를 차단하는 네트워크 정책을 생성할 때 오류 메시지가 표시됩니다.

Snowflake 네트워크 정책을 사용한 허용 및 차단 IP 주소 범위를 정의하는 대표적인 예는 다음과 같습니다.

192.168.1.0 ~ 192.168.1.255 범위(명시적으로 차단된 192.168.1.99 제외)의 모든 IP 주소를 허용합니다. 또한, 기타 모든 IP 주소가 차단됩니다.

- Allowed IP Addresses: 192.168.1.0/24
- Blocked IP Addresses: 192.168.1.99
Copy

192.168.1.0192.168.1.100 IP 주소만 계정에 액세스하는 것이 허용됩니다.

- Allowed IP Addresses: 192.168.1.0,192.168.1.100
- Blocked IP Addresses: N/A
Copy

네트워크 정책 우회하기

사용자 오브젝트 속성인 MINS_TO_BYPASS_NETWORK_POLICY 를 구성하여 설정된 분 동안 일시적으로 네트워크 정책을 우회할 수 있으며, 이는 DESCRIBE USER 를 실행하여 확인할 수 있습니다. Snowflake만 이 오브젝트 속성에 대한 값을 설정할 수 있습니다. 이 속성에 대한 값을 설정하려면 Snowflake 지원 에 문의해 주십시오.

네트워크 정책 만들기

참고

보안 관리자(즉, SECURITYADMIN 역할의 사용자) 이상 또는 전역 CREATE NETWORK POLICY 권한이 있는 역할만 네트워크 정책을 만들 수 있습니다. 네트워크 정책의 소유권은 다른 역할로 이전할 수 있습니다.

Snowsight, Classic Console 또는 SQL을 사용하여 네트워크 정책을 만들 수 있습니다.

Snowsight
  1. Admin » Security » Network Policies 를 클릭합니다.

  2. 페이지의 오른쪽 상단 모서리에 있는 + Network Policy 버튼을 클릭합니다. New network policy 대화 상자가 열립니다.

  3. 다음 속성을 지정합니다.

    속성

    설명

    정책 이름

    네트워크 정책의 식별자로, 계정에 고유한 식별자여야 합니다.

    식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다.

    큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

    자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

    허용 IP주소

    Snowflake 계정으로의 액세스가 허용되는 1개 이상의 IPv4 주소로 구성된 쉼표로 구분된 목록입니다. 이것을 허용 목록 이라고 합니다. Snowflake는 허용 목록에 포함되지 않은 모든 IP 주소를 자동으로 차단합니다.

    각 IP 주소는 CIDR(Classless Inter-Domain Routing) 표기법을 사용하여 다양한 주소를 포함할 수 있습니다.

    자세한 내용은 이 항목의 CIDR 표기법 을 참조하십시오.

    예제는 이 항목의 허용 및 차단 주소 목록의 예 섹션을 참조하십시오.

    차단 IP주소

    Snowflake 계정으로의 액세스가 거부되는 1개 이상의 IPv4 주소로 구성된 쉼표로 구분된 목록입니다. 이를 차단 목록이라고 합니다.

    Allowed IP Addresses 목록의 IP 주소 범위에 대한 액세스를 허용하지만 범위 내에 있는 1개 이상의 IP 주소에 대한 액세스를 거부하려는 경우에만 이 매개 변수를 설정합니다.

    각 IP 주소는 CIDR(Classless Inter-Domain Routing) 표기법을 사용하여 다양한 주소를 포함할 수 있습니다.

    자세한 내용은 이 항목의 CIDR 표기법 을 참조하십시오.

    예제는 이 항목의 허용 및 차단 주소 목록의 예 섹션을 참조하십시오.

    설명

    네트워크 정책에 대한 설명을 지정합니다.

  4. Create network policy 버튼을 클릭합니다.

Classic Console
  1. Account Account tab » Policies 를 클릭합니다. Policies 페이지가 열립니다.

  2. Create 버튼을 클릭합니다. Create Network Policy 대화 상자가 나타납니다.

  3. Name 필드에 네트워크 정책의 이름을 입력합니다.

  4. Allowed IP Addresses 필드에 이 Snowflake 계정으로의 액세스가 허용되는 1개 이상의 IPv4 주소를 쉼표로 구분하여 입력합니다.

    참고

    특정 주소 세트를 제외한 모든 IP 주소를 차단하려면 허용 IP 주소 목록만 정의하면 됩니다. Snowflake는 허용 목록에 포함되지 않은 모든 IP 주소를 자동으로 차단합니다.

  5. 선택적으로 Blocked IP Addresses 필드에 이 Snowflake 계정으로의 액세스가 거부되는 1개 이상의 IPv4 주소를 쉼표로 구분하여 입력합니다. 이 필드는 필수가 아니며 주로 허용 목록의 주소 범위에서 특정 주소를 거부하기 위한 용도로 사용됨에 유의하십시오.

    조심

    • 네트워크 정책에 허용 및 차단 IP 주소 목록이 모두 포함되는 경우 Snowflake는 차단 IP 주소 목록을 우선 적용합니다.

    • 0.0.0.0/0 을 차단 IP 주소 목록에 추가하지 마십시오. 0.0.0.0/0 은 《로컬 시스템의 모든 IPv4 주소》로 해석됩니다. Snowflake는 이 목록을 우선 확인하므로 이로 인해 사용자 본인의 액세스가 차단될 수 있습니다. 또한, 이 IP 주소를 허용 IP 주소 목록에 포함할 필요도 없습니다.

  6. 필요한 경우 네트워크 정책에 대한 기타 정보를 입력한 후 Finish 를 클릭합니다.

SQL

CREATE NETWORK POLICY 문을 실행합니다.

네트워크 정책 보기

Snowsight, Classic Console 또는 SQL을 사용하여 네트워크 정책에 대한 정보를 확인합니다.

참고

네트워크 정책에 대한 OWNERSHIP 권한이 있는 역할 또는 그보다 상위의 역할만 네트워크 정책에 대한 세부 정보를 볼 수 있습니다.

Snowsight

Select Admin » Security » Network Policies » <정책_이름>.

Classic Console

Account Account tab » Policies » <정책_이름> 을 클릭합니다.

SQL

다음 문 중 1개를 실행합니다.

계정에 대한 네트워크 정책 활성화하기

Snowflake 계정의 모든 사용자에 대해 네트워크 정책을 적용하려면 계정에 대한 네트워크 정책을 활성화하십시오.

참고

개별 사용자에 대해 네트워크 정책이 활성화된 경우 사용자 수준 네트워크 정책이 우선합니다. 사용자 수준에서의 네트워크 정책 활성화에 대한 자세한 내용은 이 항목의 개별 사용자에 대한 네트워크 정책 활성화하기 를 참조하십시오.

참고

이 작업은 다음 역할 중 하나로 제한됩니다.

  • 보안 관리자(즉, SECURITYADMIN 역할이 있는 사용자) 또는 더 상위의 역할.

  • ATTACH POLICY 전역 권한이 부여된 역할.

정책이 사용자 계정과 연결되면 Snowflake는 허용 IP 주소 목록 및 차단 IP 주소 목록에 따라 계정에 대한 액세스를 제한합니다. 규칙에 의해 제한되는 IP 주소에서 로그인을 시도하는 모든 사용자는 액세스가 거부됩니다. 또한, 네트워크 정책이 계정과 연결된 경우 이미 Snowflake에 로그인한 제한 사용자는 쿼리를 추가적으로 실행할 수 없습니다.

보안 관리자 또는 이상은 여러 네트워크 정책을 생성할 수 있지만, 한 번에 1개의 네트워크 정책만 계정에 연결할 수 있습니다. 계정에 네트워크 정책을 연결하면 현재 연결된 네트워크 정책(있는 경우)이 자동으로 제거됩니다.

현재 IP 주소가 반드시 정책의 허용 IP 주소 목록에 포함되어야 함에 유의하십시오. 그렇지 않으면 정책을 활성화할 때 Snowflake에서 오류가 반환됩니다. 또한, 사용자의 현재 IP 주소는 차단 IP 목록에 포함될 수 없습니다.

Snowsight, Classic Console 또는 SQL을 사용하여 네트워크 정책을 계정에 연결할 수 있습니다.

Snowsight
  1. Admin » Security » Network Policies 를 클릭합니다.

  2. 활성화할 정책의 오른쪽에 있는 Activate Policy 버튼을 클릭합니다.

Classic Console
  1. Account Account tab » Policies 를 클릭합니다.

  2. 정책을 클릭하여 선택하고 오른쪽의 측면 패널을 채웁니다.

  3. 오른쪽 패널의 Activate 버튼을 클릭합니다.

SQL

NETWORK_POLICY 계정 매개 변수를 사용하여 네트워크 정책을 설정하는 ALTER ACCOUNT 문을 실행합니다.

개별 사용자에 대한 네트워크 정책 활성화하기

Snowflake 계정의 특정 사용자에 대해 네트워크 정책을 적용하려면 사용자에 대한 네트워크 정책을 활성화하십시오. 각 사용자에 대해 한 번에 한 네트워크 정책만 활성화할 수 있지만, 세분화된 제어를 위해 다른 사용자에 대해 다른 네트워크 정책을 활성화할 수 있습니다. 사용자와 네트워크 정책을 연결하면 현재 연결된 네트워크 정책(있는 경우)이 자동으로 제거됩니다.

참고

사용자 네트워크 정책 모두에 대한 OWNERSHIP 권한이 있는 역할 또는 그 이상의 역할만이 개별 사용자에 대한 네트워크 정책을 활성화할 수 있습니다.

정책이 사용자와 연결되면, Snowflake는 허용 IP 주소 목록 및 차단 IP 주소 목록에 따라 사용자에 대한 액세스를 제한합니다. 사용자 수준 네트워크 정책이 활성화된 사용자가 규칙에 의해 제한되는 IP 주소로부터 로그인을 시도하면 해당 사용자는 Snowflake에 대한 액세스가 거부됩니다.

또한, 사용자 수준 네트워크 정책이 사용자와 연결되어 있고 사용자가 이미 Snowflake에 로그인되어 있는 경우 사용자의 IP 주소가 사용자 수준 네트워크 정책 규칙과 일치하지 않으면 Snowflake는 해당 사용자의 추가 쿼리를 실행을 허용하지 않습니다.

개별 사용자에 대한 네트워크 정책을 활성화하려면 ALTER USER 를 사용하여 사용자에 대한 NETWORK_POLICY 매개 변수를 설정합니다.

네트워크 정책 수정하기

네트워크 정책은 Snowsight, Classic Console 또는 SQL을 통해 수정할 수 있으며, 특히 허용 및 차단 주소 목록에서 IP 주소를 추가하거나 제거할 수 있습니다.

네트워크 정책 속성에 대한 설명은 이 항목의 네트워크 정책 만들기 를 참조하십시오.

Snowsight
  1. Admin » Security » Network Policies 를 클릭합니다.

  2. » Edit Policy 네트워크 정책 행에서 작업() 버튼을 클릭합니다. Edit Policy 대화 상자가 열립니다.

  3. 속성을 편집합니다.

  4. Save changes 버튼을 클릭합니다.

Classic Console
  1. Account Account tab » Policies 를 클릭합니다.

  2. 정책을 클릭하여 선택하고 오른쪽의 측면 패널을 채웁니다.

  3. 오른쪽 패널의 Edit 버튼을 클릭합니다.

  4. 필요한 대로 필드 수정:

    • Allowed IP Addresses 또는 Blocked IP Addresses 목록에서 IP 주소를 제거하려면 항목 옆의 x 를 클릭합니다.

    • 목록에 IP 주소를 추가하려면 해당 필드에 쉼표로 구분된 IPv4 주소를 1개 이상 입력한 후 Add 버튼을 클릭합니다.

  5. Save 를 클릭합니다.

SQL

ALTER NETWORK POLICY 문을 실행합니다.

계정 또는 사용자 수준에서 활성화된 네트워크 정책 식별하기

계정 또는 특정 사용자에 대하여 네트워크 정책이 설정되었는지 여부를 결정하려면 SHOW PARAMETERS 명령을 실행합니다.

계정
SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT;
Copy
사용자
SHOW PARAMETERS LIKE 'network_policy' IN USER <username>;
Copy

예:

SHOW PARAMETERS LIKE 'network_policy' IN USER jsmith;
Copy

네트워크 정책으로 복제 사용하기

Snowflake는 원본 계정에서 대상 계정으로의 할당과 네트워크 정책에 대한 복제 및 장애 조치/장애 복구를 지원합니다.

자세한 내용은 여러 계정에 보안 통합 및 네트워크 정책 복제 섹션을 참조하십시오.

네트워크 규칙 사용하기

Snowflake로 들어오는 요청에 대한 제한은 궁극적으로 네트워크 정책이 있는 계정이나 사용자에게 적용되지만, 관리자는 스키마 수준 오브젝트인 네트워크 규칙 을 사용하여 이러한 제한을 구성할 수 있습니다.

각 네트워크 규칙은 특정 유형의 요청 원본에 대한 식별자를 그룹화합니다. 예를 들어 한 네트워크 규칙에 Snowflake에 대한 액세스를 허용해야 하는 모든 IPv4 주소가 포함될 수 있고, 다른 네트워크 규칙에는 차단해야 하는 모든 비공개 엔드포인트를 함께 그룹화할 수 있습니다.

하지만 네트워크 규칙은 요청 원본을 허용할지 차단할지 지정하지 않습니다. 단순히 관련 원본을 논리적 단위로 구성할 뿐입니다. 관리자는 네트워크 정책을 생성하거나 수정할 때 해당 단위를 허용할지 또는 차단할지 여부를 지정합니다.

일반적인 워크플로는 다음과 같습니다.

  1. 특정 유형의 네트워크 식별자와 목적에 맞는 네트워크 규칙을 만듭니다.

  2. 네트워크 정책의 허용된 규칙 목록 또는 차단된 규칙 목록에 해당 네트워크 규칙을 추가합니다.

  3. 계정, 사용자 또는 보안 통합에 네트워크 정책을 적용합니다.

네트워크 정책 기능 변경 사항

네트워크 규칙의 도입으로 관리자가 네트워크 정책을 사용하여 네트워크 트래픽을 제어하는 방식이 변경되며, 다음 사항을 포함합니다.

  • 네트워크 정책이 네트워크 규칙을 사용하는 경우 정책은 ALLOWED_IP_LIST 및 BLOCKED_IP_LIST 매개 변수를 사용하여 개별 IP 주소를 지정하면 안 됩니다. 액세스를 제한하려고 두 가지 방법을 모두 사용하지 마십시오.

  • 관리자는 Snowsight 또는 Classic Console 을 사용하여 네트워크 규칙을 생성하거나 네트워크 정책에 네트워크 규칙을 추가할 수 없습니다.

  • 네트워크 규칙은 복제할 수 없습니다. 이는 네트워크 규칙 없이 네트워크 정책을 복제하는 현재의 기능에는 영향을 미치지 않습니다.

제한 사항

이 미리 보기에서는 GET_PRESIGNED_URL 함수에 의해 생성된 미리 서명된 URL을 사용하여 내부 스테이지에 액세스하는 요청에 네트워크 규칙 제한이 적용되지 않습니다.

모범 사례

  • 범위를 제한합니다. 네트워크 규칙은 관련 네트워크 식별자의 작은 단위를 그룹화하도록 설계되었습니다. 이전에는 네트워크 정책에 허용하거나 차단해야 하는 대규모의 모놀리식 IP 주소 목록이 포함되는 경우가 많았습니다. 네트워크 규칙의 도입으로 이 전략에 변화가 생깁니다. 예를 들어 다음과 같이 네트워크 식별자를 나눌 수 있습니다.

    • 북미 리전에 대한 클라이언트 IP 주소를 포함하는 네트워크 규칙과 유럽 및 중동 리전에 대한 다른 규칙을 만듭니다.

    • 권한이 높은 사용자, 서비스 계정 사용자 등 특별한 집단에 대한 액세스를 허용하는 목적을 가진 네트워크 규칙을 만듭니다. 이 네트워크 규칙은 개별 사용자에게 적용되는 네트워크 정책에 추가할 수 있습니다.

    • 하나 이상의 데이터 앱으로 범위가 지정되는 네트워크 규칙을 만듭니다.

    네트워크 규칙을 도입하면서 네트워크 정책의 범위도 제한하는 것이 좋습니다. 가능하면 네트워크 정책 범위를 전체 계정이 아닌 사용자 그룹이나 보안 통합으로 좁히십시오.

  • 설명을 추가합니다. 네트워크 규칙을 만들 때는 COMMENT 속성을 사용하여 규칙이 수행하도록 되어 있는 사항을 추적하십시오. 소수의 모놀리식 규칙보다는 대상이 분명히 정해진 다수의 작은 규칙을 권장하므로 설명이 중요합니다.

    SHOW NETWORK RULES 명령을 사용하면 설명을 포함하여 모든 네트워크 규칙을 나열할 수 있습니다.

지원되는 식별자

각 네트워크 규칙에는 동일한 유형의 네트워크 식별자가 하나 이상 있는 목록이 포함됩니다(예: IPv4 주소 규칙 또는 비공개 엔드포인트 규칙).

네트워크 규칙의 TYPE 속성은 네트워크 규칙에 포함된 식별자 유형을 식별하고, VALUE_LIST 속성은 해당 식별자를 지정합니다.

네트워크 규칙을 사용하여 제한할 수 있는 식별자 유형의 전체 목록은 지원되는 네트워크 식별자 섹션을 참조하십시오.

네트워크 정책의 허용 목록에 네트워크 규칙을 추가할 때 동일한 유형의 다른 식별자를 명시적으로 차단할 필요는 없으며, 허용된 식별자만 액세스할 수 있습니다. 그러나 다른 유형의 식별자는 자동으로 차단되지 않습니다. 예를 들어 단일 IP 주소가 포함된 IPV4 네트워크 규칙을 허용 목록에 추가하면 다른 모든 IPv4 주소가 차단됩니다. 그러나 추가 네트워크 규칙을 사용하지 않는 한 VPC 엔드포인트는 계속 액세스할 수 있습니다.

한 예로, Azure LinkID 또는 AWS VPCE ID와 같은 프라이빗 엔드포인트 식별자를 사용하여 액세스를 제한하는 네트워크 규칙은 공용 네트워크에서 들어오는 요청에 아무런 영향도 주지 않습니다. 프라이빗 엔드포인트 식별자를 기반으로 액세스를 제한한 다음 공용 IPv4 주소의 요청을 완전히 차단하려는 경우 별개의 두 가지 네트워크 규칙을 만들어야 합니다.

다음 네트워크 규칙을 네트워크 정책에 결합하여 공용 네트워크 트래픽을 차단하면서 VPCE ID를 허용할 수 있습니다.

CREATE NETWORK RULE block_public_access
  MODE = INGRESS
  TYPE = IPV4
  VALUE_LIST = ('0.0.0.0/0');

CREATE NETWORK RULE allow_vpceid_access
  MODE = INGRESS
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-0fa383eb170331202');

CREATE NETWORK POLICY allow_vpceid_block_public_policy
  ALLOWED_NETWORK_RULE_LIST = ('allow_vpceid_access')
  BLOCKED_NETWORK_RULE_LIST=('block_public_access');
Copy

Snowflake 서비스 보호하기

이 섹션에서는 네트워크 규칙을 사용하여 Snowflake 서비스에 대한 액세스만 제한하는 방법에 대해 설명합니다. AWS에서 서비스와 계정의 내부 스테이지 모두에 대한 액세스를 제한하려면 AWS에서 내부 스테이지 보호하기 섹션을 참조하십시오.

Snowflake 서비스에 대한 액세스를 제한하려면 네트워크 규칙의 MODE 속성을 INGRESS 로 설정하십시오.

그런 다음 TYPE 속성을 사용하여 허용하거나 차단해야 하는 식별자 를 지정할 수 있습니다.

AWS에서 내부 스테이지 보호하기

이 섹션에서는 Snowflake 서비스와 내부 스테이지에 대한 액세스를 동시에 제한하는 방법을 포함하여 네트워크 규칙을 사용해 AWS의 내부 스테이지에 대한 액세스를 제한하는 방법에 대해 설명합니다. 다음 내용이 포함됩니다.

현재는 보안 통합에 할당된 네트워크 정책을 사용하여 내부 스테이지에 대한 액세스를 제한할 수 없습니다.

참고

Microsoft Azure에서 네트워크 규칙을 사용하여 내부 스테이지에 대한 액세스를 제한할 수 없습니다. 하지만 Azure Private Link 를 사용하는 경우 Azure의 내부 스테이지에 대한 모든 공개 액세스를 차단할 수 있습니다. 자세한 내용은 공용 액세스 차단하기(선택 사항) 섹션을 참조하십시오.

내부 스테이지에 대한 가이드라인

네트워크 규칙에 대한 모범 사례 외에도, 내부 스테이지에 대한 액세스를 제한하는 네트워크 규칙을 만들 때 다음 가이드라인을 준수해야 합니다.

  • 식별자 수를 제한합니다. AWS S3 세션 정책에서 적용되는 제한으로 인해 내부 스테이지 보호 전략은 다음 제한 사항을 준수해야 합니다.

    • IPv4 주소를 포함하는 네트워크 규칙은 규칙당 IP 주소 범위를 15개 보다 많이 포함할 수 없습니다. 주소 범위가 15개를 초과할 경우 네트워크 규칙을 추가로 만드십시오.

    • VPC 엔드포인트의 VPCE ID를 기반으로 트래픽을 허용하거나 차단하는 경우 네트워크 정책당 누적 한도는 VPCE ID 10개 입니다. 예를 들어 한 네트워크 규칙에 VPCE ID가 5개 포함되고 다른 네트워크 규칙에 VPCE ID가 6개 포함된 경우 동일한 네트워크 정책에 두 규칙을 모두 추가할 수는 없습니다.

    AWS STS에서 범위가 지정된 자격 증명을 가져올 때 PolicySizeExceeded 예외가 발생하면 네트워크 식별자를 더 작은 네트워크 규칙으로 나누십시오.

  • 서비스와 내부 스테이지를 모두 보호하려면 동일한 규칙을 사용하십시오. 규칙에 IPv4 주소가 포함되고 네트워크 규칙의 모드가 INGRESS 인 경우 단일 규칙으로 Snowflake 서비스와 계정의 내부 스테이지를 모두 보호할 수 있습니다. 서비스에 액세스하는 IP 주소가 내부 스테이지에 액세스하는 IP 주소와 다를 때도 단일 규칙을 사용하는 것이 좋습니다. 이 접근 방식으로 조직, 관리 용이성, 감사가 개선됩니다.

  • 네트워크 정책을 테스트합니다. 사용자 수준 네트워크 정책을 사용하여 네트워크 규칙을 테스트하는 것이 좋습니다. AWS STS에서 범위가 지정된 자격 증명을 가져올 때 PolicySizeExceeded 예외가 발생하면 네트워크 식별자를 더 작은 네트워크 규칙으로 나누십시오.

내부 스테이지 제한 활성화하기

네트워크 규칙을 사용하여 계정의 내부 스테이지에 대한 액세스를 제한하려면 계정 관리자가 ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES 매개 변수를 활성화해야 합니다. 네트워크 규칙은 규칙 모드에 관계없이 이 매개 변수가 활성화될 때까지 내부 스테이지를 보호하지 않습니다.

네트워크 규칙이 내부 스테이지에 대한 액세스를 제한하도록 허용하려면 다음을 실행하십시오.

USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES = true;
Copy

내부 스테이지만 보호하는 전략

네트워크 트래픽이 Snowflake 서비스에 액세스하는 방식에 영향을 주지 않고 AWS 내부 스테이지에 대한 액세스를 제한하려면 다음 설정으로 네트워크 규칙을 생성하십시오.

  • MODE 매개 변수를 INTERNAL_STAGE 로 설정합니다.

  • TYPE 매개 변수를 AWSVPCEID 로 설정합니다.

참고

Snowflake 서비스에 대한 액세스도 제한해야 요청의 IP 주소를 기반으로 내부 스테이지에 대한 액세스를 제한할 수 있습니다.

서비스와 내부 스테이지를 모두 보호하는 전략

Snowflake 서비스와 내부 스테이지 모두에 대한 액세스를 제한할 때 네트워크 트래픽이 공용 인터넷을 통과하는지, AWS Private Link를 통과하는지에 따라 구현 전략이 달라집니다.

다음 비교표에서 《공용》은 서비스 또는 내부 스테이지에 대한 트래픽이 공용 인터넷을 통과하고 있음을 나타내는 반면, 《개인》은 트래픽이 AWS Private Link를 사용 중임을 나타냅니다. 자신의 환경에 맞는 조합을 찾은 다음 구현 전략을 적절히 선택하십시오.

서비스 연결

내부 스테이지 연결

구현 전략

공용

공용

TYPE=IPV4MODE=INGRESS 로 설정하여 단일 네트워크 규칙을 만듭니다. 서비스와 내부 스테이지에 액세스하는 모든 IP 주소를 포함합니다.

개인

개인

개인 IP 주소 또는 VPC 엔드포인트의 VPCE ID 중 어떤 것을 사용하여 액세스를 제한할지에 따라 전략이 달라집니다.

  • (권장 사항) VPCE ID를 사용하는 경우 동일한 VPC 엔드포인트가 서비스와 내부 스테이지에 모두 연결 중이더라도 네트워크 규칙을 2개 만들어야 합니다.

    • 서비스의 경우 TYPE=AWSVPCEIDMODE=INGRESS 로 설정하여 네트워크 규칙을 만듭니다.

    • 내부 스테이지의 경우 TYPE=AWSVPCEIDMODE=INTERNAL_STAGE 로 설정하여 네트워크 규칙을 만듭니다.

  • 개인 IP 주소를 사용하는 경우 TYPE=IPV4MODE=INGRESS 로 설정하여 네트워크 규칙을 만듭니다. 서비스와 내부 스테이지에 액세스하는 모든 개인 IP 주소를 포함합니다.

공용 1

개인

개인 IP 주소 또는 VPC 엔드포인트의 VPCE ID 중 어떤 것을 사용하여 내부 스테이지에 대한 액세스를 제한할지에 따라 전략이 달라집니다.

  • (권장 사항) VPCE ID를 사용하는 경우 서비스용과 내부 스테이지용으로 각각 하나씩 네트워크 규칙을 2개 만드십시오.

    • 서비스의 경우 TYPE=IPV4MODE=INGRESS 로 설정하여 네트워크 규칙을 만듭니다.

    • 내부 스테이지의 경우 TYPE=AWSVPCEIDMODE=INTERNAL_STAGE 로 설정하여 네트워크 규칙을 만듭니다.

  • 개인 IP 주소를 사용하는 경우 TYPE=IPV4MODE=INGRESS 로 설정하여 단일 네트워크 규칙을 만듭니다. 서비스와 내부 스테이지에 액세스하는 모든 IP 주소를 포함합니다.

개인

공용 1

서비스의 경우 개인 IP를 사용해야 합니다(VPCE ID는 사용할 수 없음). TYPE=IPV4MODE=INGRESS 로 설정하여 단일 네트워크 규칙을 만듭니다. 서비스와 내부 스테이지에 액세스하는 모든 IP 주소를 포함합니다.

1(1,2)

서비스 또는 내부 스테이지에 대한 비공개 연결을 구현한 경우 두 경우 모두에 대해 구현하는 것이 좋습니다.

네트워크 규칙 만들기

관리자는 네트워크 식별자와 식별자 유형의 목록을 지정하여 CREATE NETWORK RULE 명령을 실행함으로써 새 네트워크 규칙을 만들 수 있습니다.

네트워크 규칙을 만든다고 해서 네트워크 식별자를 허용하거나 차단할지 여부가 정의되는 것은 아닙니다. 관리자는 네트워크 정책에 네트워크 규칙을 추가 할 때 그러한 권한을 지정합니다.

예를 들어 사용자 지정 역할을 사용하여 IP 주소 범위의 트래픽을 허용하거나 차단하는 데 사용할 수 있는 네트워크 규칙을 만들려면 다음을 수행하십시오.

GRANT USAGE ON DATABASE securitydb TO ROLE network_admin;
GRANT USAGE ON SCHEMA securitydb.myrules TO ROLE network_admin;
GRANT CREATE NETWORK RULE ON SCHEMA securitydb.myrules TO ROLE network_admin;
USE ROLE network_admin;

CREATE NETWORK RULE cloud_network TYPE = IPV4 VALUE_LIST = ('47.88.25.32/27');
Copy

네트워크 규칙이 생성되면 그 소유권을 다른 역할로 이전할 수 있습니다.

네트워크 정책에 네트워크 규칙 추가하기

네트워크 규칙은 네트워크 식별자를 구성하고 제한 대상을 정의하지만, 제한 사항을 적용하지는 않습니다. 오히려 네트워크 규칙이 네트워크 정책에 추가된 다음 계정이나 사용자에게 적용되어 액세스를 제어하게 됩니다.

관리자는 네트워크 정책의 적절한 매개 변수에 규칙을 추가하여 네트워크 규칙의 네트워크 식별자를 허용할지 또는 차단할지 지정합니다. 네트워크 규칙에 대해 대/소문자를 구분하는 이름을 생성한 경우 네트워크 정책에 이름을 할당할 때 큰따옴표를 사용해야 합니다.

네트워크 정책의 ALLOWED_NETWORK_RULE_LIST 매개 변수는 허용되는 네트워크 식별자가 포함된 네트워크 규칙의 목록을 정의합니다. 이 매개 변수에 네트워크 규칙을 하나 이상 추가하면 동일한 유형의 다른 식별자를 명시적으로 차단할 필요가 없고 허용된 식별자만 액세스할 수 있습니다. 그러나 다른 유형의 식별자는 자동으로 차단되지 않습니다. 예를 들어 단일 IP 주소가 포함된 IPV4 네트워크 규칙을 허용 목록에 추가하면 다른 모든 IPv4 주소가 차단됩니다. 그러나 추가 네트워크 규칙을 사용하지 않는 한 VPC 엔드포인트는 계속 액세스할 수 있습니다.

네트워크 규칙을 사용하여 네트워크 식별자를 명시적으로 차단하려면 네트워크 정책의 BLOCKED_NETWORK_RULE_LIST 매개 변수에 규칙을 추가하십시오.

네트워크 정책에 네트워크 규칙을 추가한 후 DESCRIBE NETWORK POLICY 명령을 실행하여 확인할 수 있습니다.

네트워크 규칙이 네트워크 정책의 매개 변수 중 하나에 추가되면 계정 또는 사용자 에 정책을 연결하여 제한 사항을 적용할 수 있습니다.

두 네트워크 규칙 corp_networkcloud_network 를 만든 다음, 이들 규칙에서 네트워크 식별자를 허용하는 네트워크 정책을 만듭니다.

CREATE NETWORK RULE corp_network TYPE = AWSVPCEID VALUE_LIST = ('vpce-123abc3420c1931');
CREATE NETWORK RULE cloud_network TYPE = IPV4 VALUE_LIST = ('47.88.25.32/27');

CREATE NETWORK POLICY account_policy ALLOWED_NETWORK_RULE_LIST = ( 'corp_network', 'cloud_network' );
Copy

네트워크 정책을 수정하여 이전에 차단된 네트워크 규칙을 other_network 라는 새 네트워크 규칙으로 바꿉니다.

ALTER NETWORK POLICY my_policy SET BLOCKED_NETWORK_RULE_LIST = ( 'other_network' );
Copy

기존 네트워크 정책의 허용 목록에 단일 네트워크 규칙을 추가합니다. 이전에 정책의 허용 목록에 추가된 네트워크 규칙은 그대로 유효하게 유지됩니다.

ALTER NETWORK POLICY my_policy ADD ALLOWED_NETWORK_RULE_LIST = ( 'new_rule' );
Copy

네트워크 정책의 차단 목록에서 네트워크 규칙을 제거합니다.

ALTER NETWORK POLICY my_policy REMOVE BLOCKED_NETWORK_RULE_LIST = ( 'other_network' );
Copy