Registrar em log o acesso ao servidor do Amazon S3 - Amazon Simple Storage Service

Registrar em log o acesso ao servidor do Amazon S3

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 ajudar a conhecer sua base de clientes e entender sua fatura 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 habilitar o registro em log de acesso ao servidor

Para acompanhar as solicitações de acesso ao seu bucket, habilite o registro em log de acesso ao servidor. Cada registro do log de acesso fornece detalhes sobre uma única solicitação de acesso, como solicitante, nome do bucket, horário da solicitação, ação da solicitação, status da resposta e um código de erro, se relevante.

Não há custo adicional para habilitar o log de acesso ao servidor em um bucket do Amazon S3, e você não será cobrado quando os logs forem PUT em seu bucket. No entanto, todos os arquivos de log que o sistema fornece ao bucket acumulam as cobranças normais de armazenamento. Você pode excluir os arquivos de registro a qualquer momento. Leituras subsequentes e outras solicitações a esses arquivos de log são cobradas normalmente, como para qualquer outro objeto, incluindo cobranças de transferência de dados

Por padrão, o log está desabilitado. Quando o registro de log está habilitado, os logs são salvos em um bucket na mesma região da AWS em que o bucket de origem está.

Para habilitar o registro em log:

  1. Ative o registro em log no bucket do Amazon S3 que você deseja monitorar. Chamaremos esse bucket de bucket de origem.

  2. Conceda permissão ao grupo de Entrega de logs do Amazon S3 para gravação no bucket em que deseja que os logs de acesso sejam salvos. Chamaremos esse bucket de bucket de destino.

nota
  • No Amazon S3, você pode conceder permissão para entregar logs de acesso por meio de listas de controle de acesso (ACLs) de bucket, mas não por meio da política de bucket.

  • Adicionar condições de negação a uma política de bucket pode impedir que o Amazon S3 entregue logs de acesso.

  • A criptografia padrão do bucket no bucket de destino só pode ser usada se AES256 (SSE-S3) for selecionada. A criptografia SSE-KMS não é compatível.

  • S3 Bloqueio de objetos não pode ser ativado no bucket de destino.

Para habilitar a entrega de logs:

  1. Forneça o nome do bucket de destino em que 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 ser de propriedade da 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. Isso pode não ser ideal porque pode resultar em 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, você pode definir uma regra de configuração de ciclo de vida para que o Amazon S3 exclua objetos com um prefixo de chave específico. Para obter mais informações, consulte Excluir arquivos de log do Amazon S3.

  3. (Opcional) Defina permissões 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.

Para obter mais informações sobre a ativação do registro em log de acesso ao servidor, consulte Habilitar o registro usando o console e Habilitar o log por programação.

Formato da chave de objeto de log

O Amazon S3 usa o formato de chave de objeto a seguir 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 acesso, consolida-os em arquivos de log e, em seguida, faz 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, chamada de grupo de Entrega de logs, para gravar logs de acesso. Essas gravações estão sujeitas a restrições usuais de controle de acesso. Você deve conceder ao grupo de Entrega de logs a permissão para gravação no bucket de destino adicionando uma entrada de concessão na lista de controle de acesso (ACL) do bucket. Se você usar o console do Amazon S3 para habilitar o registro em log em um bucket, o console habilitará o log no bucket de origem e atualizará a ACL no bucket de destino para conceder a permissão para gravação ao grupo de Entrega de logs.

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. A finalidade dos logs do servidor é proporcionar uma ideia da natureza do tráfego no bucket. É raro perder registros de log, mas o log dos servidores não tem como objetivo ser uma contabilidade completa de todas as solicitações.

Levando em conta a natureza de melhor esforço do recurso de log do servidor, os relatórios de uso disponíveis no portal da AWS (relatórios do Gerenciamento de custos e faturamento no Console de gerenciamento da AWS) podem incluir uma ou mais solicitações de acesso que não aparecem em um log do servidor entregue.

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.