

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
<a name="audit-logs"></a>

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](createdomain-configure-slow-logs.md), o OpenSearch Service publica registros de auditoria no CloudWatch Logs. Se ativado, o [ CloudWatch preço padrão](https://aws.amazon.com/cloudwatch/pricing/) se aplica.

**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](fgac.md#fgac-forget).

**Topics**
+ [Limitações](#audit-logs-limitations)
+ [Habilitação dos logs de auditoria](#audit-log-enabling)
+ [Ative o registro de auditoria usando o AWS CLI](#audit-log-enabling-cli)
+ [Habilitar o registro de auditoria em log usando a API de configuração](#audit-log-enabling-api)
+ [Camadas e categorias do log de auditoria](#audit-log-layers)
+ [Configurações do log de auditoria](#audit-log-settings)
+ [Exemplo de log de auditoria](#audit-log-example)
+ [Configuração de logs de auditoria usando a API REST](#audit-log-rest-api)

## Limitações
<a name="audit-logs-limitations"></a>

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 name="audit-log-enabling"></a>

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](handling-errors.md#troubleshooting-audit-logs-error) para obter informações de solução de problemas.

### Etapa 1: ativar registros de log e configurar uma política de acesso
<a name="audit-log-enable"></a>

Estas etapas descrevem como habilitar logs de auditoria usando o console. Você também pode [habilitá-los usando o AWS CLI](#audit-log-enabling-cli), ou a [API OpenSearch de serviço](#audit-log-enabling-api).

**Para habilitar registros de auditoria para um domínio OpenSearch de serviço (console)**

1. Escolha o domínio para abrir sua configuração e, em seguida, acesse a guia **Logs**.

1. Selecione **Logs de auditoria** e, em seguida, **Habilitar**.

1. Crie um grupo de CloudWatch registros ou escolha um existente.

1. Escolha uma política de acesso que contenha as permissões apropriadas ou crie uma política usando o JSON fornecido pelo console:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "es.amazonaws.com"
         },
         "Action": [
           "logs:PutLogEvents",
           "logs:CreateLogStream"
         ],
         "Resource": "arn:aws:logs:{{us-east-1}}:{{111122223333}}:log-group:/aws/opensearch/domains/domain-name/*"
       }
     ]
   }
   ```

------

   Recomendamos que você adicione as chaves de condição `aws:SourceAccount` e `aws:SourceArn` na política para se proteger contra o [problema confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). 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}}"
       }
   }
   ```

1. Escolha **Habilitar**.

### Etapa 2: ativar os registros de auditoria nos OpenSearch painéis
<a name="audit-log-dashboards-ui"></a>

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.

1. Abra OpenSearch Painéis e escolha **Segurança** no menu do lado esquerdo.

1. Escolha **Logs de auditoria**.

1. 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](#audit-log-settings).

## Ative o registro de auditoria usando o AWS CLI
<a name="audit-log-enabling-cli"></a>

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 saber mais, consulte a [Referência de comandos da AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/).

## Habilitar o registro de auditoria em log usando a API de configuração
<a name="audit-log-enabling-api"></a>

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](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_LogPublishingOption.html).

## Camadas e categorias do log de auditoria
<a name="audit-log-layers"></a>

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](https://2.python-requests.org/) 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 | Description | 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](https://docs.opensearch.org/latest/security-plugin/access-control/permissions/). | 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 | Description | 
| --- | --- | 
| 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 `.opendistro_security`. | 
| COMPLIANCE\_INTERNAL\_CONFIG\_WRITE | Uma solicitação executou um evento de gravação no índice `.opendistro_security`. | 

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
<a name="audit-log-settings"></a>

Há várias opções de configuração para os logs de auditoria.

### Configurações gerais
<a name="audit-logs-general-settings"></a>

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.


| Nome | Configuração de backend | Description | 
| --- | --- | --- | 
| 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.


| Nome | Configuração de backend | Description | 
| --- | --- | --- | 
| 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:


| Nome | Configuração de backend | Description | 
| --- | --- | --- | 
| 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
<a name="audit-logs-compliance-settings"></a>

As configurações de conformidade permitem ajustar o acesso ao índice, ao documento ou ao nível de campo.


| Nome | Configuração de backend | Description | 
| --- | --- | --- | 
| 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.


| Nome | Configuração de backend | Description | 
| --- | --- | --- | 
| Log de configuração interno | internal\_config | Habilite ou desabilite o log de eventos no índice `.opendistro_security`. | 

Você pode especificar as configurações a seguir para eventos de leitura.


| Nome | Configuração de backend | Description | 
| --- | --- | --- | 
| 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:<pre>{<br />  "index-name-pattern": [<br />    "field-name-pattern"<br />  ],<br />  "logs*": [<br />    "message"<br />  ],<br />  "twitter": [<br />    "id",<br />    "user*"<br />  ]<br />}</pre> | 

Você pode especificar as configurações a seguir para eventos de gravação.


| Nome | Configuração de backend | Description | 
| --- | --- | --- | 
| 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
<a name="audit-log-example"></a>

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
<a name="audit-log-example-step1"></a>

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**.

1. Em **Configurações gerais**, escolha **Configurar** e certifique-se de que a opção **Camada REST** esteja habilitada.

1. Em **Configurações de compatibilidade**, escolha **Configurar**.

1. Em **Gravação**, em **Campos observados**, adicione `accounts` para todos os eventos de gravação neste índice.

1. Em **Ler**, em **Campos observados**, adicione os campos `ssn` e `id-` do índice `accounts`:

   ```
   {
     "accounts-": [
       "ssn",
       "id-"
     ]
   }
   ```

### Etapa 2: Executar eventos de leitura e gravação
<a name="audit-log-example-step2"></a>

1. Navegue até OpenSearch Painéis, escolha **Dev Tools** e indexe um documento de amostra:

   ```
   PUT accounts/_doc/0
   {
     "ssn": "123",
     "id-": "456"
   }
   ```

1. Para testar um evento de leitura, envie a seguinte solicitação:

   ```
   GET accounts/_search
   {
     "query": {
       "match_all": {}
     }
   }
   ```

### Etapa 3: Observar os logs
<a name="audit-log-example-step2"></a>

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Grupos de logs**.

1. 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.

1. Em **Fluxos de log**, escolha **Pesquisar tudo**.

1. 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](https://docs.opensearch.org/latest/security-plugin/audit-logs/field-reference/). Para obter informações sobre como pesquisar e analisar seus dados de registro de auditoria, consulte [Análise de dados de log com o CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) no *Guia do usuário do Amazon CloudWatch Logs*. 

## Configuração de logs de auditoria usando a API REST
<a name="audit-log-rest-api"></a>

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 [OpenSearch documentação](https://opensearch.org/docs/latest/security/access-control/api/#audit-logs).

```
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"
    ]
  }
}
```