네트워크 정책으로 네트워크 트래픽 제어하기

네트워크 정책 및 네트워크 규칙으로 작업하기 위해 SQL을 사용하는 기능이 일반 공급으로 제공됩니다.

참고

네트워크 규칙 도입 이전에 존재했던 네트워크 정책은 더 이상 Snowsight 에서 수정할 수 없습니다. 대신 ALTER NETWORK POLICY 명령을 사용하십시오.

네트워크 정책을 사용하여 Snowflake 서비스 및 내부 스테이지에 대한 인바운드 액세스를 제어할 수 있습니다.

Snowflake에서 외부 네트워크 대상으로의 아웃바운드 트래픽을 제어하려면 외부 네트워크 액세스 개요 섹션을 참조하십시오.

네트워크 정책 정보

기본적으로, 사용자는 Snowflake를 통해 모든 컴퓨터 또는 디바이스에서 서비스와 내부 스테이지에 연결할 수 있습니다. 보안 관리자(또는 그 이상)는 네트워크 정책을 사용하여 원본을 기준으로 요청에 대한 액세스를 허용하거나 거부할 수 있습니다. 네트워크 정책의 허용 목록 으로 Snowflake 서비스 또는 내부 스테이지에 액세스하도록 허용되는 요청을 제어하는 반면, 차단 목록 으로는 명시적으로 차단해야 하는 요청을 제어합니다.

네트워크 정책은 허용 목록이나 차단 목록의 네트워크 식별자를 직접 지정하지 않습니다. 오히려, 네트워크 정책은 허용 목록과 차단 목록에 네트워크 규칙 을 추가합니다. 이러한 네트워크 규칙은 관련 식별자를 네트워크 정책의 허용 목록과 차단 목록에 추가되는 논리 단위로 그룹화합니다.

중요

네트워크 규칙 도입 이전에 존재했던 네트워크 정책은 여전히 유효합니다. 그러나 모든 새로운 네트워크 정책은 ALLOWED_IP_LIST 및 BLOCKED_IP_LIST 매개 변수가 아닌 네트워크 규칙을 사용하여 IP 주소에서의 액세스를 제어해야 합니다. 모범 사례는 동일한 네트워크 정책에서 액세스를 제한하기 위해 두 가지 방법을 모두 사용하지 않는 것입니다.

워크플로

네트워크 정책을 사용하여 인바운드 네트워크 트래픽을 제어하는 일반적인 워크플로는 다음과 같습니다.

  1. 목적과 네트워크 식별자 유형을 기반으로 네트워크 규칙을 만듭니다.

  2. 허용하거나 차단할 식별자가 포함된 네트워크 규칙을 포함하는 하나 이상의 네트워크 정책 을 만듭니다.

  3. 계정, 사용자 또는 보안 통합에 대한 네트워크 정책을 활성화합니다. 네트워크 정책은 활성화될 때까지 네트워크 트래픽을 제한하지 않습니다.

허용 목록과 차단 목록 간의 상호 작용

네트워크 정책의 허용 목록에 네트워크 규칙을 추가할 때 차단 목록을 사용하여 동일한 유형의 다른 식별자를 명시적으로 차단할 필요는 없으며, 허용된 식별자만 액세스할 수 있습니다. 그러나 다른 유형의 식별자는 자동으로 차단되지 않습니다. 예를 들어 단일 IP 주소가 포함된 IPV4 네트워크 규칙을 허용 목록에 추가하면 다른 모든 IPv4 주소가 차단됩니다. 다른 IP 주소의 액세스를 제한하기 위해 차단 목록을 사용할 필요가 없습니다. 그러나 추가 네트워크 규칙을 네트워크 정책에 추가하지 않는 한 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

IP 범위

단일 IP 주소를 제외하고 다양한 IP 주소를 허용하려는 경우 두 개의 네트워크 규칙(하나는 허용 목록의 네트워크 규칙, 다른 하나는 차단 목록의 네트워크 규칙)을 생성할 수 있습니다.

예를 들어 다음은 192.168.1.99 를 제외하고 192.168.1.0 에서 192.168.1.255 의 범위에 있는 모든 IP 주소의 요청을 허용합니다. 이 범위 밖의 IP 주소도 차단됩니다.

CREATE NETWORK RULE allow_access_rule
  MODE = INGRESS
  TYPE = IPV4
  VALUE_LIST = ('192.168.1.0/24');

CREATE NETWORK RULE block_access_rule
  MODE = INGRESS
  TYPE = IPV4
  VALUE_LIST = ('192.168.1.99');

CREATE NETWORK POLICY public_network_policy
  ALLOWED_NETWORK_RULE_LIST = ('allow_access_rule')
  BLOCKED_NETWORK_RULE_LIST=('block_access_rule');
Copy

네트워크 정책 우선 적용

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

계정:

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

보안 통합:

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

사용자:

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

네트워크 정책 우회하기

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

네트워크 규칙 정보

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

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

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

네트워크 정책과 함께 네트워크 규칙을 사용하는 전략을 이미 이해하고 있다면 네트워크 규칙 사용하기 섹션을 참조하십시오.

모범 사례

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

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

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

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

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

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

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

지원되는 식별자

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

네트워크 규칙의 TYPE 속성은 네트워크 규칙에 포함된 식별자 유형을 식별합니다.

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

Snowflake 서비스 보호하기

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

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

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

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

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

참고

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

제한 사항

  • 보안 통합을 위해 활성화된 네트워크 정책은 내부 스테이지에 대한 액세스를 제한하지 않습니다.

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

전제 조건: 내부 스테이지 제한 활성화하기

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

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

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

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

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

  • 식별자 수를 제한합니다. 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 예외가 발생하면 네트워크 식별자를 더 작은 네트워크 규칙으로 나누십시오.

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

네트워크 트래픽이 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 주소를 포함합니다.

네트워크 규칙 사용하기

Snowsight 또는 SQL을 사용하여 네트워크 규칙의 수명 주기를 관리할 수 있습니다.

네트워크 규칙 만들기

네트워크 규칙을 생성하려면 스키마에 대한 CREATE NETWORK RULE 권한이 필요합니다. 기본적으로 스키마 소유자와 함께 ACCOUNTADMIN 및 SECURITYADMIN 역할에만 이 권한이 있습니다.

네트워크 정책에서 사용할 네트워크 규칙의 모드는 INGRESS 또는 INTERNAL STAGE 여야 합니다.

네트워크 규칙 생성을 위한 모범 사례와 전략을 더 잘 이해하려면 네트워크 규칙 정보 섹션을 참조하십시오.

Snowsight 를 사용하거나 SQL 명령을 실행하여 네트워크 규칙을 만들 수 있습니다.

Snowsight:
  1. Snowsight 에 로그인합니다.

  2. Admin » Security 를 선택합니다.

  3. Network Rules 탭을 선택합니다.

  4. + Network Rule 를 선택합니다.

  5. 네트워크 규칙의 이름을 입력합니다.

  6. 네트워크 규칙의 스키마를 선택합니다. 네트워크 규칙은 스키마 수준 오브젝트입니다.

  7. 선택적으로, 스키마에서 네트워크 규칙을 구성하고 유지 관리하는 데 도움이 되도록 네트워크 규칙에 대한 설명 주석을 추가합니다.

  8. Type 드롭다운에서 네트워크 규칙에 정의되는 식별자 유형 을 선택합니다. Host Port 유형은 네트워크 정책과 함께 사용되는 네트워크 규칙에 유효한 옵션이 아닙니다.

  9. Mode 드롭다운에서 Ingress 또는 Internal Stage 를 선택합니다. Egress 모드는 네트워크 정책과 함께 사용되는 네트워크 규칙에 유효한 옵션이 아닙니다.

  10. 네트워크 규칙이 네트워크 정책에 추가되는 경우 허용하거나 차단할 식별자로 구성된 쉼표로 구분된 목록을 입력합니다. 이 목록의 식별자는 모두 Type 드롭다운에 지정된 유형이어야 합니다.

  11. Create Network Policy 를 선택합니다.

SQL:

관리자는 네트워크 식별자와 식별자 유형의 목록을 지정하여 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

네트워크 규칙 수정하기

기존 네트워크 규칙의 식별자와 설명은 수정할 수 있지만 해당 유형, 모드, 이름 또는 스키마는 수정할 수 없습니다.

Snowsight 또는 SQL을 사용하여 기존 네트워크 규칙에서 식별자와 설명을 추가하거나 제거할 수 있습니다.

Snowsight:
  1. Snowsight 에 로그인합니다.

  2. Admin » Security 를 선택합니다.

  3. Network Rules 탭을 선택합니다.

  4. 네트워크 규칙을 찾아 버튼을 선택한 다음 Edit 를 선택합니다.

  5. 쉼표로 구분된 식별자 목록이나 설명을 수정합니다.

  6. Update Network Rule 를 선택합니다.

SQL:

ALTER NETWORK RULE 문을 실행합니다.

네트워크 정책 사용하기

네트워크 식별자를 네트워크 규칙으로 그룹화했다면 해당 네트워크 규칙을 새 네트워크 정책이나 기존 네트워크 정책의 허용 목록과 차단 목록에 추가할 준비가 된 것입니다. 네트워크 정책에 추가할 수 있는 네트워크 규칙 수에는 제한이 없습니다.

네트워크 정책이 Snowflake 서비스 및 내부 스테이지에 대한 인바운드 액세스를 제어하는 방법에 대한 일반적인 정보는 네트워크 정책 정보 섹션을 참조하십시오.

네트워크 정책 만들기

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

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

Snowsight:
  1. Snowsight 에 로그인합니다.

  2. Admin » Security 를 선택합니다.

  3. Network Policies 탭을 선택합니다.

  4. + Network Policy 를 선택합니다.

  5. 네트워크 정책의 이름을 입력합니다.

  6. 선택적으로, 설명 주석을 입력합니다.

  7. 허용 목록에 네트워크 규칙을 추가하려면 Allowed 를 선택한 다음 Select rule 을 선택하십시오. Select rule 을 다시 선택하여 허용 목록에 여러 네트워크 규칙을 추가할 수 있습니다.

  8. 차단 목록에 네트워크 규칙을 추가하려면 Blocked 를 선택한 다음 Select rule 을 선택하십시오. Select rule 을 다시 선택하여 차단 목록에 여러 네트워크 규칙을 추가할 수 있습니다.

  9. Create Network Policy 를 선택합니다.

SQL:

CREATE NETWORK POLICY 문을 실행합니다.

계정의 네트워크 정책 식별하기

Snowsight 또는 SQL을 사용하여 계정의 네트워크 정책을 식별할 수 있습니다.

Snowsight:
  1. Snowsight 에 로그인합니다.

  2. Admin » Security 를 선택합니다.

  3. Network Policies 탭을 선택합니다.

SQL:

POLICY_REFERENCES Information Schema 테이블 함수를 호출하거나 POLICY_REFERENCES 또는 NETWORK_POLICIES Account Usage 뷰를 쿼리합니다.

네트워크 정책 수정

Snowsight 또는 SQL을 사용하여 기존 네트워크 정책의 허용 목록 및 차단 목록에서 네트워크 규칙을 추가하거나 제거할 수 있습니다. 네트워크 규칙 대신 ALLOWED_IP_LIST 및 BLOCKED_IP_LIST 매개 변수를 사용하는 네트워크 정책을 편집하는 경우 SQL을 사용하여 네트워크 정책을 수정해야 합니다.

Snowsight:
  1. Snowsight 에 로그인합니다.

  2. Admin » Security 를 선택합니다.

  3. Network Policies 탭을 선택합니다.

  4. 네트워크 정책을 찾아 버튼을 선택한 다음 Edit 를 선택합니다.

  5. 허용 목록에 네트워크 규칙을 추가하려면 Allowed 를 선택한 다음 Select rule 을 선택하십시오. Select rule 을 다시 선택하여 허용 목록에 여러 네트워크 규칙을 추가할 수 있습니다.

  6. 차단 목록에 네트워크 규칙을 추가하려면 Blocked 를 선택한 다음 Select rule 을 선택하십시오. Select rule 을 다시 선택하여 차단 목록에 여러 네트워크 규칙을 추가할 수 있습니다.

  7. 네트워크 정책의 허용 목록 또는 차단 목록에서 네트워크 규칙을 제거하는 방법은 다음과 같습니다.

    1. Allowed 또는 Blocked 를 선택합니다.

    2. 목록에서 네트워크 규칙을 찾고 X 를 선택하여 제거합니다.

SQL:

기존 네트워크 정책에서 네트워크 규칙을 추가하거나 제거하려면 ALTER NETWORK POLICY 명령을 사용하십시오.

허용 목록이나 차단 목록에 네트워크 규칙을 추가하면 목록에 있는 기존 네트워크 규칙을 모두 바꾸거나 기존 목록을 유지하면서 새 규칙을 추가할 수 있습니다. 다음 예에서는 이러한 각 옵션을 보여줍니다.

  • SET 절을 사용하여 차단 목록의 네트워크 규칙을 other_network 라는 새 네트워크 규칙으로 바꿉니다.

    ALTER NETWORK POLICY my_policy SET BLOCKED_NETWORK_RULE_LIST = ( 'other_network' );
    
    Copy
  • 기존 네트워크 정책의 허용 목록에 단일 네트워크 규칙을 추가하려면 ADD 절을 사용하십시오. 이전에 정책의 허용 목록에 추가된 네트워크 규칙은 그대로 유효하게 유지됩니다.

    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

네트워크 정책 활성화하기

네트워크 규칙은 계정, 사용자 또는 보안 통합에 대해 활성화될 때까지 인바운드 네트워크 트래픽을 제한하지 않습니다. 각 수준에서 활성화하는 방법에 대한 지침은 다음을 참조하십시오.

다양한 수준에서 여러 네트워크 정책(예: 계정 수준 및 사용자 수준 네트워크 정책 모두)을 활성화하는 경우 네트워크 정책 우선 적용 섹션을 참조하십시오.

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

계정에 대한 네트워크 정책을 활성화하면 해당 계정의 모든 사용자에게 정책이 적용됩니다.

보안 관리자(즉, SECURITYADMIN 역할의 사용자) 이상 또는 전역 ATTACH POLICY 권한이 있는 역할만 계정에 대한 네트워크 정책을 활성화할 수 있습니다.

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

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

현재 IP 주소 또는 프라이빗 엔드포인트를 정책의 허용 목록에 포함해야 합니다. 그렇지 않으면 정책을 활성화할 때 Snowflake에서 오류가 반환됩니다. 또한 사용자의 현재 식별자는 차단 목록에 포함할 수 없습니다.

새 정책을 활성화하기 전에 이미 계정 수준 네트워크 정책이 있는지 확인하려면 계정 또는 사용자 수준에서 활성화된 네트워크 정책 식별하기 섹션을 참조하십시오.

Snowsight 또는 SQL을 사용하여 계정에 대한 네트워크 정책을 활성화할 수 있습니다.

Snowsight:
  1. Admin » Security 를 선택합니다.

  2. Network Policies 탭을 선택합니다.

  3. 네트워크 정책을 찾아 버튼을 선택한 다음 Activate 를 선택합니다.

  4. Activate policy 를 선택합니다.

SQL:

ALTER ACCOUNT 문을 실행하여 계정에 대한 NETWORK_POLICY 매개 변수를 설정합니다. 예:

ALTER ACCOUNT SET NETWORK_POLICY = my_policy;
Copy

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

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

참고

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

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

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

새 정책을 활성화하기 전에 이미 사용자 수준 네트워크 정책이 있는지 확인하려면 계정 또는 사용자 수준에서 활성화된 네트워크 정책 식별하기 섹션을 참조하십시오.

개별 사용자에 대한 네트워크 정책을 활성화하려면 ALTER USER 명령을 실행하여 사용자에 대한 NETWORK_POLICY 매개 변수를 설정하십시오. 예를 들어 다음을 실행합니다.

ALTER USER joe SET NETWORK_POLICY = my_policy;
Copy

보안 통합을 위한 네트워크 정책 활성화하기

일부 보안 통합은 해당 통합으로 관리되는 네트워크 트래픽을 제어하기 위해 네트워크 정책 활성화를 지원합니다. 이러한 보안 통합에는 통합을 위한 네트워크 정책을 활성화하는 NETWORK_POLICY 매개 변수가 있습니다. 현재, SCIM 및 Snowflake OAuth는 통합 수준 네트워크 정책을 지원합니다.

참고

보안 통합을 위해 활성화된 네트워크 정책은 내부 스테이지에 대한 액세스를 제한하지 않습니다.

예를 들어, 새로운 Snowflake OAuth 보안 통합을 생성할 때 네트워크 정책을 활성화할 수 있습니다. 네트워크 정책은 인증을 시도하는 요청의 액세스를 제한합니다.

CREATE SECURITY INTEGRATION oauth_kp_int
  TYPE = oauth
  ENABLED = true
  OAUTH_CLIENT = custom
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://example.com'
  NETWORK_POLICY = mypolicy;
Copy

ALTER SECURITY INTEGRATION … SET NETWORK_POLICY 문을 실행하여 기존 보안 통합에 대한 네트워크 정책을 활성화할 수 있습니다.

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

계정 또는 사용자 수준에서 활성화된 네트워크 정책을 식별할 수 있습니다.

계정:
  1. Admin » Security 를 선택합니다.

  2. Network Policies 탭을 선택합니다.

  3. 활성 네트워크 정책을 보려면 Status 열을 정렬하십시오. 이는 계정 수준 정책입니다.

또는 다음을 실행하여 계정 수준 네트워크 정책을 나열할 수 있습니다.

SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT;
Copy
사용자:

특정 사용자에 대한 네트워크 정책이 설정되었는지 확인하려면 SHOW PARAMETERS 명령을 실행하십시오.

SHOW PARAMETERS LIKE 'network_policy' IN USER <username>;
Copy

예:

SHOW PARAMETERS LIKE 'network_policy' IN USER jsmith;
Copy

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

Snowflake는 네트워크 정책 할당을 포함하여 네트워크 정책 및 네트워크 규칙에 대한 복제 및 장애 조치/장애 복구를 지원합니다.

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

Classic Console 사용하기

참고

Classic Console 에는 새로운 기능이 출시되지 않습니다. Snowflake에서는 네트워크 정책과 함께 네트워크 규칙을 사용할 수 있도록 Snowsight 또는 SQL 사용을 권장합니다.

Classic Console 로 네트워크 정책 만들기

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

  1. Account 계정 탭 » 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 를 클릭합니다.

Classic Console 로 네트워크 정책 수정하기

Classic Console 을 사용하는 경우 다음을 수행하여 네트워크 정책을 수정합니다.

  1. Account 계정 탭 » Policies 를 클릭합니다.

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

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

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

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

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

  5. Save 를 클릭합니다.

Classic Console 로 네트워크 정책 활성화하기

Classic Console 을 사용하는 경우 계정에 대한 네트워크 정책을 활성화하여 Snowflake 계정의 모든 사용자에 대해 네트워크 정책을 적용할 수 있습니다.

  1. Account 계정 탭 » Policies 를 클릭합니다.

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

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