Como trabalhar com orçamentos de privacidade¶
Este tópico descreve as tarefas que um provedor de dados que implementou privacidade diferencial pode executar para gerenciar orçamentos de privacidade. Para uma introdução aos orçamentos de privacidade e como eles ajudam a evitar que consultas revelem informações confidenciais sobre uma entidade, consulte Como limitar a perda de privacidade.
Um orçamento de privacidade é criado automaticamente quando você define um nome de orçamento de privacidade no corpo da política de privacidade. Você não cria um orçamento de privacidade independente de uma política de privacidade.
Para gerenciar um orçamento de privacidade, você precisa privilégio OWNERSHIP na política de privacidade que especifica o orçamento de privacidade.
Visualização de um orçamento de privacidade¶
Cada orçamento de privacidade é atribuído a uma política de privacidade. Pode haver vários orçamentos de privacidade com o mesmo nome, mas cada um é exclusivo de uma política de privacidade. Dentro de uma política de privacidade, um orçamento de privacidade é ainda mais atribuído à conta do consumidor, causando perda de privacidade. Como resultado, várias contas podem ter um orçamento de privacidade com o mesmo nome e limite de perda de privacidade, mas o Snowflake contabiliza a perda cumulativa de privacidade para cada conta separadamente.
Visualizar um orçamento de privacidade permite que você veja seu limite de perda de privacidade, bem como a perda cumulativa de privacidade incorrida pelos usuários associados ao orçamento. Você pode usar essas informações para determinar se a perda cumulativa de privacidade está se aproximando do limite do orçamento de privacidade.
Nota
A perda cumulativa de privacidade associada a um orçamento de privacidade não inclui a perda de privacidade incorrida em contas fora da conta do provedor de dados.
Você tem as duas opções a seguir para visualizar orçamentos de privacidade. Em ambas as opções, um orçamento de privacidade aparece somente se os analistas associados ao orçamento de privacidade tiverem sofrido perda de privacidade ou se um administrador tiver redefinido o orçamento de privacidade.
Para consulta todos os orçamentos de privacidade na conta, use a exibição PRIVACY_BUDGETS no esquema de Account Usage. A exibição PRIVACY_BUDGETS no esquema ACCOUNT USAGE contém todos os orçamentos de privacidade na conta. Você pode usá-lo para visualizar os orçamentos de privacidade associados a todas as políticas de privacidade que você possui e pode filtrar os resultados para se concentrar em orçamentos de privacidade específicos por nome. Por exemplo, para focar em um orçamento de privacidade específico associado à política de privacidade
patients_policy
, você pode executar a seguinte consulta:SELECT * FROM snowflake.account_usage.privacy_budgets WHERE policy_name='patients_policy' AND budget_name='analyst_budget';
Para exibição os orçamentos de privacidade associados a uma política de privacidade específica, use a função de tabela CUMULATIVE_PRIVACY_LOSSES. Você pode usar a função de tabela CUMULATIVE_PRIVACY_LOSSES para recuperar orçamentos de privacidade associados a uma política de privacidade específica. Diferentemente da exibição PRIVACY_BUDGETS no esquema ACCOUNT USAGE, esta função não tem uma quantidade fixa de latência e retornará os valores em tempo real para as perdas cumulativas de privacidade. Ao chamar a função, o nome da política de privacidade deve ser totalmente qualificado.
Por exemplo, para exibição os orçamentos de privacidade especificados na política
my_policy_privacy
, execute o seguinte:SELECT * FROM TABLE(SNOWFLAKE.DATA_PRIVACY.CUMULATIVE_PRIVACY_LOSSES( 'my_policy_db.my_policy_schema.my_policy_privacy'));
Definição das configurações de privacidade para um orçamento de privacidade¶
O Snowflake permite que você ajuste o limite do orçamento de privacidade para perda de privacidade e o valor máximo de orçamento de privacidade gasto por agregado (conhecidos coletivamente como epsilon em privacidade diferencial). Você definir esses controles especificando os seguintes parâmetros no corpo da política de privacidade:
BUDGET_LIMIT
— Define o limite do orçamento de privacidade para perda cumulativa de privacidade.MAX_BUDGET_PER_AGGREGATE
– Define o valor máximo do orçamento de privacidade gasto por agregado (ou seja, a perda máxima de privacidade incorrida por cada função agregada em uma consulta).
Por exemplo, para usar o comando ALTER PRIVACY POLICY para ajustar os controles de privacidade de um orçamento de privacidade existente, você pode executar:
ALTER PRIVACY POLICY users_policy SET BODY ->
PRIVACY_BUDGET(BUDGET_NAME=>'analysts',
BUDGET_LIMIT=>300,
MAX_BUDGET_PER_AGGREGATE=>0.1);
Você também pode definir esses controles ao executar o comando CREATE PRIVACY POLICY para criar a política de privacidade.
Cuidado
Ao alterar o parâmetro BUDGET_LIMIT
, MAX_BUDGET_PER_AGGREGATE
ou BUDGET_WINDOW
, qualquer parâmetro não especificado no seu comando ALTER PRIVACY POLICY retorna ao seu valor padrão. Portanto, no exemplo anterior, o parâmetro BUDGET_WINDOW
, que determina a frequência com que o Snowflake redefine o orçamento de privacidade, retornará ao seu valor padrão.
Para obter mais informações sobre como configuração controles de privacidade, consulte Ajuste de controles de privacidade.
Atualização do orçamento de privacidade¶
Sobre o período de atualização¶
O Snowflake redefine periodicamente a perda cumulativa de privacidade de um orçamento de privacidade para 0 para permitir que analistas executem um novo definir de consultas. Esse período de atualização é conhecido como janela de orçamento. Essa atualização automática permite que analistas acessem novos dados à medida que eles são adicionados a uma tabela. Teoricamente, o analista não aprendeu nenhuma informação sobre esses novos dados, então é apropriado deixá-lo executar mais consultas.
A janela de orçamento padrão é semanal.
Modificação do período de atualização¶
Para modificar o período de atualização do orçamento de privacidade, atualize o valor budget_window
da política de privacidade privacy_budget
. Por exemplo:
ALTER PRIVACY POLICY users_policy SET BODY ->
PRIVACY_BUDGET(BUDGET_NAME=>'analysts', BUDGET_WINDOW=>'daily');
Cuidado
Ao alterar o parâmetro BUDGET_LIMIT
, MAX_BUDGET_PER_AGGREGATE
ou BUDGET_WINDOW
, qualquer parâmetro não especificado no seu comando ALTER PRIVACY POLICY retorna ao seu valor padrão. Portanto, no exemplo anterior, BUDGET_LIMIT
e MAX_BUDGET_PER_AGGREGATE
retornarão aos valores padrão.
Redefinição da perda cumulativa de privacidade¶
À medida que os analistas executam consultas em dados protegidos por uma política, o Snowflake contabiliza a perda cumulativa de privacidade dessas consultas. Você pode chamar o procedimento armazenado RESET_PRIVACY_BUDGET para redefinir a perda cumulativa de privacidade para 0, permitindo que os analistas executem consultas adicionais.
O procedimento armazenado RESET_PRIVACY_BUDGET tem como objetivo redefinir o orçamento quando analistas inadvertidamente incorrem em perda de privacidade e desejam recomeçar. Lembre-se de que a perda de privacidade é automaticamente definida como 0 quando o orçamento de privacidade é atualizado.
Somente a perda cumulativa de privacidade associada a analistas na conta especificada é redefinida como 0, mesmo se o orçamento de privacidade estiver associado a analistas em várias contas.
Nota
Ao chamar RESET_PRIVACY_BUDGET, a perda cumulativa de privacidade não é redefinida imediatamente. Ela será redefinida na próxima vez que uma consulta incorrer em perda de privacidade. Como resultado, se você visualizar o orçamento de privacidade depois de chamar a função, mas antes que a primeira consulta incorra em perda de privacidade, a perda cumulativa de privacidade não será 0.
Exemplo
Aqui está um exemplo de como zerar a contagem de uso de privacidade para todos os usuários que executam consultas na conta companyorg.account_123
:
CALL SNOWFLAKE.DATA_PRIVACY.RESET_PRIVACY_BUDGET(
'my_policy_db.my_policy_schema.my_policy',
'analyst_budget',
'companyorg',
'account_123');