Formato dos logs de acesso ao servidor do Amazon S3 - Amazon Simple Storage Service

Formato dos logs de 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 do Amazon S3. Você pode usar logs de acesso ao servidor para as seguintes finalidades:

  • Realizar auditorias de segurança e acesso

  • Aprender sobre sua base de clientes

  • Entender sua fatura do Amazon S3

Esta seção descreve o formato e outros detalhes sobre os arquivos de log de acesso ao servidor do Amazon S3.

Os arquivos de log de acesso ao servidor consistem em uma sequência de registros de log delimitados por novas linhas. Cada registro do log representa uma solicitação e consiste em campos delimitados por espaço.

Veja a seguir o exemplo de um log que consiste em cinco registros de log.

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /DOC-EXAMPLE-BUCKET1?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 arn:aws:s3:us-west-1:123456789012:accesspoint/example-AP Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /DOC-EXAMPLE-BUCKET1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /DOC-EXAMPLE-BUCKET1?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /DOC-EXAMPLE-BUCKET1?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DOC-EXAMPLE-BUCKET1 [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /DOC-EXAMPLE-BUCKET1/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader DOC-EXAMPLE-BUCKET1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes
nota

Qualquer campo pode ser definido como - para indicar que os dados eram desconhecidos ou estavam indisponíveis ou que o campo não era aplicável para essa solicitação.

Campos de registro de log

A lista a seguir descreve os campos dos registros em log.

Proprietário do bucket

O ID canônico do usuário do proprietário do bucket de origem. O ID de usuário canônico é outra forma de ID da Conta da AWS. Para obter mais informações sobre IDs de usuário canônico, consulte Identificadores de Conta da AWS na Referência geral da AWS. Para obter informações sobre como encontrar o ID de usuário canônico da conta, consulte Como localizar o ID de usuário canônico de sua Conta da AWS.

Exemplo de registro

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
Bucket

O nome do bucket no qual a solicitação foi processada. Se o sistema receber uma solicitação malformada e não puder determinar o bucket, a solicitação não aparecerá em nenhum log de acesso ao servidor.

Exemplo de registro

DOC-EXAMPLE-BUCKET1
Tempo

O horário em que a solicitação foi recebida. As datas e horas estão em Tempo Universal Coordenado (UTC). O formato que usa a terminologia strftime() é o seguinte: [%d/%b/%Y:%H:%M:%S %z]

Exemplo de registro

[06/Feb/2019:00:00:38 +0000]
IP remoto

O endereço IP aparente do solicitante. Os proxies e os firewalls intermediários podem obscurecer o endereço IP real da máquina que faz a solicitação.

Exemplo de registro

192.0.2.3
Solicitante

O ID canônico do usuário do solicitante ou um - para solicitações não autenticadas. Se o solicitante for um usuário do IAM, esse campo retornará o nome do usuário do IAM do solicitante com o Usuário raiz da conta da AWS ao qual o usuário do IAM pertence. Esse identificador é o mesmo usado para fins de controle de acesso.

Exemplo de registro

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
ID da solicitação

Uma string gerada pelo Amazon S3 para identificar exclusivamente cada solicitação.

Exemplo de registro

3E57427F33A59F07
Operação

A operação listada aqui é declarada como SOAP.operation, REST.HTTP_method.resource_type, WEBSITE.HTTP_method.resource_type ou BATCH.DELETE.OBJECT, ou S3.action.resource_type para Ciclo de vida e registro em log.

Exemplo de registro

REST.PUT.OBJECT
Chave

A parte da chave (nome do objeto) da solicitação.

Exemplo de registro

/photos/2019/08/puppy.jpg
Request-URI

A parte Request-URI da mensagem de solicitação HTTP.

Entrada de exemplo

"GET /DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
Status HTTP

O código numérico do status do HTTP da resposta.

Exemplo de registro

200
Código de erro

O Código de erro do Amazon S3, ou - se nenhum erro ocorreu.

Exemplo de registro

NoSuchBucket
Bytes enviados

O número de bytes de resposta enviados, excluindo a sobrecarga do protocolo HTTP, ou - se zero.

Exemplo de registro

2662992
Tamanho do objeto

O tamanho total do objeto em questão.

Exemplo de registro

3462992
Tempo total

O número de milissegundos (ms) em que a solicitação esteve em trânsito da perspectiva do servidor. Esse valor é medido do momento do recebimento da solicitação até o momento em que o último byte da resposta é enviado. As medidas feitas da perspectiva do cliente podem ser mais longas devido à latência da rede.

Exemplo de registro

70
Tempo de retorno

O número de milissegundos que o Amazon S3 gastou processando a solicitação. Esse valor é medido do momento do recebimento do último byte da solicitação até o momento em que o primeiro byte da resposta foi enviado.

Exemplo de registro

10
Referer

O valor do cabeçalho do Referer HTTP, se presente. Os agentes do usuário HTTP (por exemplo, navegadores) normalmente definem esse cabeçalho como o URL da página de vinculação ou incorporação ao fazer uma solicitação.

Exemplo de registro

"http://www.example.com/webservices"
User-Agent

O valor do cabeçalho do User-Agent HTTP.

Exemplo de registro

"curl/7.15.1"
ID da versão

O ID da versão na solicitação ou - se a operação não usar um parâmetro versionId.

Exemplo de registro

3HL4kqtJvjVBH40Nrjfkd
ID do host

O x-amz-id-2 ou o ID de solicitação estendida do Amazon S3.

Exemplo de registro

s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
Versão do Signature

A versão do Signature, SigV2 ou SigV4, que foi usada para autenticar a solicitação ou - para solicitações não autenticadas.

Exemplo de registro

SigV2
Pacote de criptografia

A cifra de Secure Sockets Layer (SSL) que foi negociada para uma solicitação HTTPS, ou um - para HTTP.

Exemplo de registro

ECDHE-RSA-AES128-GCM-SHA256
Tipo de autenticação

O tipo de autenticação de solicitação usada: AuthHeader para cabeçalhos de autenticação, QueryString para string de consulta (URL pré-assinado) ou um - para solicitações não autenticadas.

Exemplo de registro

AuthHeader
Cabeçalho de host

O endpoint usado para conectar-se ao Amazon S3.

Exemplo de registro

s3.us-west-2.amazonaws.com

Algumas regiões mais antigas oferecem suporte a endpoints herdados. Você poderá ver esses endpoints nos logs de acesso ao servidor ou nos logs do AWS CloudTrail. Para ter mais informações, consulte Endpoints herdados. Para obter uma lista completa de regiões e endpoints do Amazon S3, consulte Endpoints e cotas do Amazon S3 na Referência geral da Amazon Web Services.

Versão do TLS

A versão do Transport Layer Security (TLS) negociada pelo cliente. O valor é um dos seguintes: TLSv1.1, TLSv1.2, TLSv1.3 ou - se o TLS não foi usado.

Exemplo de registro

TLSv1.2
ARN do ponto de acesso

O nome de recurso da Amazon (ARN) do ponto de acesso da solicitação. Se o ARN do ponto de acesso estiver malformado ou se não for usado, o campo apresentará um -. Para obter mais informações sobre pontos de acesso, consulte Usar pontos de acesso. Para obter mais informações sobre ARNs, consulte Nome do recurso da Amazon (ARN) no Guia de referência da AWS.

Exemplo de registro

arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
aclRequired

Uma string que indica se a solicitação exigiu uma lista de controle de acesso (ACL) para autorização. Se a solicitação exigiu uma ACL para autorização, a string é Yes. Se nenhuma ACL foi necessária, a string é -. Para obter mais informações sobre ACLs, consulte Visão geral da lista de controle de acesso (ACL). Para obter mais informações sobre como usar o campo aclRequired para desativar ACLs, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.

Exemplo de registro

Yes

Registro em log adicional para operações de cópia

Uma operação de cópia envolve um GET e um PUT. Por esse motivo, registramos dois registros em log ao executar uma operação de cópia. A seção anterior descreve os campos relacionados à parte PUT da operação. A lista a seguir descreve os campos no registro que se relacionam à parte GET da operação de cópia.

Proprietário do bucket

O ID canônico do usuário do bucket que armazena o objeto que está sendo copiado. O ID de usuário canônico é outra forma de ID da Conta da AWS. Para obter mais informações sobre IDs de usuário canônico, consulte Identificadores de Conta da AWS na Referência geral da AWS. Para obter informações sobre como encontrar o ID de usuário canônico da conta, consulte Como localizar o ID de usuário canônico de sua Conta da AWS.

Exemplo de registro

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
Bucket

O nome do bucket que armazena o objeto que está sendo copiado.

Exemplo de registro

DOC-EXAMPLE-BUCKET1
Tempo

O horário em que a solicitação foi recebida. As datas e horas estão em Tempo Universal Coordenado (UTC). O formato que usa a terminologia strftime() é o seguinte: [%d/%B/%Y:%H:%M:%S %z]

Exemplo de registro

[06/Feb/2019:00:00:38 +0000]
IP remoto

O endereço IP aparente do solicitante. Os proxies e os firewalls intermediários podem obscurecer o endereço IP real da máquina que faz a solicitação.

Exemplo de registro

192.0.2.3
Solicitante

O ID canônico do usuário do solicitante ou um - para solicitações não autenticadas. Se o solicitante for um usuário do IAM, esse campo retornará o nome do usuário do IAM do solicitante junto com o Usuário raiz da conta da AWS ao qual o usuário do IAM pertence. Esse identificador é o mesmo usado para fins de controle de acesso.

Exemplo de registro

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
ID da solicitação

Uma string gerada pelo Amazon S3 para identificar exclusivamente cada solicitação.

Exemplo de registro

3E57427F33A59F07
Operação

A operação listada aqui é declarada como SOAP.operation, REST.HTTP_method.resource_type, WEBSITE.HTTP_method.resource_type ou BATCH.DELETE.OBJECT.

Exemplo de registro

REST.COPY.OBJECT_GET
Chave

A chave (nome do objeto) do objeto que está sendo copiado, ou - se a operação não usar um parâmetro de chave.

Exemplo de registro

/photos/2019/08/puppy.jpg
Request-URI

A parte Request-URI da mensagem de solicitação HTTP.

Exemplo de registro

"GET /DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg?x-foo=bar"
Status HTTP

O código numérico do status do HTTP da parte GET da operação de cópia.

Exemplo de registro

200
Código de erro

O Código de erro do Amazon S3 da parte GET da operação de cópia, ou - se nenhum erro tiver ocorrido.

Exemplo de registro

NoSuchBucket
Bytes enviados

O número de bytes de resposta enviados, excluindo a sobrecarga do protocolo HTTP, ou - se zero.

Exemplo de registro

2662992
Tamanho do objeto

O tamanho total do objeto em questão.

Exemplo de registro

3462992
Tempo total

O número de milissegundos (ms) em que a solicitação esteve em trânsito da perspectiva do servidor. Esse valor é medido do momento do recebimento da solicitação até o momento em que o último byte da resposta é enviado. As medidas feitas da perspectiva do cliente podem ser mais longas devido à latência da rede.

Exemplo de registro

70
Tempo de retorno

O número de milissegundos que o Amazon S3 gastou processando a solicitação. Esse valor é medido do momento do recebimento do último byte da solicitação até o momento em que o primeiro byte da resposta foi enviado.

Exemplo de registro

10
Referer

O valor do cabeçalho do Referer HTTP, se presente. Os agentes do usuário HTTP (por exemplo, navegadores) normalmente definem esse cabeçalho como o URL da página de vinculação ou incorporação ao fazer uma solicitação.

Exemplo de registro

"http://www.example.com/webservices"
User-Agent

O valor do cabeçalho do User-Agent HTTP.

Exemplo de registro

"curl/7.15.1"
ID da versão

O ID da versão do objeto que está sendo copiado, ou - se o cabeçalho x-amz-copy-source não tiver especificado um parâmetro versionId como parte da fonte da cópia.

Entrada de exemplo

3HL4kqtJvjVBH40Nrjfkd
ID do host

O x-amz-id-2 ou o ID de solicitação estendida do Amazon S3.

Exemplo de registro

s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
Versão do Signature

A versão de assinatura, SigV2 ou SigV4, que foi usada para autenticar a solicitação, ou um - para solicitações não autenticadas.

Exemplo de registro

SigV4
Pacote de criptografia

A cifra de Secure Sockets Layer (SSL) que foi negociada para uma solicitação HTTPS, ou um - para HTTP.

Exemplo de registro

ECDHE-RSA-AES128-GCM-SHA256
Tipo de autenticação

O tipo de autenticação de solicitação usada: AuthHeader para cabeçalhos de autenticação, QueryString para strings de consulta (URL pré-assinados) ou um - para solicitações não autenticadas.

Exemplo de registro

AuthHeader
Cabeçalho de host

O endpoint que foi usado para conectar ao Amazon S3.

Exemplo de registro

s3.us-west-2.amazonaws.com

Algumas regiões mais antigas oferecem suporte a endpoints herdados. Você poderá ver esses endpoints nos logs de acesso ao servidor ou nos logs do AWS CloudTrail. Para ter mais informações, consulte Endpoints herdados. Para obter uma lista completa de regiões e endpoints do Amazon S3, consulte Endpoints e cotas do Amazon S3 na Referência geral da Amazon Web Services.

Versão do TLS

A versão do Transport Layer Security (TLS) negociada pelo cliente. O valor é um dos seguintes: TLSv1.1, TLSv1.2, TLSv1.3 ou - se o TLS não foi usado.

Exemplo de registro

TLSv1.2
ARN do ponto de acesso

O nome de recurso da Amazon (ARN) do ponto de acesso da solicitação. Se o ARN do ponto de acesso estiver malformado ou se não for usado, o campo apresentará um -. Para obter mais informações sobre pontos de acesso, consulte Usar pontos de acesso. Para obter mais informações sobre ARNs, consulte Nome do recurso da Amazon (ARN) no Guia de referência da AWS.

Exemplo de registro

arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
aclRequired

Uma string que indica se a solicitação exigiu uma lista de controle de acesso (ACL) para autorização. Se a solicitação exigiu uma ACL para autorização, a string é Yes. Se nenhuma ACL foi necessária, a string é -. Para obter mais informações sobre ACLs, consulte Visão geral da lista de controle de acesso (ACL). Para obter mais informações sobre como usar o campo aclRequired para desativar ACLs, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.

Exemplo de registro

Yes

Informações personalizadas do log de acesso

Você pode incluir informações personalizadas a serem armazenadas no registro de log de acesso de uma solicitação. Para fazer isso, adicione um parâmetro de string de consulta personalizado à URL da solicitação. O Amazon S3 ignora os parâmetros query-string que começam com x-, mas inclui esses parâmetros no registro do log de acesso da solicitação, como parte do campo Request-URI do registro do log.

Por exemplo, uma solicitação GET para "s3.amazonaws.com/DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg?x-user=johndoe" funciona da mesma forma que a solicitação para "s3.amazonaws.com/DOC-EXAMPLE-BUCKET1/photos/2019/08/puppy.jpg", exceto pelo fato de que a string "x-user=johndoe" está incluída no campo Request-URI do registro de log associado. Essa funcionalidade está disponível apenas na interface REST.

Considerações de programação para o formato do log de acesso ao servidor extensível

Ocasionalmente, podemos estender o formato de registro de log de acesso adicionando novos campos ao final de cada linha. Portanto, certifique-se de que qualquer código que analise logs de acesso ao servidor consiga lidar com os campos finais que talvez não entenda.