Registrar em log as solicitações com registro em log de acesso ao servidor - Amazon Simple Storage Service

Registrar em log as solicitações com registro em log de acesso ao servidor

O registro em log de acesso ao servidor fornece detalhes sobre as solicitações que são feitas a um bucket. Os logs de acesso ao servidor são úteis para muitos aplicativos. Por exemplo, as informações do log de acesso podem ser úteis em auditorias de segurança e acesso. Isso também pode ajudá-lo a conhecer sua base de clientes e entender a conta do Amazon S3.

nota

Os logs de acesso ao servidor não registram informações sobre erros de redirecionamento a regiões erradas para regiões lançadas após 20 de março de 2019. Erros de redirecionamento para regiões erradas ocorrem quando uma solicitação para um objeto ou bucket é feita fora da região em que o bucket existe.

Como faço para habilitar a entrega de logs?

Para habilitar a entrega de logs, execute as seguintes etapas básicas. Para obter mais detalhes, consulte Habilitar o log de acesso ao servidor do Amazon S3.

  1. Forneça o nome do bucket de destino. Esse bucket é onde você deseja que o Amazon S3 salve os logs de acesso como objetos. Os buckets de origem e de destino devem estar na mesma Região da AWS e pertencer à mesma conta.

    Os logs podem ser entregues a qualquer bucket que você possui e que esteja na mesma região que o bucket de origem, incluindo o próprio bucket de origem. No entanto, para um gerenciamento de logs mais simples, recomendamos que você salve logs de acesso em um bucket diferente.

    Quando o bucket de origem e o bucket de destino são os mesmos, logs adicionais são criados para os logs que forem gravados no bucket. Não recomendamos fazer isso, pois pode gerar um pequeno aumento na cobrança do armazenamento. Além disso, com os logs adicionais sobre logs, pode ser mais difícil encontrar o log que você está procurando. Se você optar por salvar os logs de acesso no bucket de origem, recomendamos que você especifique um prefixo para todas as chaves de objeto do log, para que os nomes do objeto comecem com uma string em comum e seja fácil identificar esses objetos.

    Prefixos de chaves também são úteis para distinguir entre buckets de origem quando vários buckets são registrados em log no mesmo bucket de origem.

  2. (Opcional) Atribua um prefixo a todas as chaves de objeto de log do Amazon S3. O prefixo facilita a localização de objetos de log. Por exemplo, se você especificar o valor do prefixo logs/, cada objeto de log criado pelo Amazon S3 começará com o prefixo logs/ na sua chave.

    logs/2013-11-01-21-32-16-E568B2907131C0C0

    O prefixo de chaves também ajuda ao excluir os logs. Por exemplo, defina uma regra de configuração do ciclo de vida para que o Amazon S3 exclua objetos com um prefixo de chave específico. Para obter mais informações, consulte Exclusão de arquivos de log do Amazon S3.

  3. (Opcional) Defina permissões em concessões de destino para que outros possam acessar os logs gerados. Por padrão, somente o proprietário do bucket sempre tem acesso completo aos objetos de log. Se o bucket de destino (onde os logs de acesso do servidor estão armazenados) usar a configuração imposta pelo proprietário do bucket para S3 Object Ownership para desabilitar as listas de controle de acesso (ACLs), você não poderá conceder permissões nas concessões de destino que usam ACLs. Porém, você pode atualizar sua política de bucket para o bucket de destino para conceder acesso a outros. Para obter mais informações, consulte Identity and Access Management no Amazon S3 e Permissões para entrega de logs.

Formato da chave de objeto de log

O Amazon S3 usa o seguinte formato de chave de objeto para os objetos de log carregados no bucket de destino:

TargetPrefixYYYY-mm-DD-HH-MM-SS-UniqueString/

Na chave, YYYY, mm, DD, HH, MM e SS são os dígitos do ano, mês, dia, hora, minuto e segundos (respectivamente) quando o arquivo de log foi entregue. Essas datas e horas estão em Tempo Universal Coordenado (UTC).

Um arquivo de log entregue em um horário específico pode conter registros gravados a qualquer momento até aquele horário. Não há como saber se todos os logs de um certo intervalo de tempo foram entregues ou não.

O componente UniqueString da chave existe para impedir que arquivos sejam substituídos por outros. Ele não tem significado, e o software de processamento de logs deve ignorá-lo.

A barra à direita / é necessária para denotar o fim do prefixo.

Como os logs são entregues?

O Amazon S3 coleta periodicamente os registros de log de acessos, consolida-os em arquivos de log e, em seguida, faz o upload desses arquivos no bucket de destino como objetos de log. Caso o registro em log esteja habilitado em diversos buckets de origem que identifiquem o mesmo bucket de destino, ele terá logs de acesso de todos os buckets de origem. No entanto, cada objeto de log relata registros de log para um bucket de origem específico.

O Amazon S3 usa uma conta especial de entrega de logs para gravar logs de acesso ao servidor. Essas gravações estão sujeitas a restrições usuais de controle de acesso. Recomendamos atualizar a política de bucket no bucket de destino para conceder acesso à entidade principal do serviço de log (logging.s3.amazonaws.com) para entrega de logs de acesso. Porém, você também pode conceder acesso para entrega de logs de acesso ao grupo de entrega de logs do S3 por meio da lista de controle de acesso (ACL) de bucket. Não é recomendável conceder acesso ao grupo de entrega de logs do S3 usando a ACL de bucket.

Ao habilitar o registro de acesso ao servidor e conceder acesso para entrega de logs de acesso por meio da política de bucket, atualize a política de bucket no bucket de destino para permitir acesso s3:PutObject para a entidade principal do serviço de log. Se você usar o console do Amazon S3 para habilitar logs de acesso ao servidor em um bucket, o console atualizará automaticamente a política de bucket no bucket de destino para conceder essas permissões à entidade principal do serviço de log. Para obter mais informações sobre como conceder permissões para logs de acesso ao servidor, consulte Permissões para entrega de logs.

nota

O Amazon S3 não é compatível com a entrega de logs de acesso ao servidor ao solicitante ou ao proprietário do bucket para solicitações de endpoint da VPC quando a política de endpoint da VPC as nega.

Configuração aplicada pelo proprietário do bucket em S3 Object Ownership

Se o bucket de destino usar a configuração imposta pelo proprietário do bucket para Object Ownership, as ACLs serão desabilitadas e não afetarão mais as permissões. É necessário atualizar a política de bucket no bucket de destino para conceder acesso à entidade principal do serviço de log. Para obter informações sobre o Object Ownership, consulte Conceder acesso ao grupo de entrega de logs do S3 para log de acesso ao servidor.

Entrega de logs do servidor de melhor esforço

Os registros de log de acessos do servidor são entregues com base no melhor esforço. A maioria das solicitações para um bucket configurado corretamente para registro em log tem como resultado um registro do log entregue. A maioria dos registros de log é entregue dentro de algumas horas após o tempo em que forem registrados, mas eles podem ser entregues com mais frequência.

A integralidade e a pontualidade do registro em log do servidor não são garantidas. O registro de log de uma solicitação específica pode ser entregue muito depois de a solicitação ter sido realmente processada ou pode nem ser entregue. É possível que você até veja uma duplicação de um registro de log. A finalidade dos logs do servidor é proporcionar uma ideia da natureza do tráfego no bucket. Embora seja raro perder registros de log ou ver uma duplicação deles, esteja ciente de que o log do servidor não tem como objetivo ser uma contabilidade completa de todas as solicitações.

Como resultado da natureza de melhor esforço do recurso de log do servidor, os relatórios de uso podem incluir uma ou mais solicitações de acesso que não aparecem em um log do servidor entregue. Você pode encontrar esse relatório de uso em Relatórios de custo e uso no console do AWS Billing and Cost Management.

As alterações do status do registro de bucket em logs entram em vigor ao longo do tempo

As alterações no status do log de um bucket levam tempo para realmente afetar a entrega de arquivos de log. Por exemplo, se você habilitar o log para um bucket, algumas solicitações feitas na hora seguinte podem ser registradas, enquanto outras não. Se você alterar o bucket de destino para log do bucket A para o B, alguns logs podem continuar sendo entregues ao bucket A durante a próxima hora, enquanto outros serão entregues ao novo bucket de destino B. Em todo caso, as novas configurações entrarão em vigor posteriormente, sem a necessidade de ações adicionais.

Para obter mais informações sobre registro em log e arquivos de log, consulte as seguintes seções: