Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O registo e monitorização eficazes ajudam-no a detetar e responder a eventos de segurança nas Aplicações Databricks. Os aplicativos geram logs no nível do aplicativo e logs de auditoria da plataforma, que você pode usar para diagnóstico, rastreamento de desempenho e análise de segurança.
Logs de aplicativos
Para aceder aos logs na interface do Databricks Apps ou através da URL da sua aplicação, a sua aplicação deve escrever a saída em stdout e stderr.
Acesse os logs do aplicativo das seguintes maneiras:
- Interface do usuário de aplicativos: Na página de detalhes do aplicativo, clique na guia Logs para exibir a saída padrão e o erro. Para obter detalhes, consulte Visualizar os detalhes de uma aplicação Databricks.
-
URL direta: Anexe
/logzao URL do seu aplicativo. Por exemplo, se o URL da sua aplicação forhttps://my-app-1234567890.my-instance.databricksapps.com, os logs estarão disponíveis emhttps://my-app-1234567890.my-instance.databricksapps.com/logz.
Observação
O Azure Databricks não persiste os logs quando a computação do aplicativo é encerrada. Para registro persistente, integre-se a serviços de logging externos ou escreva logs em volumes ou tabelas do Unity Catalog.
Integração com serviços de registo externos
Para logs persistentes e recursos avançados de monitoramento, use o seguinte:
- Ferramentas de monitoramento de desempenho de aplicativos (APM): Use New Relic, Datadog ou ferramentas de monitoramento de desempenho de aplicativos semelhantes para coletar e analisar logs, métricas e rastreamentos.
- Persistência de log personalizado: Escreva logs periodicamente em volumes ou tabelas do Unity Catalog para armazenamento e análise de longo prazo.
Consulte Práticas de log recomendadas para obter orientações sobre formatação e conteúdo de log.
Práticas recomendadas de registro em log
Para integrar com sistemas externos de monitorização e alerta em tempo real:
- Formate logs em JSON ou outros formatos analisáveis por máquina.
- Registre eventos relevantes para a segurança com o contexto:
- Eventos de autenticação e autorização, incluindo identidade do usuário e resultado
- Detalhes sobre o acesso aos dados, como nomes de catálogo, esquema e tabela
- Erros relacionados à segurança, como tokens inválidos, recusas de permissão e atividades suspeitas
- Transferir logs para sistemas externos. Integre com ferramentas de APM ou agregação de logs para dar suporte a alertas em tempo real, resposta a incidentes de segurança, análise de uso e desempenho e correlação com logs do sistema Azure Databricks.
Considerações de segurança para registro em log
Os aplicativos Databricks são projetados com os seguintes controles internos para evitar a exfiltração de dados:
- Acesso somente API: os aplicativos só podem acessar recursos do Azure Databricks por meio de APIs públicas do Azure Databricks. Essas APIs podem ser auditadas através dos logs das tabelas do sistema.
- Comunicação criptografada: Todo o tráfego da API é criptografado usando TLS 1.2 ou superior para garantir a transferência segura de dados.
Monitoramento de segurança com tabelas do sistema
O Azure Databricks captura registos de auditoria para atividades relacionadas com aplicações na tabela system.access.audit. Você pode consultar esses logs para rastrear ações do usuário, alterações na configuração do aplicativo e eventos de segurança.
Use logs de auditoria para oferecer suporte aos seguintes cenários comuns de monitoramento e segurança:
- Acompanhe a atividade de login do aplicativo. Consulte Inícios de sessão das aplicações.
- Monitore as alterações de permissão. Consulte Alterações de permissão.
- Auditar a criação e modificação de aplicativos. Consulte Criação de aplicativos.
- Analise o comportamento do usuário dentro dos aplicativos. Consulte Ações do usuário.
Use as consultas a seguir para monitorar atividades relacionadas à segurança e detetar possíveis problemas com seus aplicativos.
Monitorar alterações de permissão do aplicativo
Use esta consulta para detetar modificações de permissão do aplicativo:
-- Monitor all app permission modifications in the last 30 days
WITH permission_changes AS (
SELECT
event_date,
workspace_id,
request_params.request_object_id AS app_name,
user_identity.email AS modified_by,
explode(from_json(
request_params.access_control_list,
'array<struct<user_name:string,group_name:string,permission_level:string>>'
)) AS permission
FROM system.access.audit
WHERE action_name = 'changeAppsAcl'
AND event_date >= current_date() - 30
)
SELECT
event_date,
app_name,
modified_by,
permission.user_name,
permission.group_name,
permission.permission_level
FROM permission_changes
ORDER BY event_date DESC
Identificar aplicativos com escopos de API do usuário
Use esta consulta para localizar aplicativos com escopos de API do usuário configurados:
-- Find apps created or updated in the last 30 days with user API scopes configured
SELECT
event_date,
get_json_object(request_params.app, '$.name') AS app_name,
user_identity.email AS creator_email,
get_json_object(request_params.app, '$.user_api_scopes') AS user_api_scopes
FROM system.access.audit
WHERE
action_name IN ('createApp', 'updateApp')
AND get_json_object(request_params.app, '$.user_api_scopes') IS NOT NULL
AND event_date >= current_date() - INTERVAL 30 DAYS
Rastrear ações de autorização do usuário
Use esta consulta para listar as ações do aplicativo executadas com autorização do usuário:
-- List app actions performed on behalf of users in the last 30 days
WITH obo_events AS (
SELECT
event_date,
workspace_id,
audit_level,
identity_metadata.acting_resource AS app_id, -- OAuth App ID or name
user_identity.email AS user_email, -- Logged-in user
service_name,
action_name
FROM system.access.audit
WHERE event_date >= current_date() - 30
AND identity_metadata.acting_resource IS NOT NULL
)
SELECT
event_date,
app_id,
user_email,
service_name,
action_name,
audit_level,
COUNT(*) AS event_count
FROM obo_events
GROUP BY
event_date, app_id, user_email, service_name, action_name, audit_level
ORDER BY event_date DESC;
Acompanhamento operacional
Use tabelas do sistema para monitorar aspetos operacionais de seus aplicativos, como custo e uso de recursos.
Monitore os custos do aplicativo
Monitore os custos do Databricks Apps usando a system.billing.usage tabela. Use a seguinte consulta para obter informações precisas de custo para aplicativos por dia ou mês:
-- Get Databricks Apps cost by app per day for the last 30 days
SELECT
us.usage_date,
us.usage_metadata.app_id,
us.usage_metadata.app_name,
SUM(us.usage_quantity) AS dbus,
SUM(us.usage_quantity * lp.pricing.effective_list.default) AS dollars
FROM
system.billing.usage us
LEFT JOIN system.billing.list_prices lp
ON lp.sku_name = us.sku_name
AND us.usage_start_time BETWEEN lp.price_start_time AND COALESCE(lp.price_end_time, NOW())
WHERE
billing_origin_product = 'APPS'
AND us.usage_unit = 'DBU'
AND us.usage_date >= DATE_SUB(NOW(), 30)
GROUP BY ALL
O Databricks Apps suporta políticas de orçamento para ajudar a controlar os custos. Para obter informações sobre como configurar políticas de orçamento, consulte Uso de atributos com políticas de orçamento sem servidor.