Regras de rede¶
As regras de rede são objetos em nível de esquema que agrupam identificadores de rede em unidades lógicas.
Os recursos do Snowflake que restringem o tráfego de rede podem fazer referência a regras de rede em vez de definir identificadores de rede diretamente no recurso. Por exemplo, uma política de redes pode fazer referência a uma regra de rede que inclui endereços IP para controlar o acesso ao serviço Snowflake e estágios internos com base nesses endereços. Você também pode usar uma regra de rede ao acessar um local de rede externo a partir de uma UDF ou procedimento.
Uma regra de rede não define se seus identificadores devem ser permitidos ou bloqueados. O recurso Snowflake que usa a regra de rede especifica se os identificadores na regra são permitidos ou proibidos.
Identificadores de rede suportados¶
Os administradores precisam ser capazes de restringir o acesso com base no identificador de rede associado à origem ou ao destino de uma solicitação. As regras de rede permitem que os administradores permitam ou bloqueiem os seguintes identificadores de rede:
- Solicitações recebidas
Endereços IPv4
VPCE IDs de pontos de extremidade AWS VPC. VPC IDs não são suportados.
Pontos de extremidade LinkIDs do Azure. Execute a função SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS para recuperar o LinkID associado a uma conta.
- Solicitações enviadas
Domínios, incluindo um intervalo de portas opcional
Cada regra de rede contém uma lista de um ou mais identificadores de rede do mesmo tipo. A propriedade TYPE
da regra de rede indica o tipo de identificadores incluídos na regra. Por exemplo, se a propriedade TYPE
for IPV4
, a lista de valores da regra de rede deverá conter endereços IPv4 ou intervalos de endereços válidos na notação CIDR.
Solicitações recebidas ou enviadas¶
O modo de uma regra de rede indica se o recurso Snowflake que usa a regra restringe o recebimento ou envio de solicitações.
Solicitações recebidas¶
As políticas de redes protegem o serviço Snowflake e os estágios internos do tráfego de entrada. Quando uma regra de rede é usada com uma política de redes, o administrador pode definir o modo como um dos seguintes:
INGRESS
O comportamento do modo
INGRESS
depende do valor da propriedadeTYPE
da regra de rede.Se
TYPE=IPV4
, por padrão, a regra de rede controla o acesso apenas ao serviço Snowflake.Se o administrador da conta ativar o parâmetro ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES,
MODE=INGRESS
eTYPE=IPV4
também protegerão um estágio interno do AWS.Se
TYPE=AWSVPCEID
, a regra de rede controlará o acesso apenas ao serviço Snowflake.Se quiser restringir o acesso ao estágio interno do AWS com base no VPCE ID de um ponto de extremidade de interface, você deverá criar uma regra de rede separada usando o modo
INTERNAL_STAGE
.
INTERNAL_STAGE
Controla o acesso a um estágio interno do AWS sem restringir o acesso ao serviço Snowflake. Usar este modo requer o seguinte:
O administrador da conta deve ativar o parâmetro ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES.
A propriedade
TYPE
da regra de rede deve serAWSVPCEID
.
Para contas no Microsoft Azure, não é possível usar uma regra de rede para restringir o acesso ao estágio interno. No entanto, você pode bloquear todo o tráfego da rede pública para que não acesse o estágio interno.
Solicitações enviadas¶
Os administradores podem usar regras de rede com recursos que controlam para onde as solicitações podem ser enviadas. Nestes casos, o administrador define a regra de rede com o seguinte modo:
EGRESS
Indica que a regra de rede é usada para tráfego enviado do Snowflake.
Atualmente usado com acesso à rede externa, que permite que uma UDF ou procedimento envie solicitações para um local de rede externo.
Criação de uma regra de rede¶
Um administrador executa o comando CREATE NETWORK RULE para criar uma nova regra de rede, especificando uma lista de identificadores de rede junto com o tipo desses identificadores.
O administrador usa o parâmetro MODE
para indicar se a regra de rede é usada para restringir o envio ou o recebimento das solicitações. Se o administrador não incluir o parâmetro MODE
, o padrão será INGRESS
, o que significa que a regra de rede é usada pelas políticas de redes para restringir o tráfego de rede de entrada para o serviço Snowflake.
A criação de uma regra de rede não define se está permitindo ou bloqueando os identificadores de rede. Os administradores especificam essas restrições ao configurar o recurso Snowflake que usa a regra de rede.
Exemplo: regra de rede para política de redes
O código no exemplo a seguir usa uma função personalizada para criar uma regra de rede que pode ser usada para permitir ou bloquear o tráfego de um intervalo de endereços IP para o serviço Snowflake:
CREATE ROLE network_admin;
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
MODE = INGRESS
TYPE = IPV4
VALUE_LIST = ('47.88.25.32/27');
Endereços IPv4¶
Ao especificar endereços IP para uma regra de rede, o Snowflake oferece suporte a intervalos de endereços IP usando a notação Classless Inter-Domain Routing (CIDR).
Por exemplo, 192.168.1.0/24
representa todos os endereços IPv4 no intervalo de 192.168.1.0
a 192.168.1.255
.
Modificação de uma regra de rede¶
O proprietário de uma regra de rede pode executar o comando ALTER NETWORK RULE para substituir os identificadores de rede e os comentários da regra. Você não pode adicionar ou remover identificadores de rede individuais à regra de rede; os identificadores existentes são perdidos ao adicionar novos valores.
Os TYPE
e MODE
da regra de rede não podem ser modificados.
Por exemplo, o proprietário de uma regra de rede pode modificá-la para que possa ser usada para permitir ou bloquear o tráfego de um novo intervalo de endereços IPv4:
ALTER NETWORK RULE cloud_network SET VALUE_LIST = ('47.88.25.32/27');
O proprietário da regra de rede também pode remover todos os identificadores de rede da regra:
ALTER NETWORK RULE cloud_network UNSET VALUE_LIST;
Replicação de regras de rede¶
As regras de rede são objetos no nível do esquema e são replicadas com o banco de dados no qual estão contidas.
Para obter informações sobre como replicar as políticas de redes que usam regras de rede, consulte Replicação de políticas de redes.
Privilégios e comandos¶
Comando |
Privilégio |
Descrição |
---|---|---|
CREATE NETWORK RULE em SCHEMA |
Cria uma nova regra de rede. |
|
OWNERSHIP em NETWORK RULE |
Modifica uma regra de rede existente. |
|
OWNERSHIP em NETWORK RULE |
Remove uma regra de rede existente do sistema. |
|
OWNERSHIP em NETWORK RULE |
Descreve as propriedades de uma regra de rede existente. |
|
OWNERSHIP em NETWORK RULE ou USAGE em SCHEMA |
Lista todas as regras de rede no sistema. |