É possível habilitar o registro em log padrão ao criar ou atualizar uma distribuição. Os recurso do registro em log padrão (v2) permitem o seguinte:
-
Enviar logs de acesso ao Amazon CloudWatch Logs, Amazon Data Firehose e Amazon Simple Storage Service (Amazon S3).
-
Selecionar os campos de log desejados. Você também pode selecionar um subconjunto de campos de log em tempo real.
-
Selecionar formatos adicionais de arquivo de log de saída.
Se você estiver usando o Amazon S3, você tem recursos opcionais, como:
-
Enviar logs a Regiões da AWS habilitadas.
-
Organizar os logs com particionamento.
-
Habilitar nomes de arquivos compatíveis com o Hive.
Para ter mais informações, consulte Enviar logs ao Amazon S3.
Para começar a usar o registro em log padrão, conclua as seguintes etapas:
-
Configure as permissões necessárias para o AWS service (Serviço da AWS) especificado que receberá os logs.
-
Configure o registro em log padrão por meio do console do CloudFront ou da API do CloudWatch.
-
Visualize os logs de acesso.
nota
-
Se você habilitar o registro em log padrão (v2), isso não afetará nem alterará o registro em log padrão (legado). Você pode continuar usando o registro em log padrão (legado) para sua distribuição, além de usar o registro em log padrão (v2). Para ter mais informações, consulte Configurar o registro em log padrão (legado).
-
Se você já habilitou o registro em log padrão (legado) e deseja habilitar o registro em log padrão (v2) no Amazon S3, recomendamos que especifique um bucket do Amazon S3 diferente ou use um caminho separado no mesmo bucket (por exemplo, use um prefixo de log ou particionamento). Isso ajuda a controlar quais arquivos de log são associados a qual distribuição e evita que um substitua o outro.
Permissões
O CloudFront usa os logs fornecidos pelo CloudWatch para entregar logs de acesso. Para habilitar a entrega de registro em log, você precisa de permissões para o AWS service (Serviço da AWS) especificado.
Para ver as permissões necessárias para cada destino de registro em log, escolha um dos tópicos a seguir no Guia do usuário do Amazon CloudWatch Logs.
Depois de configurar as permissões para seu destino de registro em log, você pode habilitar o registro em log padrão para sua distribuição.
nota
O CloudFront permite o envio de logs de acesso a diferentes Contas da AWS (entre contas). Para permitir a entrega entre contas, ambas (sua conta e a conta de recebimento) devem ter as permissões necessárias. Para obter mais informações, consulte a seção Habilitar o registro em log padrão para entrega entre contas ou Cross-account delivery example no Guia do usuário do Amazon CloudWatch Logs.
Habilitar o registro padrão
Para habilitar o registro em log padrão, você pode usar o console do CloudFront ou a API do CloudWatch.
Sumário
Habilitar o registro em log padrão (console do CloudFront)
Para habilitar o registro em log padrão para uma distribuição do CloudFront (console)
-
Use o console do CloudFront para criar uma nova distribuição ou atualizar uma existente.
-
Na seção Registro em log padrão, em Entrega de logs, escolha Ativado.
-
(Opcional) Em Registro de cookie, especifique se você deseja incluir cookies em seus logs.
dica
O registro em log de cookies é uma configuração global que se aplica a todos os registros em log padrão da sua distribuição. Você não pode substituir essa configuração para destinos de entrega separados.
-
Na seção Entregar para, especifique o serviço que deve receber seus logs:
-
CloudWatch Logs
-
Firehose
-
Amazon S3
-
-
Em Destino, selecione o recurso para seu serviço. Se você ainda não criou seu recurso, pode escolher Criar ou consultar a documentação a seguir.
-
Para o CloudWatch Logs, insira o nome do grupo de logs.
-
Para o Firehose, insira o fluxo de entrega do Firehose.
-
Para o Amazon S3, insira o nome do bucket.
dica
Para especificar um prefixo, insira o prefixo após o nome do bucket, como
amzn-s3-demo-bucket.s3.amazonaws.com/
. Se você não especificar um prefixo, o CloudFront adicionará um automaticamente para você. Para ter mais informações, consulte Enviar logs ao Amazon S3.MyLogPrefix
-
-
Em Configurações adicionais: opcional, você pode especificar as seguintes opções:
-
Em Seleção de campos, escolha o nome dos campos de log que você deseja entregar ao seu destino. Você pode selecionar campos de log de acesso e um subconjunto de campos de log em tempo real.
-
(Somente para o Amazon S3) Em Particionamento, especifique o caminho para particionar os dados do arquivo de log.
-
(Somente para o Amazon S3) Em Formato de arquivo compatível com o Hive, você pode marcar a caixa de seleção para usar caminhos do S3 compatíveis com o Hive. Isso ajuda a simplificar o carregamento de novos dados em suas ferramentas compatíveis com o Hive.
-
Em Formato de saída, especifique o formato de sua preferência.
nota
Se você escolher Parquet, essa opção incorrerá em cobranças do CloudWatch pela conversão dos logs de acesso em Apache Parquet. Para ter mais informações, consulte a seção sobre logs fornecidos em Definição de preço do Amazon CloudWatch
. -
Em Delimitador de campo, especifique como separar os campos de log.
-
-
Conclua as etapas para atualizar ou criar sua distribuição.
-
Para adicionar outro destino, escolha Adicionar outro destino e repita as etapas 4 a 7.
-
Na página Logs, verifique se o status dos logs padrão está ativado ao lado da distribuição.
Para ter mais informações sobre a entrega do registro em log padrão e os campos de log, consulte Referência do registro em log padrão.
Habilitar o registro em log padrão (API do CloudWatch)
Você também pode usar a API do CloudWatch para habilitar o registro em log padrão para suas distribuições.
Observações
-
Ao chamar a API do CloudWatch para habilitar o registro em log padrão, você deve especificar a região Leste dos EUA (Norte da Virgínia) (
us-east-1
), mesmo que queira habilitar a entrega entre regiões para outro destino. Por exemplo, se você quiser enviar seus logs de acesso a um bucket do S3 na região Europa (Irlanda) (eu-west-1
), use a API do CloudWatch na regiãous-east-1
. -
Há uma opção adicional para incluir cookies no registro em log padrão. Na API do CloudFront, é o parâmetro
IncludeCookies
. Se você configurar o registro em log de acesso usando a API do CloudWatch e especificar que deseja incluir cookies, deverá usar o console ou a API do CloudFront para atualizar sua distribuição e incluir cookies. Caso contrário, o CloudFront não poderá enviar cookies ao destino de log. Para ter mais informações, consulte Registro em log de cookies.
Como habilitar o registro em log padrão para uma distribuição (API do CloudWatch)
-
Depois de criar uma distribuição, obtenha o nome de recurso da Amazon (ARN).
Você pode encontrar o ARN na página Distribuição no console do CloudFront ou usar a operação de API GetDistribution. Um ARN de distribuição segue o formato
arn:aws:cloudfront::123456789012:distribution/d111111abcdef8
. -
Em seguida, use a operação de API PutDeliverySource do CloudWatch para criar uma origem de entrega para a distribuição.
-
Insira um nome para a origem de entrega.
-
Passe o
resourceArn
da distribuição. -
Em
logType
, especifiqueACCESS_LOGS
como o tipo de log que será coletado. -
exemplo Exemplo do comando put-delivery-source da AWS CLI
Veja abaixo um exemplo de configuração de origem de entrega para uma distribuição.
aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGS
Saída
{ "deliverySource": { "name": "S3-delivery", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-source:S3-delivery", "resourceArns": [ "arn:aws:cloudfront::123456789012:distribution/d111111abcdef8" ], "service": "cloudfront", "logType": "ACCESS_LOGS" } }
-
-
Use a operação de API PutDeliveryDestination para configurar onde armazenar os logs.
-
Em
destinationResourceArn
, especifique o ARN do destino. Isso pode ser um grupo de logs do CloudWatch Logs, a um fluxo de entrega do Firehose ou um bucket do Amazon S3. -
Em
outputFormat
, especifique o formato de saída para os logs. -
exemplo Exemplo do comando put-delivery-destination da AWS CLI
Veja abaixo um exemplo de configuração de destino de entrega para um bucket do Amazon S3.
aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket
Saída
{ "name": "S3-destination", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } }
nota
Se você estiver entregando logs entre contas, deverá usar a operação de API PutDeliveryDestinationPolicy para atribuir uma política do AWS Identity and Access Management (IAM) à conta de destino. A política do IAM permite a entrega de uma conta para outra.
-
-
Use a operação de API CreateDelivery para vincular a origem de entrega ao destino que você criou nas etapas anteriores. Essa operação de API associa a fonte de entrega ao destino final.
-
Para
deliverySourceName
, especifique o nome da origem. -
Para
deliveryDestinationArn
, especifique o ARN do destino de entrega. -
Para
fieldDelimiter
, especifique a string para separar cada campo de log. -
Para
recordFields
, especifique os campos de log que você deseja. -
Se você estiver usando o S3, especifique se deseja usar
enableHiveCompatiblePath
esuffixPath
.
exemplo Exemplo do comando create-delivery da AWS CLI
Veja a seguir um exemplo de criação de entrega.
aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination
Saída
{ "id": "abcNegnBoTR123", "arn": "arn:aws:logs:us-east-1:123456789012:delivery:abcNegnBoTR123", "deliverySourceName": "cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "" }
-
-
No console do CloudFront, na página Logs, verifique se o status dos logs padrão está Habilitado ao lado da distribuição.
Para ter mais informações sobre a entrega do registro em log padrão e os campos de log, consulte Referência do registro em log padrão.
nota
Para habilitar o registro em log padrão (v2) para o CloudFront usando o AWS CloudFormation, você pode usar as seguintes propriedades do CloudWatch Logs:
ResourceArn
é a distribuição do CloudFront e LogType
deve ser ACCESS_LOGS
como o tipo de log compatível.
Habilitar o registro em log padrão para entrega entre contas
Se você habilitar o registro em log padrão para sua Conta da AWS e quiser entregar os logs de acesso a outra conta, configure a conta de origem e a conta de destino corretamente. A conta de origem com a distribuição do CloudFront envia os logs de acesso à conta de destino.
No procedimento deste exemplo, a conta de origem 111.111.111.111
) envia os respectivos logs de acesso a um bucket do Amazon S3 na conta de destino (222.222.222.222
). Para enviar logs de acesso a um bucket do Amazon S3 na conta de destino, use a AWS CLI.
Configurar a conta de destino
Para a conta de destino, conclua o procedimento a seguir.
Como configurar a conta de destino
-
Para criar o destino da entrega de logs, você pode inserir o comando da AWS CLI a seguir. Este exemplo usa a string
para criar um prefixo para os logs de acesso.MyLogPrefix
aws logs put-delivery-destination --name
cloudfront-delivery-destination
--delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs
/MyLogPrefix
"Saída
{ "deliveryDestination": { "name": "cloudfront-delivery-destination", "arn": "arn:aws:logs:us-east-1:
222222222222
:delivery-destination:cloudfront-delivery-destination
", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": {"destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/
"} } }MyLogPrefix
nota
Se você especificar um bucket do S3 sem um prefixo, o CloudFront anexará automaticamente o
AWSLogs/
como um prefixo que aparece no<account-ID>
/CloudFrontsuffixPath
do destino de entrega do S3. Para ter mais informações, consulte S3DeliveryConfiguration. -
Adicione a política de recursos para o destino de entrega de logs a fim de permitir que a conta de origem crie uma entrega de logs.
Na política a seguir, substitua
111111111111
pelo ID da conta de origem e especifique o ARN do destino de entrega com base na saída da etapa 1.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": {"AWS": "
111111111111
"}, "Action": ["logs:CreateDelivery"], "Resource": "arn:aws:logs:us-east-1:222222222222
:delivery-destination:cloudfront-delivery-destination
" } ] } -
Salve o arquivo, como
deliverypolicy.json
, por exemplo. -
Para anexar a política anterior ao destino de entrega, digite o comando da AWS CLI a seguir.
aws logs put-delivery-destination-policy --delivery-destination-name
cloudfront-delivery-destination
--delivery-destination-policy file://deliverypolicy.json -
Adicione a declaração abaixo à política de bucket do Amazon S3 de destino, substituindo o ARN do recurso e o ID da conta de origem. Essa política permite que a entidade principal do serviço
delivery.logs.amazonaws.com
execute a açãos3:PutObject
.{ "Sid": "AWSLogsDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket-cloudfront-logs
/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "111111111111
" }, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111
:delivery-source:*"} } } -
Se você estiver usando o AWS KMS para seu bucket, adicione a declaração a seguir à política de chave do KMS para conceder permissões à entidade principal do serviço
delivery.logs.amazonaws.com
.{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "", "Condition": { "StringEquals": {"aws:SourceAccount": "
111111111111
"}, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111
:delivery-source:"} } }
Configurar a conta de origem
Depois de configurar a conta de destino, siga este procedimento para criar a origem de entrega e habilitar o registro em log para a distribuição na conta de origem.
Como configurar a conta de origem
-
Crie uma origem de entrega para o registro em log padrão do CloudFront para que possa enviar arquivos de log ao CloudWatch Logs.
Você pode inserir o comando da AWS CLI a seguir, substituindo o nome e o ARN da sua distribuição.
aws logs put-delivery-source --name
s3-cf-delivery
--resource-arn arn:aws:cloudfront::111111111111
:distribution/E1TR1RHV123ABC
--log-type ACCESS_LOGSSaída
{ "deliverySource": { "name": "s3-cf-delivery", "arn": "arn:aws:logs:us-east-1:
111111111111
:delivery-source:s3-cf-delivery
", "resourceArns": ["arn:aws:cloudfront::111111111111
:distribution/E1TR1RHV123ABC
"], "service": "cloudfront", "logType": "ACCESS_LOGS" } } -
Crie uma entrega para associar a origem de entrega de logs da conta de origem e o destino de entrega de logs da conta de destino.
No comando da AWS CLI a seguir, especifique o ARN do destino de entrega com base na saída da Etapa 1: configurar a conta de destino.
aws logs create-delivery --delivery-source-name
s3-cf-delivery
--delivery-destination-arn arn:aws:logs:us-east-1:222222222222
:delivery-destination:cloudfront-delivery-destination
Saída
{ "delivery": { "id": "OPmOpLahVzhx1234", "arn": "arn:aws:logs:us-east-1:111111111111:delivery:OPmOpLahVzhx1234", "deliverySourceName": "s3-cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "\t" } }
-
Verifique se a entrega entre contas foi bem-sucedida.
-
Na conta de
origem
, faça login no console do CloudFront e escolha sua distribuição. Na guia Registro em log, em Tipo, você verá uma entrada criada para a entrega de logs entre contas do S3. -
Na conta de
destino
, faça login no console do Amazon S3 e escolha seu bucket do Amazon S3. Você verá o prefixo
no nome do bucket e quaisquer logs de acesso entregues a essa pasta.MyLogPrefix
-
Formato do arquivo de saída
Dependendo do destino de entrega escolhido, você pode especificar um dos seguintes formatos para arquivos de log:
-
JSON
-
Plain
-
w3c
-
Bruto
-
Parquet (somente para o Amazon S3)
nota
Você só pode definir o formato de saída quando cria o destino de entrega pela primeira vez. Isso não pode ser atualizado mais tarde. Para alterar o formato de saída, exclua a entrega e crie outra.
Para ter mais informações, consulte PutDeliveryDestination na Referência de API do Amazon CloudWatch Logs.
Editar as configurações do registro em log padrão
Você pode habilitar ou desabilitar o registro em log e atualizar outras configurações de log usando o console do CloudFront
Para obter mais informações, consulte os tópicos a seguir.
-
Para atualizar uma distribuição usando o console do CloudFront, consulte Atualizar uma distribuição.
-
Para atualizar uma distribuição usando a API do CloudFront, consulte UpdateDistribution na Referência de API do Amazon CloudFront.
-
Para ter mais informações sobre as operações de API do CloudWatch Logs, consulte a Referência de API do Amazon CloudWatch Logs.
Acessar campos de log
Você pode selecionar os mesmos campos de registro em log que o registro em log padrão (legado) oferece. Consulte mais informações em Campos de arquivo de log.
Além disso, você pode selecionar os campos de log em tempo real a seguir.
-
timestamp(ms)
: carimbo de data/hora em milissegundos. -
origin-fbl
: o número de segundos de latência de primeiro byte entre o CloudFront e a origem. -
origin-lbl
: o número de segundos de latência de último byte entre o CloudFront e a origem. -
asn
: o número de sistema autônomo (ASN) do visualizador. c-country
: um código de país que representa a localização geográfica do visualizador, conforme determinado pelo endereço IP do visualizador. Para obter uma lista de códigos de país, consulte ISO 3166-1 alfa-2. cache-behavior-path-pattern
: o padrão do caminho que identifica o comportamento de cache que correspondeu à solicitação do visualizador.
Enviar logs ao CloudWatch Logs
Para enviar logs ao Amazon CloudWatch Logs, crie ou use um grupo de logs existente do CloudWatch Logs. Para ter mais informações sobre grupos de logs do CloudWatch Logs, consulte Working with Log Groups and Log Streams.
Depois de criar o grupo de logs, você deve ter as permissões necessárias para autorizar o registro em log padrão. Para ter mais informações sobre o CloudWatch Logs, consulte Logs sent to CloudWatch Logs no Guia do usuário do Amazon CloudWatch Logs.
Observações
-
Ao especificar o nome do grupo de logs do CloudWatch Logs, use somente o padrão regex
[\w-]
. Para ter mais informações, consulte a operação de API PutDeliveryDestination na Referência de API do Amazon CloudWatch Logs. -
Verifique se a política de recursos do grupo de logs não excede o limite de tamanho. Consulte a seção Log group resource policy size limit considerations no tópico CloudWatch Logs.
Exemplo de log de acesso enviado ao CloudWatch Logs
{
"date": "2024-11-14",
"time": "21:34:06",
"x-edge-location": "SOF50-P2",
"asn": "16509",
"timestamp(ms)": "1731620046814",
"origin-fbl": "0.251",
"origin-lbl": "0.251",
"x-host-header": "d111111abcdef8.cloudfront.net",
"cs(Cookie)": "examplecookie=value"
}
Enviar logs ao Firehose
Para enviar logs ao Firehose, crie ou use um fluxo de entrega existente do Firehose.
Para obter mais informações sobre criar seu fluxo de entrega, consulte Criar um fluxo de entrega do Amazon Data Firehose.
Depois de criar o fluxo de entrega, você deve ter as permissões necessárias para autorizar o registro em log padrão. Para ter mais informações, consulte Logs sent do Firehose no Guia do usuário do Amazon CloudWatch Logs.
nota
Ao especificar o nome do fluxo do Firehose, use somente o padrão regex [\w-]
. Para ter mais informações, consulte a operação de API PutDeliveryDestination na Referência de API do Amazon CloudWatch Logs.
Exemplo de log de acesso enviado ao Firehose
{"date":"2024-11-15","time":"19:45:51","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699951183","origin-fbl":"0.254","origin-lbl":"0.254","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"} {"date":"2024-11-15","time":"19:45:52","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699952950","origin-fbl":"0.125","origin-lbl":"0.125","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}
Enviar logs ao Amazon S3
Para enviar logs de acesso ao Amazon S3, crie ou use um bucket do S3 existente. Ao habilitar o registro em log no CloudFront, especifique o nome do bucket. Para ter informações sobre como criar um bucket, consulte Criação de um bucket, no Guia do usuário do Amazon Simple Storage Service.
Depois de criar o bucket, você deve ter as permissões necessárias para autorizar o registro em log padrão. Para obter mais informações, consulte Logs enviados ao Amazon S3 no Guia do usuário do Amazon CloudWatch Logs.
-
Após a habilitação do registro em log, a AWS adiciona automaticamente as políticas de bucket necessárias para você.
-
Você também pode usar buckets S3 nas Regiões da AWS habilitadas.
nota
Se você já habilitou o registro em log padrão (legado) e deseja habilitar o registro em log padrão (v2) no Amazon S3, recomendamos que especifique um bucket do Amazon S3 diferente ou use um caminho separado no mesmo bucket (por exemplo, use um prefixo de log ou particionamento). Isso ajuda a controlar quais arquivos de log são associados a qual distribuição e evita que um substitua o outro.
Tópicos
Especificar um bucket do S3
Ao especificar um bucket do S3 como destino de entrega, observe os fatores a seguir.
O nome do bucket do S3 só pode usar o padrão regex [\w-]
. Para ter mais informações, consulte a operação de API PutDeliveryDestination na Referência de API do Amazon CloudWatch Logs.
Se você especificou um prefixo para o bucket do S3, os logs aparecerão sob esse caminho. Se você não especificar um prefixo, o CloudFront anexará automaticamente o prefixo AWSLogs/
para você. {account-id}
/CloudFront
Para ter mais informações, consulte Exemplo de caminhos para acessar logs.
Particionamento
Você pode usar o particionamento para organizar os logs de acesso quando o CloudFront os envia ao bucket do S3. Isso ajuda você a organizar e localizar os logs de acesso com base no caminho que você deseja.
Você pode usar as variáveis a seguir para criar um caminho de pasta.
-
{DistributionId}
-
{yyyy}
-
{MM}
-
{dd}
-
{HH}
-
{accountid}
Você pode usar qualquer número de variáveis e especificar nomes de pasta em seu caminho. O CloudFront então usa esse caminho para criar uma estrutura de pastas para você no bucket do S3.
Exemplos
-
my_distribution_log_data
/{DistributionId}/logs
-
/
cloudfront
/{DistributionId}/my_distribution_log_data
/{yyyy}/{MM}/{dd}/{HH}/logs
Formato de nome de arquivo compatível com o Hive
Você pode usar essa opção para que os objetos do S3 que contêm logs de acesso entregues usem uma estrutura de prefixo que permita a integração com o Apache Hive. Para ter mais informações, consulte a operação de API CreateDelivery.
exemplo Exemplo
/
cloudfront
/DistributionId={DistributionId}/my_distribution_log_data
/year={yyyy}/month={MM}/day={dd}/hour={HH}/logs
Para ter mais informações sobre particionamento e as opções compatíveis com o Hive, consulte o elemento S3DeliveryConfiguration na Referência de API do Amazon CloudWatch Logs.
Exemplo de caminhos para acessar logs
Ao especificar um bucket do S3 como destino, você pode usar as seguintes opções para criar o caminho para os logs de acesso:
-
Um bucket do Amazon S3, com ou sem prefixo
-
Particionamento, usando uma variável fornecida pelo CloudFront ou inserindo sua própria
-
Habilitar a opção compatível com o Hive
As tabelas a seguir mostram como os logs de acesso aparecem no bucket, dependendo das opções que você escolher.
Bucket do Amazon S3 com um prefixo
Nome do bucket do Amazon S3 | Partição que você especifica no caminho do sufixo | Caminho de sufixo atualizado | Compatibilidade com o Hive habilitada? | Os logs de acesso são enviados para |
---|---|---|---|---|
amzn-s3-demo-bucket/MyLogPrefix |
Nenhum | Nenhum | Não | amzn-s3-demo-bucket/MyLogPrefix/ |
amzn-s3-demo-bucket/MyLogPrefix |
myFolderA/ |
myFolderA/ |
Não | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/ |
amzn-s3-demo-bucket/MyLogPrefix |
myFolderA/{yyyy} |
myFolderA/{yyyy} |
Sim | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/year=2025 |
Bucket do Amazon S3 com um prefixo
Nome do bucket do Amazon S3 | Partição que você especifica no caminho do sufixo | Caminho de sufixo atualizado | Compatibilidade com o Hive habilitada? | Os logs de acesso são enviados para |
---|---|---|---|---|
amzn-s3-demo-bucket |
Nenhum | AWSLogs/{account-id}/CloudFront/ |
Não | amzn-s3-demo-bucket/AWSLogs/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
Não | amzn-s3-demo-bucket/AWSLogs/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
amzn-s3-demo-bucket |
myFolderA/{yyyy} |
AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} |
Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
ID da Conta da AWS como uma partição
Nome do bucket do Amazon S3 | Partição que você especifica no caminho do sufixo | Caminho de sufixo atualizado | Compatibilidade com o Hive habilitada? | Os logs de acesso são enviados para |
---|---|---|---|---|
amzn-s3-demo-bucket |
Nenhum | AWSLogs/{account-id}/CloudFront/ |
Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
amzn-s3-demo-bucket |
myFolderA/{accountid} |
AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} |
Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
Observações
-
A variável
{account-id}
é reservada para o CloudFront. O CloudFront adiciona automaticamente essa variável ao caminho de sufixo se você especificar um bucket do Amazon S3 sem um prefixo. Se os logs forem compatíveis com o Hive, essa variável aparecerá comoaws-account-id
. -
Você pode usar a variável
{accountid}
para que o CloudFront adicione o ID da sua conta ao caminho do sufixo. Se os logs forem compatíveis com o Hive, essa variável aparecerá comoaccountid
. -
Para ter mais informações sobre o caminho do sufixo, consulte S3DeliveryConfiguration.
Exemplo de log de acesso enviado ao Amazon S3
#Fields: date time x-edge-location asn timestamp(ms) x-host-header cs(Cookie) 2024-11-14 22:30:25 SOF50-P2 16509 1731623425421 d111111abcdef8.cloudfront.net examplecookie=value2
Desabilitar o registro em log padrão
Você pode desabilitar o registro em log padrão da sua distribuição caso não precise mais dele.
Como desabilitar o registro em log padrão
-
Faça login no console do CloudFront.
-
Selecione Distribuição e escolha o ID de sua distribuição.
-
Escolha Registro em log e, em Destinos de log padrão, selecione o destino.
-
Selecione Gerenciar e, em seguida, Excluir.
-
Repita a etapa anterior se você tiver mais de um registro em log padrão.
nota
Quando você exclui o registro em log padrão do console do CloudFront, essa ação exclui somente a entrega e o destino da entrega. Isso não exclui a origem de entrega da sua Conta da AWS. Para excluir uma origem de entrega, especifique o nome da origem de entrega no comando aws logs delete-delivery-source --name DeliverySourceName
. Para ter mais informações, consulte DeleteDeliverySource na Referência de API do Amazon CloudWatch Logs.
Solução de problemas
Ao habilitar o registro em log padrão para uma distribuição, você cria uma origem de entrega. Em seguida, você usa essa origem de entrega para criar entregas para o tipo de destino desejado: CloudWatch Logs, Firehose e Amazon S3. No momento, você só pode ter uma origem de entrega por distribuição. Se você tentar criar outra origem de entrega para a mesma distribuição, a mensagem de erro a seguir será exibida.
This ResourceId has already been used in another Delivery Source in this account
Para criar outra origem de entrega, exclua primeiro a existente. Para ter mais informações, consulte DeleteDeliverySource na Referência de API do Amazon CloudWatch Logs.
Excluir arquivos de log
O CloudFront não exclui automaticamente os arquivos de log do seu destino. Para ter informações sobre como excluir arquivos de log, consulte os seguintes tópicos:
Amazon S3
-
Excluir objetos no Guia de usuário do Amazon Simple Storage Service
CloudWatch Logs
-
Working with log groups and log streams no Guia do usuário do Amazon CloudWatch Logs
-
DeleteLogGroup na Referência de API do Amazon CloudWatch Logs
Firehose
-
DeleteDeliveryStream na Referência de API do Amazon Data Firehose
Preços
O CloudFront não cobra pela habilitação de logs padrão. Entretanto, você pode incorrer em cobranças pela entrega, ingestão, armazenamento ou acesso, dependendo do destino de entrega de log selecionado. Para ter mais informações, consulte Definição de preço do Amazon CloudWatch Logs
Para ter mais informações sobre o preço de cada AWS service (Serviço da AWS), consulte os seguintes tópicos:
-
nota
Não há cobranças adicionais pela entrega de logs para o Amazon S3, embora você incorra em cobranças do Amazon S3 pelo armazenamento e acesso aos arquivos de log. Se você habilitar a opção Parquet para converter os logs de acesso em Apache Parquet, essa opção incorrerá em cobranças do CloudWatch. Para ter mais informações, consulte a seção sobre logs fornecidos em Definição de preço do Amazon CloudWatch
.