Openflow - Snowflake Deployment 설정: Snowflake 역할 생성

Openflow - Snowflake Deployment 를 사용하려면 배포가 아닌 특정 런타임과 관련된 여러 리소스를 만들어야 합니다. 일반적으로 이러한 리소스에는 다음이 포함됩니다.

  • 런타임별 Snowflake 역할 생성

  • 런타임 특정 네트워크 규칙 및 EAI(외부 액세스 통합) 생성

이 항목에서는 이러한 리소스를 만드는 방법에 대해 설명합니다.

  1. Snowflake 역할 및 관련 권한을 생성하여 Snowflake 배포 섹션의 런타임용 Snowflake 역할에 데이터를 작성합니다.

  2. Snowflake 역할을 연결합니다. Snowflake 배포 섹션에서 런타임용 Snowflake 역할을 참조하세요.

  3. 외부 액세스 통합을 만들고 런타임에 연결합니다. :ref:`외부 액세스 통합 만들기<label-create_network_rules_and_external_access_integrations>`를 참조하세요.

  4. SPCS 송신을 사용하여 비공개 시스템에 연결하려면 아웃바운드 PrivateLink 연결이 필요합니다.

Snowflake 역할 생성

Openflow 런타임을 생성하고 편집할 때 런타임 소유자에게는 역할을 런타임과 연결할 수 있는 권한이 있습니다. 이 역할은 런타임 내에서 실행되는 흐름에 사용됩니다. Snowflake 역할에 대한 자세한 내용은 What is a Snowflake role? 섹션을 참조하세요.

Snowflake 역할 생성은 런타임을 생성하기 위한 전제 조건이며, 여기에는 다음 단계가 포함됩니다.

  1. 자체 역할 만들기

  2. 런타임에서 사용하는 웨어하우스에 대한 액세스 권한을 해당 역할에 부여합니다.

  3. 런타임에서 사용하는 Snowflake 오브젝트에 대한 액세스 권한을 해당 역할에 부여합니다.

  4. 런타임에서 사용하는 외부 액세스 통합에 대한 액세스 권한을 해당 역할에 부여합니다.

Snowflake 역할을 생성하려면 다음을 수행합니다.

  1. 필요한 Snowflake 역할을 만듭니다.

    참고

    ``<RUNTIMENAME>``는 연결된 런타임의 이름을 나타냅니다.

    USE ROLE ACCOUNTADMIN;
    
    CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO USER <username>;
    
    Copy
  2. Snowflake 역할이 데이터 수집에 사용할 기존 웨어하우스를 사용하도록 허용합니다. 나중에 이 Snowflake 역할을 사용할 런타임용 커넥터를 구성할 때 이 웨어하우스를 사용합니다.

    GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy
  3. 이 Snowflake 역할이 Snowflake 오브젝트를 사용하거나 생성하거나 액세스할 수 있도록 허용합니다.

    참고

    생성되는 Openflow 커넥터에 따라 필요한 기본 오브젝트가 달라집니다. 아래 예는 설명 목적으로만 제공됩니다.

    GRANT USAGE ON DATABASE <OPENFLOW_SPCS_DATABASE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    GRANT USAGE ON SCHEMA <OPENFLOW_SPCS_SCHEMA> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy

네트워크 규칙 및 외부 액세스 통합 만들기

Snowflake의 보안 모델은 :doc:`네트워크 정책</user-guide/network-policies>`을 사용하여 Snowflake 외부의 특정 엔드포인트 및 시스템에 대한 보안 액세스를 지원합니다.

네트워크 정책의 두 가지 주요 측면은 네트워크 규칙 및 :doc:`EAI(외부 액세스 통합)</developer-guide/external-network-access/external-network-access-overview>`입니다. 각각은 런타임에 필요한 외부 리소스에 대한 보안 액세스를 제공하는 데 사용됩니다.

네트워크 규칙 및 외부 액세스 통합을 만드는 데 필요한 세 가지 단계가 있습니다.

  1. 네트워크 규칙을 만들어 네트워크 식별자를 논리 영역으로 그룹화합니다.

  2. 외부 액세스 통합(EAI)을 생성하고 네트워크 규칙 목록을 지정한 후 Snowflake 역할에 EAI에 대한 USAGE 권한이 있는지 확인합니다.

  3. 런타임을 만들 때 Openflow UI에서 EAI를 런타임에 연결합니다.

필요한 네트워크 규칙과 EAI를 만들려면 다음 단계를 수행합니다.

참고

이 예에서는 RUNTIME_NAME을 생성 중인 런타임 이름의 자리 표시자로 사용합니다.

  1. 적절한 네트워크 규칙을 만듭니다. 자세한 내용은 CREATE NETWORK RULE 섹션을 참조하십시오.

    참고

    ``<OPENFLOW_DATABASE>``는 네트워크 규칙을 포함할 데이터베이스의 이름을 나타냅니다. Snowflake는 Openflow와 관련된 네트워크 규칙 및 외부 액세스 통합을 위한 특정 데이터베이스를 만들 것을 제안합니다.

    USE DATABASE <OPENFLOW_DATABASE>;
    
    CREATE NETWORK RULE IF NOT EXISTS OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE
        MODE = EGRESS
        TYPE = HOST_PORT
        VALUE_LIST = ('comma separated list of host:port pairs');
    
    Copy
  2. 외부 액세스 통합을 생성하거나 기존 규칙에 네트워크 규칙을 추가합니다. 자세한 내용은 CREATE EXTERNAL ACCESS INTEGRATION 섹션을 참조하세요.

    새 EAI를 생성합니다.

    USE ROLE ACCOUNTADMIN;
    
    CREATE EXTERNAL ACCESS INTEGRATION IF NOT EXISTS OPENFLOW_<RUNTIME_NAME>_EAI
       ALLOWED_NETWORK_RULES = (OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE)
       ENABLED = TRUE;
    
    Copy

    기존 EAI에 네트워크 규칙을 추가하려면 먼저 이미 연결된 규칙을 확인한 다음, EAI를 업데이트하여 기존 규칙과 새 규칙을 모두 포함합니다.

    USE ROLE ACCOUNTADMIN;
    
    -- Check the current rules on the EAI
    DESCRIBE EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI;
    
    Copy

    출력에서 ALLOWED_NETWORK_RULES 속성을 찾고 기존 규칙을 기록합니다. 그런 다음 EAI를 업데이트하여 새 규칙과 함께 모든 기존 규칙을 나열합니다.

    ALTER EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI
       SET ALLOWED_NETWORK_RULES = (
          <EXISTING_RULE_1>,
          <EXISTING_RULE_2>,
          OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE
       );
    
    Copy
  3. 이전에 생성된 런타임 역할에 EAI에 대한 액세스 권한을 부여합니다.

    GRANT USAGE ON INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIME_NAME>;
    
    Copy

다음 단계

런타임 만들기