As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Monitorando registros de auditoria no Amazon OpenSearch Service
Se o seu domínio do Amazon OpenSearch Service usa controle de acesso refinado, você pode habilitar registros de auditoria para seus dados. Os registros de auditoria são altamente personalizáveis e permitem que você acompanhe a atividade do usuário em seus OpenSearch clusters, incluindo sucesso e falhas de autenticação, solicitações OpenSearch, alterações de índice e consultas de pesquisa recebidas. A configuração padrão monitora um conjunto popular de ações do usuário, mas recomendamos adaptar as configurações às suas necessidades exatas.
Assim como os registros de OpenSearch aplicativos e os registros lentos, o OpenSearch Service publica registros de auditoria no CloudWatch Logs. Se ativado, o CloudWatch preço padrão
nota
Para ativar os registros de auditoria, sua função de usuário deve ser mapeada para a security_manager
função, o que lhe dá acesso à API OpenSearch plugins/_security
REST. Para saber mais, consulte Modificação do usuário primário.
Limitações
Os logs de auditoria têm as seguintes limitações:
-
Os logs de auditoria não incluem solicitações de pesquisa entre clusters que foram rejeitadas pela política de acesso ao domínio do destino.
-
O tamanho máximo de cada mensagem do log de auditoria é 10.000 caracteres. A mensagem do log de auditoria será truncada se exceder esse limite.
Habilitação dos logs de auditoria
A habilitação dos logs de auditoria é um processo em duas etapas. Primeiro, você configura seu domínio para publicar registros de auditoria no CloudWatch Logs. Em seguida, você ativa os registros de auditoria nos OpenSearch painéis e os configura para atender às suas necessidades.
Importante
Se você encontrar um erro ao seguir essas etapas, consulte Não é possível habilitar logs de auditoria para obter informações de solução de problemas.
Etapa 1: ativar registros de log e configurar uma política de acesso
Estas etapas descrevem como habilitar logs de auditoria usando o console. Você também pode habilitá-los usando o AWS CLI, ou o OpenSearch Service API.
Para habilitar registros de auditoria para um domínio OpenSearch de serviço (console)
-
Escolha o domínio para abrir sua configuração e, em seguida, acesse a guia Logs.
-
Selecione Logs de auditoria e, em seguida, Habilitar.
-
Crie um grupo de CloudWatch registros ou escolha um existente.
-
Escolha uma política de acesso que contenha as permissões apropriadas ou crie uma política usando o JSON fornecido pelo console:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "
cw_log_group_arn
" } ] }Recomendamos que você adicione as chaves de condição
aws:SourceAccount
eaws:SourceArn
na política para se proteger contra o problema confused deputy. A conta de origem é o proprietário do domínio e o ARN de origem é o ARN do domínio. Para adicionar essas chaves de condição, o seu domínio deve estar no software de serviço R20211203 ou superior.Por exemplo, você poderia adicionar o bloco de condições a seguir na política:
"Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region
:account-id
:domain/domain-name
" } } -
Escolha Habilitar.
Etapa 2: ativar os registros de auditoria nos OpenSearch painéis
Depois de habilitar os registros de auditoria no console de OpenSearch serviços, você também deve habilitá-los nos OpenSearch painéis e configurá-los para atender às suas necessidades.
-
Abra OpenSearch Painéis e escolha Segurança no menu do lado esquerdo.
-
Escolha Logs de auditoria.
-
Escolha Habilitar log de auditoria.
A interface do usuário do Dashboars oferece controle total das configurações do log de auditoria em Configurações gerais e Configurações de compatibilidade. Para obter uma descrição de todas as opções de configuração, consulte Configurações de log de auditoria.
Ative o registro de auditoria usando o AWS CLI
O AWS CLI comando a seguir ativa registros de auditoria em um domínio existente:
aws opensearch update-domain-config --domain-name
my-domain
--log-publishing-options "AUDIT_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group
,Enabled=true}"
Você também pode habilitar os logs de auditoria ao criar um domínio. Para obter mais informações, consulte a Referência de comandos da AWS CLI.
Habilitar o registro de auditoria em log usando a API de configuração
A seguinte solicitação para a API de configuração habilita os logs de auditoria em um domínio existente:
POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/
my-domain
/config { "LogPublishingOptions": { "AUDIT_LOGS": { "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1
:123456789012
:log-group1:sample-domain", "Enabled":true } } }
Para obter mais informações, consulte a referência da Amazon OpenSearch Service API.
Camadas e categorias do log de auditoria
A comunicação do cluster ocorre em duas camadas separadas: a camada REST e a camada de transporte.
-
A camada REST abrange a comunicação com clientes HTTP, como curl, Logstash, OpenSearch Dashboards, o cliente REST de alto nível Java, a biblioteca Python Requests — todas as solicitações
HTTP que chegam ao cluster. -
A camada de transporte cobre a comunicação entre nós. Por exemplo, depois que uma solicitação de pesquisa chega ao cluster (sobre a camada REST), o nó de coordenação que atende à solicitação envia a consulta para outros nós, recebe suas respostas, coleta os documentos necessários e os reúne na resposta final. Operações como alocação de fragmentos e rebalanceamento também ocorrem sobre a camada de transporte.
Você pode habilitar ou desabilitar logs de auditoria para camadas inteiras, bem como categorias de auditoria individuais para uma camada. A tabela a seguir contém um resumo das categorias de auditoria e das camadas para as quais elas estão disponíveis.
Categoria | Descrição | Disponível para REST | Disponível para transporte |
---|---|---|---|
FAILED_LOGIN |
Uma solicitação continha credenciais inválidas, e a autenticação falhou. | Sim | Sim |
MISSING_PRIVILEGES |
Um usuário não tinha os privilégios necessários para fazer a solicitação. | Sim | Sim |
GRANTED_PRIVILEGES |
Um usuário tinha os privilégios necessários para fazer a solicitação. | Sim | Sim |
OPENSEARCH_SECURITY_INDEX_ATTEMPT |
Uma solicitação tentou modificar o índice .opendistro_security . |
Não | Sim |
AUTHENTICATED |
Uma solicitação continha credenciais válidas e a autenticação foi bem-sucedida. | Sim | Sim |
INDEX_EVENT |
Uma solicitação executou uma operação administrativa em um índice, como criar um, definir um alias ou executar uma mesclagem forçada. A lista completa de indices:admin/ ações que essa categoria inclui está disponível na OpenSearch documentação |
Não | Sim |
Além dessas categorias padrão, o controle de acesso refinado oferece várias categorias adicionais projetadas para atender aos requisitos de conformidade de dados.
Categoria | Descrição |
---|---|
COMPLIANCE_DOC_READ |
Uma solicitação executou um evento de leitura em um documento em um índice. |
COMPLIANCE_DOC_WRITE |
Uma solicitação executou um evento de gravação em um documento em um índice. |
COMPLIANCE_INTERNAL_CONFIG_READ |
Uma solicitação executou um evento de leitura no índice |
COMPLIANCE_INTERNAL_CONFIG_WRITE |
Uma solicitação executou um evento de gravação no índice |
Você pode ter qualquer combinação de categorias e atributos de mensagem. Por exemplo, se você enviar uma solicitação REST para indexar um documento, poderá ver as seguintes linhas nos logs de auditoria:
-
AUTHENTICATED na camada REST (autenticação)
-
GRANTED_PRIVILEGE na camada de transporte (autorização)
-
COMPLIANCE_DOC_WRITE (documento gravado em um índice)
Configurações do log de auditoria
Há várias opções de configuração para os logs de auditoria.
Configurações gerais
As configurações gerais permitem habilitar ou desabilitar categorias individuais ou camadas inteiras. Recomendamos enfaticamente manter GRANTED_PRIVILEGES e AUTHENTICATED como categorias excluídas. Caso contrário, essas categorias serão registradas para cada solicitação válida para o cluster.
Name | Configuração de backend | Descrição |
---|---|---|
Camada REST |
enable_rest |
Habilite ou desabilite eventos que ocorrem na camada REST. |
Categorias desabilitadas de REST |
disabled_rest_categories |
Especifique categorias de auditoria a serem ignoradas na camada REST. Modificar essas categorias pode aumentar drasticamente o tamanho dos logs de auditoria. |
Transport Layer |
enable_transport |
Habilite ou desabilite eventos que acontecem na camada de transporte. |
Categorias desabilitadas de transporte |
disabled_transport_categories |
Especifique categorias de auditoria que devem ser ignoradas na camada de transporte. Modificar essas categorias pode aumentar drasticamente o tamanho dos logs de auditoria. |
As configurações de atributo permitem personalizar a quantidade de detalhes em cada linha de log.
Name | Configuração de backend | Descrição |
---|---|---|
Solicitações em massa |
resolve_bulk_requests |
Habilitar essa configuração gera um log para cada documento em uma solicitação em massa, o que pode aumentar drasticamente o tamanho dos logs de auditoria. |
Corpo da solicitação |
log_request_body |
Inclua o corpo da solicitação das solicitações. |
Resolver índices |
resolve_índices |
Resolva aliases em índices. |
Use as configurações de ignorar para excluir um conjunto de usuários ou caminhos de API:
Name | Configuração de backend | Descrição |
---|---|---|
Usuários ignorados |
ignore_users |
Especifique os usuários que não deseja incluir. |
Solicitações ignoradas |
ignore_requests |
Especifique padrões de solicitação que não deseja incluir. |
Configurações de conformidade
As configurações de conformidade permitem ajustar o acesso ao índice, ao documento ou ao nível de campo.
Name | Configuração de backend | Descrição |
---|---|---|
Log de compatibilidade |
enable_compliance |
Habilite ou desabilite o log de compatibilidade |
Você pode especificar as configurações a seguir para o log de eventos de leitura e gravação.
Name | Configuração de backend | Descrição |
---|---|---|
Log de configuração interno |
internal_config |
Habilite ou desabilite o log de eventos no índice |
Você pode especificar as configurações a seguir para eventos de leitura.
Name | Configuração de backend | Descrição |
---|---|---|
Ler metadados |
read_metadata_only |
Incluir apenas metadados para eventos de leitura. Não inclua campos de documento. |
Usuários ignorados |
read_ignore_users |
Não inclua determinados usuários para eventos de leitura. |
Campos observados |
read_watched_fields |
Especifique os índices e campos a serem observados para eventos de leitura. A adição de campos observados gera um log por acesso ao documento, o que pode aumentar drasticamente o tamanho dos logs de auditoria. Os campos observados oferecem suporte a padrões de índice e padrões de campo:
|
Você pode especificar as configurações a seguir para eventos de gravação.
Name | Configuração de backend | Descrição |
---|---|---|
Metadados de gravação |
write_metadata_only |
Inclua metadados somente para eventos de gravação. Não inclua campos de documento. |
Diferenças de log |
write_log_diffs |
Se write_metadata_only for false (falso), inclua somente as diferenças entre eventos de gravação. |
Usuários ignorados |
write_ignore_users |
Não inclua determinados usuários para eventos de gravação. |
Observar índices |
write_watched_índices |
Especifique os índices ou padrões de índice para observar eventos de gravação. A adição de campos observados gera um log por acesso ao documento, o que pode aumentar drasticamente o tamanho dos logs de auditoria. |
Exemplo de log de auditoria
Esta seção inclui um exemplo de configuração, solicitação de pesquisa e o log de auditoria resultante para todos os eventos de leitura e gravação de um índice.
Etapa 1: Configurar logs de auditoria
Depois de habilitar a publicação de registros de auditoria em um grupo de CloudWatch registros, navegue até a página de registro de auditoria de OpenSearch painéis e escolha Habilitar registro de auditoria.
-
Em Configurações gerais, escolha Configurar e certifique-se de que a opção Camada REST esteja habilitada.
-
Em Configurações de compatibilidade, escolha Configurar.
-
Em Gravação, em Campos observados, adicione
accounts
para todos os eventos de gravação neste índice. -
Em Leitura, na seção Campos observados, adicione os campos
ssn
eid-
do índiceaccounts
:{ "accounts-": [ "ssn", "id-" ] }
Etapa 2: Executar eventos de leitura e gravação
-
Navegue até OpenSearch Painéis, escolha Dev Tools e indexe um documento de amostra:
PUT accounts/_doc/0 { "ssn": "123", "id-": "456" }
-
Para testar um evento de leitura, envie a seguinte solicitação:
GET accounts/_search { "query": { "match_all": {} } }
Etapa 3: Observar os logs
-
Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/
. -
No painel de navegação, escolha Grupos de logs.
-
Escolha o grupo de logs que você especificou ao habilitar os logs de auditoria. Dentro do grupo de registros, o OpenSearch Service cria um fluxo de registros para cada nó em seu domínio.
-
Em Fluxos de log, escolha Pesquisar tudo.
-
Para os eventos de leitura e gravação, consulte os logs correspondentes. Um atraso de 5 segundos antes do log ser exibido é normal.
Exemplo de gravação de log de auditoria
{ "audit_compliance_operation": "CREATE", "audit_cluster_name": "824471164578:audit-test", "audit_node_name": "be217225a0b77c2bd76147d3ed3ff83c", "audit_category": "COMPLIANCE_DOC_WRITE", "audit_request_origin": "REST", "audit_compliance_doc_version": 1, "audit_node_id": "3xNJhm4XS_yTzEgDWcGRjA", "@timestamp": "2020-08-23T05:28:02.285+00:00", "audit_format_version": 4, "audit_request_remote_address": "3.236.145.227", "audit_trace_doc_id": "lxnJGXQBqZSlDB91r_uZ", "audit_request_effective_user": "admin", "audit_trace_shard_id": 8, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }
Exemplo de leitura de log de auditoria
{ "audit_cluster_name": "824471164578:audit-docs", "audit_node_name": "806f6050cb45437e2401b07534a1452f", "audit_category": "COMPLIANCE_DOC_READ", "audit_request_origin": "REST", "audit_node_id": "saSevm9ASte0-pjAtYi2UA", "@timestamp": "2020-08-31T17:57:05.015+00:00", "audit_format_version": 4, "audit_request_remote_address": "54.240.197.228", "audit_trace_doc_id": "config:7.7.0", "audit_request_effective_user": "admin", "audit_trace_shard_id": 0, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }
Para incluir o corpo da solicitação, retorne às configurações de conformidade nos OpenSearch painéis e desative a opção Gravar metadados. Para excluir eventos por um usuário específico, adicione o usuário a Usuários Ignorados.
Para obter uma descrição de cada campo do log de auditoria, consulte Referência de campos do log de auditoria
Configuração de logs de auditoria usando a API REST
Recomendamos o uso de OpenSearch painéis para configurar registros de auditoria, mas você também pode usar a API REST de controle de acesso refinada. Esta seção contém uma solicitação de exemplo. A documentação completa sobre a API REST está disponível na OpenSearchdocumentação
PUT _opendistro/_security/api/audit/config { "enabled": true, "audit": { "enable_rest": true, "disabled_rest_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "enable_transport": true, "disabled_transport_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "resolve_bulk_requests": true, "log_request_body": true, "resolve_indices": true, "exclude_sensitive_headers": true, "ignore_users": [ "kibanaserver" ], "ignore_requests": [ "SearchRequest", "indices:data/read/*", "/_cluster/health" ] }, "compliance": { "enabled": true, "internal_config": true, "external_config": false, "read_metadata_only": true, "read_watched_fields": { "read-index-1": [ "field-1", "field-2" ], "read-index-2": [ "field-3" ] }, "read_ignore_users": [ "read-ignore-1" ], "write_metadata_only": true, "write_log_diffs": false, "write_watched_indices": [ "write-index-1", "write-index-2", "log-*", "*" ], "write_ignore_users": [ "write-ignore-1" ] } }