Configurar acesso externo para o Snowflake Notebooks

Por padrão, o Snowflake restringe solicitações de tráfego de rede de pontos de extremidade externos. Para acessar pontos de extremidade externos, você precisa criar uma integração de acesso à rede externa. Este tópico descreve como você pode definir o acesso à rede externa para seu notebook.

Na maioria dos casos, APIs requerem uma chave API. Para permitir acesso externo, use SQL para associar um segredo (como a chave API) ao seu notebook. Para associar manualmente um segredo a um notebook, use ALTER NOTEBOOK … SET SECRETS:

ALTER NOTEBOOK <name>
 SET SECRETS = ('<secret_variable_name>' = <secret_name>);
Copy

Para recuperar um segredo após associá-lo a um notebook, consulte API de Python para acesso secreto.

Habilitar integrações de acesso externo existentes (EAI)

Nota

Isso deve ser executado usando a função ACCOUNTADMIN.

  1. Faça login no Snowsight.

  2. Selecione Projects » Notebooks.

  3. Para acessar a configuração de acesso externo, selecione mais ações para planilha no canto superior direito do seu notebook.

  4. Selecione Notebook settings e selecione o painel External access.

  5. Você verá uma lista de integrações de acesso externo disponíveis para você. Você pode selecionar os botões ao lado de cada integração para habilitá-las ou desabilitá-las.

Provisão de integração de acesso externo

Integrações de acesso externo, juntamente com suas regras de rede subjacentes, precisam ser criadas e provisionadas por um administrador da organização.

Criar integração de acesso externo

Há duas etapas na criação de uma integração de acesso externo para notebooks.

  1. Crie uma regra de rede para definir um conjunto de endereços IP ou domínios usando o comando CREATE NETWORK RULE.

  2. Crie uma integração de acesso externo para especificar a lista permitida de regras de rede usando o comando CREATE EXTERNAL ACCESS INTEGRATION.

Os exemplos a seguir mostram como definir o acesso externo para sites comuns de ciência de dados e machine learning.

Crie uma integração de acesso externo para PyPI:

CREATE OR REPLACE NETWORK RULE pypi_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('pypi.org', 'pypi.python.org', 'pythonhosted.org',  'files.pythonhosted.org');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION pypi_access_integration
ALLOWED_NETWORK_RULES = (pypi_network_rule)
ENABLED = true;
Copy

Crie uma integração de acesso externo para HuggingFace:

CREATE OR REPLACE NETWORK RULE hf_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('huggingface.co', 'cdn-lfs.huggingface.co');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION hf_access_integration
ALLOWED_NETWORK_RULES = (hf_network_rule)
ENABLED = true;
Copy

Permita todo o acesso à rede com uma integração de acesso externo:

CREATE OR REPLACE NETWORK RULE allow_all_rule
MODE= 'EGRESS'
TYPE = 'HOST_PORT'
VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION allow_all_integration
ALLOWED_NETWORK_RULES = (allow_all_rule)
ENABLED = true;
Copy

Provisão de integração de acesso externo

Depois de criar as EAIs, você deve conceder o privilégio USAGE na integração a uma função de conta.

Você pode conceder o privilégio USAGE nas integrações com os seguintes comandos:

GRANT USAGE ON INTEGRATION pypi_access_integration TO ROLE my_notebook_role;
GRANT USAGE ON INTEGRATION hf_access_integration TO ROLE my_notebook_role;
GRANT USAGE ON INTEGRATION allow_all_integration TO ROLE my_notebook_role;
Copy

Nota

É importante conceder o privilégio USAGE na integração à função que cria os notebooks. USAGE concedido à função PUBLIC não funcionará.

Para uma sintaxe detalhada, consulte acesso à rede externa.

Habilitar integrações

Depois de criar e provisionar EAIs, certifique-se de reiniciar a sessão do notebook. Agora, você deve ver as integrações de acesso que criou no painel de acesso externo. Para habilitar as novas integrações, consulte Habilitar integrações de acesso externo existentes (EAI).

Recursos adicionais