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.
As integrações de acesso externo e suas regras de rede subjacentes devem ser criadas por um administrador da organização.
Criação de integrações de acesso externo (EAI)¶
Para criar uma integração de acesso externo para notebooks, faça o seguinte:
Crie uma regra de rede que defina um conjunto de endereços IP ou domínios usando o comando CREATE NETWORK RULE.
Crie uma integração de acesso externo que especifique a lista de regras de rede permitidas usando o comando CREATE EXTERNAL ACCESS INTEGRATION.
Nota
Somente um ACCOUNTADMIN ou uma função com o privilégio de criar EAIs pode configurá-los para pontos de extremidade externos específicos. Para obter informações sobre os privilégios necessários, consulte Requisitos de controle de acesso.
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;
Concessão de privilégios necessários para criar integrações de acesso externo¶
Depois de criar as EAIs, você deve conceder o privilégio USAGE na integração a uma função de conta.
A função usada para criar uma EAI torna-se a proprietária. Como proprietária, a função deve conceder o privilégio USAGE a outras funções. Para conceder privilégios USAGE nas integrações, use 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.
Habilitação de integrações de acesso externo (EAI)¶
Após criar e provisionar EAIs, certifique-se de reiniciar a sessão do notebook para ver as integrações de acesso que você criou no painel de acesso externo.
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, em seguida, selecione o painel External access.
Na lista de integrações de acesso externo disponíveis, selecione os botões de alternância ao lado de cada integração para ativá-las ou desativá-las.
Para habilitar as novas integrações, consulte Habilitação de integrações de acesso externo (EAI).
Como usar segredos com integrações de acesso externo¶
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 o comando 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.
Recursos adicionais¶
Para obter a sintaxe detalhada, consulte Visão geral do 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.