Práticas recomendadas para migração da autenticação de fator único¶
Esta seção fornece as práticas recomendadas para os clientes sobre como aproveitar os recursos Snowflake para aplicar a autenticação forte e reduzir os riscos de roubo de credenciais. Use essas informações em conjunto com Planejamento para a descontinuidade dos logins com senha de fator único, que destaca as estratégias mais recentes do Snowflake para se afastar da autenticação somente por senha.
As consultas de amostra deste guia são exemplos para ajudar os clientes Snowflake e não devem ser implementadas em ambientes de produção.
Introdução¶
Conforme mencionado neste artigo, o Snowflake se concentra em três pilares principais que facilitam a manutenção da segurança de suas contas:
Prompt: incentive os usuários que não estão usando as práticas recomendadas de segurança a adotá-las (por exemplo, configure a autenticação multifator (MFA).
Aplicação: facilite para os administradores a aplicação da segurança por padrão (por exemplo, exija que todos os usuários humanos usem MFA).
Monitor: forneça a visibilidade de adesão às políticas de segurança (por exemplo, auditar quais usuários não configuraram MFA).
As informações a seguir se concentram principalmente nas práticas recomendadas de monitoramento usando o Snowflake Trust Center e nas etapas de aplicação que aproveitam a autenticação e as políticas de rede.
Ciclo de vida da sessão de conexão Snowflake¶
As conexões com o Snowflake começam com os drivers, conectores ou Snowsight, conforme mostrado no diagrama a seguir:

Quando um usuário ou serviço se conecta ao Snowflake, acontece o seguinte:
Se configurada, a política de redes se aplica. Lembre-se de que as políticas de rede no nível do usuário substituem as políticas de rede no nível da conta.
Se configurada, a política de autenticação será aplicada. Lembre-se de que as políticas de autenticação no nível do usuário substituem as políticas de autenticação no nível da conta.
Se um usuário ou serviço usar a autenticação de senha nativa do Snowflake, a política de senha será aplicada, se configurada.
Se o usuário ou serviço for permitido e autorizado pelos controles acima, as políticas de sessão se aplicam para controlar como um usuário se reautentica após um período de inatividade. As políticas de sessão no nível do usuário substituem as políticas de sessão no nível da conta.
Políticas de rede e autenticação: diretrizes gerais¶
Considere as seguintes diretrizes em todos os casos. Para obter mais informações, consulte Fase 3: proteção.
A Snowflake recomenda enfaticamente a configuração e a aplicação:
Atributo TYPE do usuário para diferenciar entre PERSON (humano), SERVICE e LEGACY_SERVICE.
PERSON: para autenticação interativa por meio de usuários humanos, onde a MFA será aplicada. Por padrão, no momento em que este artigo foi escrito, é NULL, que é tratado da perspectiva de aplicação da MFA como PERSON.
SERVICE: para autenticação de serviço a serviço que usa acesso programático. Isso será isento da aplicação da MFA, mas esses usuários não serão mais compatíveis com a autenticação por senha. Esses usuários terão suporte para OAuth ou somente para pares de chaves.
LEGACY_SERVICE: esse é o único tipo de usuário que oferece suporte à autenticação somente por senha (isento da aplicação de MFA). Ele foi concebido apenas como uma ferramenta de migração, e os clientes devem proteger esses usuários com políticas de rede e monitorá-los com recursos de proteção por senha vazada.
Nota
LEGACY_SERVICE deve ser usado como uma ferramenta de migração e será descontinuado em novembro de 2025.
SCIM para provisionamento automático e configuração do tipo de usuário por meio de atributos do cliente
Políticas de rede para garantir que seus usuários e serviços sejam provenientes apenas de fontes autorizadas e confiáveis, sempre que possível.
Políticas de autenticação para aplicar métodos de autenticação fortes que utilizam credenciais de curta duração, como OAuth e SAML.
Políticas de senha para aplicar as políticas de senha da organização.
Políticas de sessão para limitar os tempos de sessão ociosa.
Para os usuários de serviços, os clientes são incentivados a usar credenciais de curta duração, como OAuth, sempre que possível. Para credenciais de longo prazo, como os pares de chaves, os clientes são aconselhados a alternar essas chaves regularmente e combiná-las com as políticas de rede sempre que possível.
Para usuários humanos interativos, os clientes devem integrar suas contas Snowflake com os provedores de identidade de toda a organização, aproveitando sua própria autenticação federada via SAML com seu próprio provedor de identidade e com seu próprio MFA.
Para casos de uso de acesso de emergência e clientes que usam senhas nativas, a Snowflake recomenda enfaticamente o uso de MFA nativa da Snowflake para esses usuários de emergência.
Os clientes devem alternar suas credenciais regularmente, de acordo com suas políticas internas de segurança.
Os clientes devem sempre usar Trust Center para monitorar seus usuários de risco e integrar suas contas Snowflake ao centro de operações de segurança da organização.
Snowflake North Star para autenticação mais forte¶
Em 2025, a Snowflake oferecerá suporte a recursos adicionais para ajudar os clientes.
No primeiro semestre de 2025¶
Melhorar nosso suporte nativo à MFA para ir além do DUO e passar a oferecer suporte a aplicativos de chave de acesso e aplicativos autenticadores (em versão preliminar privada, visando a disponibilidade geral no fim de abril de 2025).
Suporte nativo ao OAuth em nossos drivers e conectores para simplificar a configuração e adoção do OAuth.
Novos recursos do Trust Center, como:
Notificações por e-mail (a visualização pública está prevista para o final de abril de 2025).
Extensões com nossos parceiros e pacotes de verificadores personalizados (em versão preliminar privada agora, com previsão de disponibilidade geral no fim de julho de 2025).
Trust Center no nível da organização do cliente (em versão preliminar para o fim de abril de 2025).
Mais tarde, em 2025¶
Aprimore o Trust Center para usar a detecção de anomalias por aprendizado de máquina.
Melhore a experiência do usuário com SAML e OAuth usando o Snowsight.
Suporte à identidade da carga de trabalho e OIDC onde os clientes podem usar identidades nativas da CSP, como identidade gerenciada do Azure, funções do AWS e contas de serviço do GCP para conectar suas cargas de trabalho ao Snowflake facilmente sem credenciais.
Ofereça suporte a mTLS em ambas as direções, na entrada para o Snowflake e na saída do Snowflake, para os recursos do cliente com suporte a mTLS.
A Snowflake se reserva o direito de atualizar e alterar a lista e os cronogramas acima conforme a empresa achar necessário; compartilharemos mais detalhes no futuro.
Práticas recomendadas para reforçar a autenticação e as políticas de rede¶
A Snowflake recomenda seguir estas quatro etapas para migrar para uma postura de autenticação mais forte:
Detecte os usuários de risco.
Planeje sua migração para minimizar a interrupção.
Proteja seus usuários no Snowflake.
Monitore continuamente os usuários de risco.

Fase 1: detecção¶
O Snowflake introduziu dois recursos principais:
Pacote de verificadores Threat Intelligence: esse scanner identifica os usuários de risco com base na lógica do próximo diagrama. Esta seção também inclui uma amostra de consulta para listar os usuários de risco e explicar por que eles são de risco.
Proteção contra senhas vazadas: isso verificará e desativará automaticamente as senhas de usuário descobertas na dark web. Isso oferece proteção integrada contra vazamento de senhas e ajuda a limitar o potencial de exfiltração de dados. Os usuários comprometidos podem entrar em contato com os administradores de conta para redefinir suas senhas.
Os clientes devem ativar o verificador de inteligência contra ameaças e personalizar a frequência de verificação. Em geral, esse verificador deve ser executado uma vez por semana para informar sobre a postura atual dos usuários de risco. Os resultados de todos os verificadores de confiança são armazenados no esquema SNOWFLAKE.TRUST_CENTER
. Os clientes podem aproveitar os alertas nativos do Snowflake para notificar automaticamente os administradores de segurança ou até mesmo tomar medidas caso um usuário de risco seja detectado.
Amostras de consultas para listas de usuários de risco¶
A Snowflake adicionou recentemente dois novos verificadores: um para usuários pessoais e outro para usuários de serviços. Isso permite que os clientes tenham listas separadas de usuários que usam o logon por senha de fator único, dependendo do tipo de usuário.
Você pode retornar uma lista de usuários de risco para cada tipo.
Lista de usuários humanos de risco¶
SELECT *
FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
WHERE event_id =
(SELECT event_id FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
WHERE scanner_id = 'THREAT_INTELLIGENCE_NON_MFA_PERSON_USERS'
ORDER BY event_id DESC LIMIT 1) AND total_at_risk_count != 0
;
Lista de usuários de serviço de risco¶
SELECT *
FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
WHERE event_id =
(SELECT event_id FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
WHERE scanner_id = 'THREAT_INTELLIGENCE_PASSWORD_SERVICE_USERS'
ORDER BY event_id DESC LIMIT 1 ) and total_at_risk_count != 0
;
Distribuição de usuários no TYPE e método de autenticação usado¶
Além da consulta anterior, é útil listar a distribuição de usuários entre os tipos de usuários e os métodos de autenticação usados. Isso ajuda os clientes a criar estratégias de migração de usuários para os métodos de autenticação mais fortes, como SAML e OAuth. Por exemplo, se um usuário estiver sendo exibido como arriscado (porque tem uma senha no Snowflake), mas esse usuário estiver usando apenas a autenticação SAML, é aconselhável remover essa senha do Snowflake o mais rápido possível.
WITH users AS (
SELECT DISTINCT
user_id
, name
, login_name
, type
, email
FROM
SNOWFLAKE.ACCOUNT_USAGE.USERS
WHERE
DELETED_ON IS NULL)
SELECT
u.user_id
, a.event_timestamp
, a.user_name
, u.type
, a.reported_client_type
, a.first_authentication_factor
, a.second_authentication_factor
FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY AS a
JOIN USERS u ON a.user_name = u.name
;
Fase 2: planejamento da migração¶
O planejamento da migração começa com Fase 1: detecção. Após identificar os usuários de risco, comece a planejar para seguir Políticas de rede e autenticação: diretrizes gerais. Sempre que possível, você deve abandonar as credenciais estáticas, como senhas e pares de chaves, e aproveitar o logon único (autenticação federada), como SAML para usuários interativos e OAuth para usuários programáticos (SERVICE) e interativos (PERSON).
Se você for forçado a usar credenciais estáticas (par de chaves ou senhas) para oferecer suporte a alguns aplicativos legados, considere o seguinte em seu planejamento:
Utilize as políticas de rede sempre que possível.
Faça a rotação dessas credenciais estáticas com base nas políticas de sua organização.
Considerações sobre a migração¶
Aqui estão algumas considerações que você deve ter em mente ao planejar sua migração:
Primeiro, defina os tipos de usuário (isso pode ser automatizado via SCIM).
Em segundo lugar, verifique quais métodos de autenticação são compatíveis com seus aplicativos; o Snowflake oferece suporte a uma variedade de métodos de autenticação, como OAuth, SAML, par de chaves, MFA e assim por diante. No entanto, o aplicativo que se conecta ao Snowflake também precisa oferecer suporte a métodos de autenticação fortes. Há dois casos de uso:
O aplicativo já é compatível com SAML e/ou OAuth. Incentivados você a migrar para essa autenticação o mais rápido possível.
O aplicativo é antigo e não oferece suporte a métodos de autenticação fortes, como SAML ou OAuth; ele apenas oferece suporte a senhas. Nesse caso, você é aconselhado a atualizar seu aplicativo legado. Enquanto isso, você pode aproveitar as políticas de rede, a rotação de senhas e os recursos de proteção de senhas vazadas até atualizar o aplicativo.
Em seguida, os clientes devem considerar o seguinte para usuários locais (criados manualmente no Snowflake que não estejam habilitados para SAML ou OAuth):
Para um aplicativo compatível com SSO, troque o usuário local por usuários habilitados para SSO e considere o tempo de inatividade ao trocar de usuário.
Para alternar os usuários locais para SSO, certifique-se de que esses usuários existam em seu IdP e, em seguida, sejam provisionados no Snowflake manualmente ou, de preferência, automaticamente, por meio do SCIM.
Desative usuários locais não utilizados.
O Snowflake oferece suporte a políticas de autenticação, políticas de rede e políticas de senha tanto no nível do usuário quanto no nível da conta. Considere primeiro as políticas no nível do usuário para migrar gradualmente (as políticas no nível do usuário têm prioridade sobre as políticas no nível da conta):
A Snowflake recomenda políticas de rede no nível de usuário para aplicativos que usam usuários de serviço (TYPE = SERVICE ou LEGACY_SERVICE).
Para usuários humanos (TYPE = PERSON ou NULL), é possível começar com políticas de rede no nível do usuário e, em seguida, aplicar políticas de rede no nível da conta para proteger todas as populações de usuários que não têm políticas específicas no nível do usuário.
O mesmo conceito com as políticas de MFA começa primeiro com as políticas em nível de usuário.
Se você tiver um aplicativo legado que não ofereça suporte ao login único, a Snowflake recomenda aproveitar os tokens de acesso programático (PATs), que, por padrão, estão vinculados a funções específicas, exigem uma política de redes e têm prazo determinado.
Fase 3: proteção¶
O diagrama a seguir ajuda você a navegar pelas práticas recomendadas de autenticação. Como você pode ver, a Snowflake sempre recomenda usar primeiro a autenticação e a autorização federadas.

Siga estas etapas para reduzir o risco de comprometimento da conta Snowflake:
Defina o tipo de usuário¶
A primeira etapa da fase de proteção é definir os tipos de usuário automaticamente pelo SCIM ou manualmente:
ALTER USER svc_user1 SET TYPE = SERVICE;
ALTER USER user1@example.COM SET TYPE = PERSON;
-- LEGACY APPLICATION ONLY
Além disso, agora é possível definir o tipo de usuário administrador quando ele cria uma conta:
CREATE ACCOUNT <name> [ ADMIN_USER_TYPE = PERSON | SERVICE | LEGACY_SERVICE | NULL ];
Dica
Muitos clientes geralmente têm algum padrão em seus nomes de usuário de serviço (como local_svc_user1
). Você pode aproveitar esse padrão de nomenclatura para definir o tipo de SERVICE em escala.
Remova as senhas locais quando elas não forem necessárias¶
Utilize as consultas em Distribuição de usuários em TYPE e Método AuthN usado e Lista de usuários de risco, com base nas descobertas do Trust Center, para começar a limpar qualquer senha no Snowflake para um usuário que já esteja usando SAML, OAuth ou par de chaves exclusivamente.
Crie políticas de autenticação para usuários do serviço¶
A Snowflake recomenda o uso de OAuth para usuários de serviços programáticos, e você pode aplicar isso com políticas de autenticação:
CREATE AUTHENTICATION POLICY PROGRAMMATIC_ACCESS_USER_AUTH
CLIENT_TYPES = ('DRIVERS', 'SNOWSQL')
AUTHENTICATION_METHODS = ('OAUTH')
SECURITY_INTEGRATIONS = ('<OAUTH SECURITY INTEGRATIONS>');
ALTER USER <SERVICE_USER> SET AUTHENTICATION POLICY PROGRAMMATIC_ACCESS_USER_AUTH;
Os clientes ainda podem usar o par de chaves para autenticação com usuários SERVICE, mas devem combinar isso com as políticas de rede e alternar regularmente suas chaves.
Nota
Se você tiver um sistema legado que não ofereça suporte a par de chaves ou OAuth e precisar usar uma senha para autenticação, crie uma política de autenticação adicional com o método de autenticação PASSWORD
e aplique-a a esse usuário programático específico. Combine essa abordagem com Políticas de rede e autenticação: diretrizes gerais.
Crie políticas de autenticação para aplicar MFA em usuários humanos¶
A Snowflake recomenda que os clientes usem seus próprios provedores de identidade SAML (IdPs) com qualquer solução de MFA compatível com IdP. O exemplo de política de autenticação a seguir ajuda os clientes a:
Aplicar a MFA nativa do Snowflake a todos os usuários humanos que usam senhas nativas do Snowflake.
Confiar no IdP de SAML cliente para aplicar MFA a usuários de login único.
CREATE AUTHENTICATION POLICY HUMAN_ACCESS_ACCOUNT_ENFORCE_MFA
AUTHENTICATION_METHODS = ('SAML', 'PASSWORD')
SECURITY_INTEGRATIONS = ('<SAML SECURITY INTEGRATIONS>')
MFA_AUTHENTICATION_METHODS = ('PASSWORD'); -- enforce Snowflake MFA for native passwords only
MFA_ENROLLMENT = 'REQUIRED';
Os clientes devem considerar uma situação de emergência caso o IdP cliente esteja offline para que seus administradores de conta ainda possam fazer login em suas contas Snowflake.
CREATE AUTHENTICATION POLICY ACCOUNTADMIN_BREAKGLASS_MFA
AUTHENTICATION_METHODS = ('PASSWORD')
MFA_AUTHENTICATION_METHODS = ('PASSWORD') -- enforce Snowflake MFA for native passwords only
MFA_ENROLLMENT = 'REQUIRED';
MFA para SSO¶
Nota
Para políticas mais rígidas, é possível criar políticas de aplicação de MFA adicionais e aplicá-las diretamente no nível do usuário: por exemplo, quando o cliente do IdP não oferece suporte a MFA, para aplicar a MFA do Snowflake em um usuário independentemente da aplicação de MFA no nível do IdP. (Alguns clientes poderiam usar essa opção para MFA duplo para usuários altamente privilegiados, como administradores de conta)
CREATE AUTHENTICATION POLICY ACCOUNTADMIN_DOUBLE_MFA
AUTHENTICATION_METHODS = ('PASSWORD', 'SAML')
SECURITY_INTEGRATIONS = ('<SAML SECURITY INTEGRATIONS>')
MFA_AUTHENTICATION_METHODS = ('PASSWORD', 'SAML') -- double MFA
MFA_ENROLLMENT = 'REQUIRED';
Criação da política de senhas¶
Caso você tenha um sistema legado ou uma situação de emergência em que precise usar senhas nativas do Snowflake, aproveite as políticas de senhas do Snowflake para corresponder às políticas de senha da organização, se elas forem diferentes das políticas padrão.
CREATE PASSWORD POLICY password_policy_account
PASSWORD_MIN_LENGTH = 32
-- PASSWORD_MAX_LENGTH = <integer>
PASSWORD_MIN_UPPER_CASE_CHARS = 6
PASSWORD_MIN_LOWER_CASE_CHARS = 6
PASSWORD_MIN_NUMERIC_CHARS = 4
PASSWORD_MIN_SPECIAL_CHARS = 8
PASSWORD_MIN_AGE_DAYS = 10
PASSWORD_MAX_AGE_DAYS = 30
PASSWORD_MAX_RETRIES = 3
PASSWORD_LOCKOUT_TIME_MINS = 30
PASSWORD_HISTORY = 24
COMMENT = '<string_literal>';
Criar política de sessão¶
A Snowflake recomenda que você crie políticas de sessão para aplicar a reautenticação após um período específico de inatividade. Este é apenas um exemplo; você pode personalizar as políticas no nível do usuário individual.
CREATE SESSION POLICY session_policy_account
SESSION_IDLE_TIMEOUT_MINS = 240 -- Snowflake clients and programmatic clients
SESSION_UI_IDLE_TIMEOUT_MINS = 20 -- For the Snowflake web interface
COMMENT = '<string_literal>';
Crie políticas de rede para usuários de serviços¶
Em geral, os usuários de serviço ou de acesso programático devem vir de endereços IP autorizados (ou VPCE ID, LinkID e assim por diante, no caso de conectividade privada).
A Snowflake recomenda a criação de políticas de rede no nível do usuário do serviço para restringir o acesso a esses usuários de acesso programático de fontes autorizadas e confiáveis. Os clientes devem considerar a aplicação de regras de rede também nos estágios internos.
Nota
As regras de rede para estágios internos são compatíveis com o Snowflake apenas nas regiões AWS; para o Azure, você pode considerar o bloqueio de acesso público e, para GCP com controles de serviço, entre em contato com o suporte Snowflake.
Há casos em que, devido à natureza dinâmica da nuvem, alguns provedores de nuvem não podem fornecer intervalos de endereços IP para serem listados nas políticas de rede do Snowflake. Para esses cenários, siga as Diretrizes gerais das políticas de rede e autenticação. Como alternativa, considere a conectividade privada, se sua ferramenta for compatível com ela.
As conexões podem vir de redes privadas ou públicas, dependendo se o cliente está usando conectividade privada ou não. Lembre-se de que você pode permitir conectividade pública e privada ao mesmo tempo adicionando várias regras de rede que incluam as tags relevantes IPs (públicos ou privados) e/ou CSP (como VPCE ID e LinkIDs).
-- ACCESS FROM PUBLIC IP ADDRESSES
CREATE NETWORK RULE PROGRAMMATIC_ACCESS_USER_NET_RULE_PUBLIC
TYPE = IPV4
VALUE_LIST = ( 'PUBLIC IP1' , 'XX.XX.XX.XX/24' [ , ... ] )
MODE = INGRESS
;
-- ACCESS FROM PRIVATE NETWORK
CREATE NETWORK RULE PROGRAMMATIC_ACCESS_USER_NET_RULE_PL
TYPE = AWSVPCEID
VALUE_LIST = ( 'VPCE-123ABC3420C1931' , 'VPCE-123ABC3420C1932' )
MODE = INGRESS
;
-- RESTRICT ACCESS TO INTERNAL STAGE USING VPCE ID
CREATE NETWORK RULE PROGRAMMATIC_ACCESS_USER_NET_RULE_INTERNAL_STAGE
TYPE = AWSVPCEID
VALUE_LIST = ( 'VPCE-123ABC3420C1933' )
MODE = INTERNAL_STAGE
;
CREATE NETWORK POLICY PROGRAMMATIC_ACCESS_USER_NET_POLICY
ALLOWED_NETWORK_RULE_LIST =
(
'PROGRAMMATIC_ACCESS_USER_NET_RULE_PUBLIC',
'PROGRAMMATIC_ACCESS_USER_NET_RULE_PL',
'PROGRAMMATIC_ACCESS_USER_NET_RULE_INTERNAL_STAGE'
)
--BLOCKED_NETWORK_RULE_LIST = ( 'OPTIONAL BLOCKED LIST OF IPS' )
;
Crie políticas de rede no nível da conta¶
As políticas no nível da conta funcionam como políticas de rede de segurança padrão para usuários que não têm políticas de rede aplicadas diretamente a eles. A prática recomendada é manter essas políticas tão restritivas e curtas quanto possível e, ao mesmo tempo, usar políticas no nível do usuário para atender às necessidades específicas do usuário.
A Snowflake não recomenda a criação de políticas de rede enormes no nível da conta para satisfazer todas as necessidades da organização; em vez disso, habilite políticas no nível do usuário para ter controles mais granulares.
Semelhante às políticas de rede no nível do usuário, as conexões podem vir de redes privadas ou públicas, dependendo de o cliente estar usando conectividade privada. Lembre-se de que você pode permitir conectividade pública e privada ao mesmo tempo adicionando várias regras de rede que incluam as tags relevantes IPs (públicos ou privados) e/ou CSP (como VPCE ID e LinkIDs).
-- ACCESS FROM PUBLIC IP ADDRESSES
CREATE NETWORK RULE HUMAN_ACCESS_ACCOUNT_NET_RULE_PUBLIC
TYPE = IPV4
VALUE_LIST = ( 'PUBLIC IP1' , 'XX.XX.XX.XX/24' [ , ... ] )
MODE = INGRESS
;
-- ACCESS FROM PRIVATE NETWORK
CREATE NETWORK RULE HUMAN_ACCESS_ACCOUNT_NET_RULE_PL
TYPE = AWSVPCEID
VALUE_LIST = ( 'VPCE-123ABC3420C1934' , 'VPCE-123ABC3420C1936' )
MODE = INGRESS
;
-- RESTRICT ACCESS TO INTERNAL STAGE USING VPCE ID
CREATE NETWORK RULE HUMAN_ACCESS_ACCOUNT_NET_RULE_INTERNAL_STAGE
TYPE = AWSVPCEID
VALUE_LIST = ( 'VPCE-123ABC3420C1937')
MODE = INTERNAL_STAGE
;
CREATE NETWORK POLICY ACCOUNT_LEVEL_NET_POLICY
ALLOWED_NETWORK_RULE_LIST =
(
'HUMAN_ACCESS_ACCOUNT_NET_RULE_PUBLIC',
'HUMAN_ACCESS_ACCOUNT_NET_RULE_PL',
'HUMAN_ACCESS_ACCOUNT_NET_RULE_INTERNAL_STAGE'
)
--BLOCKED_NETWORK_RULE_LIST = ( 'OPTIONAL BLOCKED LIST OF IPS' )
;
Proteja os usuários do serviço¶
Os usuários com TYPE=SERVICE
estão isentos das políticas de aplicação de MFA no nível da conta e têm restrições para melhorar a postura de segurança de casos de uso não interativos. Notavelmente, os usuários do tipo SERVICE não podem fazer login usando uma senha ou SAML SSO. Veja a advertência abaixo.
-- FOR EVERY SERVICE PROGRAMMATIC ACCESS USER
ALTER USER SERVICE_USER_1 SET
TYPE = SERVICE
NETWORK_POLICY = PROGRAMMATIC_ACCESS_USER_NET_POLICY
AUTHENTICATION POLICY = PROGRAMMATIC_ACCESS_USER_AUTH;
Usuários de serviços para aplicativos legados¶
Se você tiver um aplicativo legado que não seja compatível com OAuth, use tokens de acesso programático (PATs) em vez de usar senhas com LEGACY_SERIVCE.
Os PATs têm muitas restrições para melhorar sua segurança; quando você gera um PAT, ele é vinculado a funções específicas, tem limite de tempo e fica vinculado a uma política de redes aplicada a esse usuário específico (nível de conta ou nível de usuário).
Você pode copiar o PAT e usá-lo no campo de senha de seu aplicativo legado; não é necessário usar a autenticação LEGACY_SERVICE ou somente de senha para esses aplicativos legados.
Cuidado
Como os usuários do tipo SERVICEnão podem usar senhas como método de autenticação, para sistemas legados que não oferecem suporte a nenhuma forma mais forte de autenticação, os clientes são aconselhados a usar um PAT.
Nota
Lembre-se de que LEGACY_SERVICE será descontinuado em novembro de 2025.
Aplique as políticas de senha e sessão no nível da conta¶
O administrador de segurança Snowflake deve aplicar políticas básicas de senha e sessão no nível da conta e, em seguida, substituir essas políticas por políticas no nível do usuário, conforme necessário.
ALTER ACCOUNT SET
SESSION POLICY = SESSION_POLICY_ACCOUNT;
PASSWORD POLICY = PASSWORD_POLICY_ACCOUNT;
Teste os usuários do serviço¶
Nesse estágio, a conta tem políticas de senha e sessão aplicadas; os usuários programáticos do serviço estão isentos de MFA; e eles têm suas próprias políticas de autenticação específicas e políticas de rede que garantem que as conexões sejam estabelecidas a partir de fontes confiáveis e usem os métodos de autenticação recomendados, como OAuth ou par de chaves.
O administrador de segurança deve testar alguns usuários do serviço para garantir operações tranquilas e confirmar que as conexões são provenientes de fontes confiáveis e usam os métodos de autenticação adequados. Os administradores devem usar LOGIN_HISTORY, além do Trust Center, para confirmar que os usuários do serviço estão protegidos pelas políticas de rede.
SELECT *
FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(TIME_RANGE_START =>
DATEADD('HOURS',-1,CURRENT_TIMESTAMP()),CURRENT_TIMESTAMP()))
ORDER BY EVENT_TIMESTAMP;
Proteja a conta com a aplicação de MFA¶
Para aplicar MFA a todos os usuários que não sejam do tipo SERVICE, aplique a política de aplicação de MFA no nível da conta.
Essas políticas ajudam a garantir que todos os usuários interativos humanos habilitem a MFA a partir de seu próprio IdP ou da MFA nativa do Snowflake.
ALTER ACCOUNT SET
AUTHENTICATION POLICY = HUMAN_ACCESS_ACCOUNT_ENFORCE_MFA;
Se quiser aplicar MFA dupla aos seus usuários altamente privilegiados, como administradores de conta, imponha a MFA nesse nível de usuário. No entanto, você precisa encontrar um equilíbrio entre os procedimentos de acesso de emergência, caso o IdP esteja inoperante, e seus requisitos de segurança.
ALTER USER SUPER_PROTECTED_ACCOUNTADMIN_1
AUTHENTICATION POLICY = ACCOUNTADMIN_DOUBLE_MFA;
Para uma situação de emergência:
ALTER USER BREAKGLASS_ACCOUNTADMIN_1
AUTHENTICATION POLICY = ACCOUNTADMIN_BREAKGLASS_MFA;
Aplique políticas de rede no nível da conta¶
Por fim, é hora de aplicar políticas de rede no nível da conta para proteger todos os outros usuários que não têm políticas de rede explícitas.
ALTER ACCOUNT SET
NETWORK_POLICY = ACCOUNT_LEVEL_NET_POLICY;
Desative os usuários não utilizados¶
O verificador Trust Center CIS (1.8) monitorará os usuários que não estiveram ativos nos últimos 90 dias. Conforme mostrado no diagrama a seguir, você pode clicar em Open a Worksheet para mostrar a consulta que lista os usuários inativos:
SELECT
F.VALUE:ENTITY_ID::VARCHAR AS ENTITY_ID,
F.VALUE:ENTITY_NAME::VARCHAR AS ENTITY_NAME,
F.VALUE:ENTITY_OBJECT_TYPE::VARCHAR AS ENTITY_OBJECT_TYPE,
F.VALUE:ENTITY_DETAIL AS ENTITY_DETAIL
FROM
SNOWFLAKE.TRUST_CENTER.FINDINGS,
LATERAL FLATTEN(INPUT => AT_RISK_ENTITIES) AS F;
A Snowflake recomenda enfaticamente que você desabilite esses usuários.
Fase 4: monitoramento contínuo¶
Aproveite o pacote de verificadores de inteligência contra ameaças do Trust Center para monitorar sua MFA e a aplicação de políticas de redes. Com o recurso de proteção contra vazamento de senhas, o Snowflake monitorará a dark web em busca de credenciais roubadas e desativará qualquer usuário que tenha um hash de senha que corresponda ao encontrado na dark web. Você também pode aproveitar os alertas nativos do Snowflake, juntamente com consultas personalizadas para criar alertas adicionais de higiene para:
Usuários sem tipo definido especificamente
Um aplicativo com credenciais estáticas, como senhas ou pares de chaves
Um novo usuário com LEGACY_SERVICE adicionado
Entrar em contato regularmente com aplicativos legados para atualizar para uma autorização mais forte