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>);
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.
Faça login no Snowsight.
Selecione Projects » Notebooks.
Para acessar a configuração de acesso externo, selecione
no canto superior direito do seu notebook.
Selecione Notebook settings e selecione o painel External access.
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.
Crie uma regra de rede para definir um conjunto de endereços IP ou domínios usando o comando CREATE NETWORK RULE.
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;
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;
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;
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;
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¶
Para uma sintaxe detalhada, consulte acesso à rede externa.
Para obter exemplos adicionais de EAIs, consulte Exemplos de acesso à rede externa ou Configuração de acesso externo para o Snowflake Notebooks no Github.