Usar logs de acesso ao servidor do Amazon S3 para identificar solicitações
Você pode identificar solicitações do Amazon S3 usando os logs de acesso ao servidor do Amazon S3.
nota
-
Para identificar as solicitações do Amazon S3, recomendamos que você use eventos de dados do AWS CloudTrail em vez de logs de acesso ao servidor do Amazon S3. Os eventos de dados do CloudTrail são mais fáceis de configurar e contêm mais informações. Para obter mais informações, consulte Identificar solicitações do Amazon S3 usando o CloudTrail.
-
Dependendo de quantas solicitações de acesso você receber, a análise dos logs poderá exigir mais recursos ou tempo do que o uso dos eventos de dados do CloudTrail.
Tópicos
Consultar logs de acesso para solicitações usando o Amazon Athena
Você pode identificar solicitações do Amazon S3 com logs de acesso do Amazon S3 usando o Amazon Athena.
O Amazon S3 armazena logs de acesso ao servidor como objetos em um bucket do S3. Muitas vezes, é mais fácil usar uma ferramenta que possa analisar os logs no Amazon S3. O Athena oferece suporte à análise de objetos do S3 e pode ser usado para consultar logs de acesso do Amazon S3.
exemplo
O exemplo a seguir mostra como você pode consultar os logs de acesso ao servidor do Amazon S3 no Amazon Athena. Substitua os utilizados nos exemplos a seguir por suas próprias informações.user input placeholders
nota
Para especificar um local do Amazon S3 em uma consulta do Athena, é necessário fornecer um URI do S3 para o bucket ao qual os logs são entregues. Esse URI deve incluir o nome e o prefixo do bucket no seguinte formato: s3:// /amzn-s3-demo-bucket1-logs/prefix
Abra o console do Athena em https://console.aws.amazon.com/athena/
. -
No Query Editor, execute um comando semelhante ao seguinte: Substitua
pelo nome que você deseja atribuir ao banco de dados.s3_access_logs_dbCREATE DATABASEs3_access_logs_dbnota
É uma prática recomendada criar o banco de dados na mesma Região da AWS em que o bucket do S3 está.
-
No Query Editor, execute um comando semelhante ao seguinte para criar um esquema de tabela no banco de dados criado na etapa 2. Substitua
pelo nome que você deseja atribuir à tabela. Os valores dos tipo de dadoss3_access_logs_db.mybucket_logsSTRINGeBIGINTsão propriedades do log de acesso. É possível consultar essas propriedades no Athena. ParaLOCATION, insira o bucket do S3 e o caminho do prefixo conforme indicado anteriormente. -
No painel de navegação, em Database (Banco de dados), escolha o banco de dados.
-
Em Tables (Tabelas), selecione Preview table (Visualizar tabela) ao lado do nome da tabela.
No painel Results (Resultados), você deve ver dados dos logs de acesso ao servidor, como
bucketowner,bucket,requestdatetimee assim por diante. Isso significa que você criou a tabela do Athena com êxito. Agora você pode consultar os logs de acesso ao servidor do Amazon S3.
exemplo: Mostre quem excluiu um objeto e quando (timestamp, endereço IP e usuário IAM)
SELECT requestdatetime, remoteip, requester, key FROMs3_access_logs_db.mybucket_logsWHERE key = 'images/picture.jpg' AND operation like '%DELETE%';
exemplo: Mostre todas as operações que foram realizadas por um usuário do IAM
SELECT * FROMs3_access_logs_db.mybucket_logsWHERE requester='arn:aws:iam::123456789123:user/user_name';
exemplo: mostrar todas as operações que foram realizadas em um objeto em um determinado período
SELECT * FROMs3_access_logs_db.mybucket_logsWHERE Key='prefix/images/picture.jpg' AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z') BETWEEN parse_datetime('2017-02-18:07:00:00','yyyy-MM-dd:HH:mm:ss') AND parse_datetime('2017-02-18:08:00:00','yyyy-MM-dd:HH:mm:ss');
exemplo: Mostrar a quantidade de dados transferidos por um endereço IP específico em determinado período
SELECT coalesce(SUM(bytessent), 0) AS bytessenttotal FROMs3_access_logs_db.mybucket_logsWHERE remoteip='192.0.2.1' AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z') BETWEEN parse_datetime('2022-06-01','yyyy-MM-dd') AND parse_datetime('2022-07-01','yyyy-MM-dd');
exemplo– Encontre IDs de solicitação para erros HTTP 5xx em um período específico
SELECT requestdatetime, key, httpstatus, errorcode, requestid, hostid FROMs3_access_logs_db.mybucket_logsWHERE httpstatus like '5%' AND timestamp BETWEEN '2024/01/29' AND '2024/01/30'
Identificação de solicitações do Signature versão 2
Você pode usar os logs de acesso ao servidor para identificar solicitações do Signature versão 2. Para obter detalhes sobre como consultar logs com o Amazon Athena, consulte a seção de consultas do Athena em Entrega de logs para um bucket de uso geral do Amazon S3.
Identificação de solicitações de acesso a objetos
Você pode usar logs de acesso ao servidor para identificar padrões de acesso ao objeto. Para obter detalhes sobre como consultar logs com o Amazon Athena, consulte a seção de consultas do Athena em Entrega de logs para um bucket de uso geral do Amazon S3.