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 amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 arn:aws:s3:us-west-1:123456789012:accesspoint/example-AP Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket1?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket1/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-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.
Tópicos
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
amzn-s3-demo-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 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
Se o solicitante estiver usando um perfil assumido, esse campo retornará o perfil do IAM assumido.
Exemplo de registro
arn:aws:sts::123456789012:assumed-role/roleName/test-role
- 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.
ouHTTP_method
.resource_type
BATCH.DELETE.OBJECT
, ouS3.action.resource_type
para Ciclo de Vida do S3 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 /amzn-s3-demo-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
-
As respostas de erro do Amazon S3, ou
-
se não houver erros.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âmetroversionId
.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
ouSigV4
, 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 Amazon S3. 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 campoaclRequired
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
amzn-s3-demo-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
Se o solicitante estiver usando um perfil assumido, esse campo retornará o perfil do IAM assumido.
Exemplo de registro
arn:aws:sts::123456789012:assumed-role/roleName/test-role
- 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.
ouHTTP_method
.resource_type
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 /amzn-s3-demo-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
-
As respostas de erro do Amazon S3, ou a parte
GET
da operação de cópia, ou-
se não houver erros.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çalhox-amz-copy-source
não tiver especificado um parâmetroversionId
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
ouSigV4
, 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 Amazon S3. 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 campoaclRequired
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/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-user=johndoe"
funciona da mesma forma que a solicitação para "s3.amazonaws.com/amzn-s3-demo-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.