

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Abfragen von Zugriffsprotokollen in S3-Tabellen
<a name="sal-cw-querying-s3tables"></a>

Wenn Sie die Amazon S3 Tables-Integration aktivieren, übermittelt Amazon CloudWatch Logs Ihre Serverzugriffsprotokolle im Apache Iceberg-Format an den `aws-cloudwatch` verwalteten Tabellen-Bucket. Da die Daten im Iceberg-Format vorliegen, können Sie sie mit jedem Tool abfragen, das Apache Iceberg unterstützt, einschließlich:
+ **Amazon Athena** — Führen Sie mithilfe des S3-Tables-Katalogs SQL-Abfragen direkt von der Athena-Konsole aus.
+ **Amazon SageMaker Unified Studio** — Verwenden Sie den integrierten SQL-Editor, um Ihre Protokolldaten zusammen mit anderen Analyse-Workloads abzufragen.
+ **Amazon Redshift** — Fragen Sie Iceberg-Tabellen über Redshift Spectrum oder direkte Integration ab.
+ **Apache Spark auf Amazon EMR** — Verwenden Sie Spark SQL oder die DataFrame API mit dem Iceberg-Konnektor.
+ **Open-source Tools** — Jedes Tool, das den Apache Iceberg REST-Katalog unterstützt, wie Trino, DuckDB oder. PyIceberg

**Anmerkung**  
Informationen zum interaktiven Abfragen von Logs in CloudWatch Logs Insights (ohne SQL) finden Sie unter. [Logs mit CloudWatch Logs Insights abfragen](sal-cw-querying-insights.md)

## Voraussetzungen
<a name="sal-cw-s3tables-prerequisites"></a>

Bevor Sie Zugriffsprotokolle in S3-Tabellen abfragen können, müssen Sie die folgenden Schritte ausführen:

1. **Aktivieren Sie die Integration von S3 Tables.** Siehe [Aktivierung der Integration von S3-Tabellen (optional)](sal-cw-enabling.md#sal-cw-tables-integration).

1. **Aktivieren Sie die Integration von S3-Tabellen mit Analysediensten.** Navigieren Sie in der Amazon S3 S3-Konsole zu **Table-Buckets** und wählen Sie **Integration aktivieren** aus. Dadurch wird der `s3tablescatalog` Verbundkatalog im Datenkatalog erstellt und Ihre Tabellen für Analysedienste sichtbar gemacht. Standardmäßig wird der Zugriff über IAM-Berechtigungen gesteuert. Sie können ihn optional AWS Lake Formation für eine differenzierte Zugriffskontrolle verwenden. Weitere Informationen finden Sie unter [Integration von S3-Tabellen mit AWS Analysediensten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html).

1. **Warten Sie, bis die Daten gefüllt sind.** Daten werden in der Regel innerhalb einer Stunde nach der ersten Übermittlung an CloudWatch Logs angezeigt.

## Amazon Athena verbinden
<a name="sal-cw-s3tables-athena-setup"></a>

1. Öffnen Sie die Athena-Konsole unter [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

1. Wählen Sie im Abfrage-Editor den **Amazon S3 Tables-Katalog aus** der Datenquellen-Dropdownliste aus.

1. Ihre Protokolltabellen werden in der Datenbankliste unter dem `logs` Namespace angezeigt.

Der Tabellenname für Serverzugriffsprotokolle lautet`amazon_s3__server_access`. Die vollqualifizierte Tabellenreferenz lautet:

```
"s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
```

## Analyse des Verkehrs
<a name="sal-cw-s3tables-traffic"></a>

**Example Volumen der Anfragen im Laufe der Zeit**  

```
SELECT date_trunc('minute', request_time) AS interval,
  COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY date_trunc('minute', request_time)
ORDER BY interval ASC;
```

**Example Mix nach Operationstyp anfragen**  

```
SELECT operation, COUNT(*) AS cnt
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY operation
ORDER BY cnt DESC;
```

**Example Verkehr nach Bucket**  

```
SELECT bucket_arn, COUNT(*) AS requests, SUM(bytes_sent_size) AS bytes_out
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY bucket_arn
ORDER BY requests DESC;
```

## Behebung von Fehlern
<a name="sal-cw-s3tables-errors"></a>

**Example Aufschlüsselung der Fehlerrate**  

```
SELECT http_status, error_code, operation, COUNT(*) AS error_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status >= 400
GROUP BY http_status, error_code, operation
ORDER BY error_count DESC;
```

**Example 403 Anfragen mit verweigertem Zugriff**  

```
SELECT key_name, remote_ip, requester, COUNT(*) AS denied_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status = 403
GROUP BY key_name, remote_ip, requester
ORDER BY denied_count DESC;
```

**Example Anfragen vom Typ 404 Nicht gefunden**  

```
SELECT key_name, error_code, remote_ip, COUNT(*) AS miss_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status = 404
GROUP BY key_name, error_code, remote_ip
ORDER BY miss_count DESC;
```

**Example 503 SlowDown (Drosselungs-) Ereignisse**  

```
SELECT key_name, remote_ip, COUNT(*) AS throttle_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status = 503
GROUP BY key_name, remote_ip
ORDER BY throttle_count DESC;
```

## Zugriffsmuster
<a name="sal-cw-s3tables-access"></a>

**Example Verkehr nach Quell-IP**  

```
SELECT remote_ip,
  COUNT(*) AS total_requests,
  SUM(CASE WHEN http_status >= 400 THEN 1 ELSE 0 END) AS errors,
  SUM(bytes_sent_size) AS bytes_transferred
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY remote_ip
ORDER BY total_requests DESC;
```

**Example Operationen nach Anforderer**  

```
SELECT requester, operation, COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY requester, operation
ORDER BY requests DESC;
```

**Example Am häufigsten aufgerufene Schlüssel**  

```
SELECT key_name, COUNT(*) AS access_count, SUM(bytes_sent_size) AS bytes_out
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT')
GROUP BY key_name
ORDER BY access_count DESC
LIMIT 10;
```

## Latenzanalyse
<a name="sal-cw-s3tables-latency"></a>

**Example Latenz nach Vorgangstyp**  

```
SELECT operation,
  AVG(total_duration) AS avg_ms,
  APPROX_PERCENTILE(total_duration, 0.5) AS p50_ms,
  APPROX_PERCENTILE(total_duration, 0.95) AS p95_ms,
  MAX(total_duration) AS max_ms,
  COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT')
GROUP BY operation;
```

**Example Langsamste Tasten nach p95-Latenz**  

```
SELECT key_name,
  AVG(total_duration) AS avg_ms,
  APPROX_PERCENTILE(total_duration, 0.95) AS p95_ms,
  COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation = 'REST.GET.OBJECT'
GROUP BY key_name
ORDER BY p95_ms DESC
LIMIT 10;
```

**Example Latenz im Laufe der Zeit**  

```
SELECT date_trunc('minute', request_time) AS interval,
  AVG(total_duration) AS avg_ms,
  APPROX_PERCENTILE(total_duration, 0.95) AS p95_ms
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT')
GROUP BY date_trunc('minute', request_time)
ORDER BY interval ASC;
```

## Kostenzuweisung
<a name="sal-cw-s3tables-cost"></a>

**Example Datenübertragung nach Operation**  

```
SELECT operation,
  SUM(bytes_sent_size) AS total_bytes_out,
  SUM(object_size) AS total_object_bytes,
  COUNT(*) AS request_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT', 'REST.DELETE.OBJECT')
GROUP BY operation
ORDER BY total_bytes_out DESC;
```

**Example Größte Objekte, die bedient werden**  

```
SELECT key_name, MAX(object_size) AS max_size, AVG(object_size) AS avg_size, COUNT(*) AS reads
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation = 'REST.GET.OBJECT' AND bytes_sent_size > 0
GROUP BY key_name
ORDER BY max_size DESC
LIMIT 10;
```

## Sicherheitsanalyse
<a name="sal-cw-s3tables-security"></a>

**Example IPs mit hohen Fehlerraten**  

```
SELECT remote_ip,
  COUNT(*) AS total,
  SUM(CASE WHEN http_status >= 400 THEN 1 ELSE 0 END) AS errors
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY remote_ip
HAVING SUM(CASE WHEN http_status >= 400 THEN 1 ELSE 0 END) > 10
ORDER BY errors DESC;
```

**Example Fehlgeschlagene Zugriffsversuche per Schlüssel**  

```
SELECT remote_ip, key_name, operation, http_status, COUNT(*) AS attempts
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status >= 400
GROUP BY remote_ip, key_name, operation, http_status
ORDER BY attempts DESC
LIMIT 20;
```

**Example Verteilung der TLS-Version**  

```
SELECT tls_version, COUNT(*) AS cnt
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY tls_version
ORDER BY cnt DESC;
```

## Verwendung von KI-Agenten zur Abfrage von Amazon S3 S3-Serverzugriffsprotokollen
<a name="sal-cw-s3tables-ai-agents"></a>

MCP-compatible KI-Agenten können die S3-Tabellen ermitteln, die Ihre Amazon S3 S3-Serverzugriffsprotokolle enthalten, SQL-Abfragen generieren und die Ergebnisse analysieren. Da Ihre Amazon S3 S3-Serverzugriffsprotokolle als Iceberg-Tabellen im `aws-cloudwatch` Tabellen-Bucket exportiert werden, können Agenten sie über denselben S3 Tables-Katalog abfragen, den Sie mit Amazon Athena, Amazon EMR, Amazon Redshift oder einem anderen Tool verwenden. Iceberg-compatible 

Das [Agenten-Toolkit für AWS](https://github.com/aws/agent-toolkit-for-aws) bietet Fähigkeiten, die Agenten validierte Verfahren für die Arbeit mit Daten an die Hand geben. AWS Der Skill [Querying CloudWatch Logs System Tables](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/system-table-skills/querying-aws-cloudwatch) führt SQL-Abfragen für CloudWatch Logs-Daten aus, die in S3-Tabellen exportiert wurden, einschließlich Ihrer Amazon S3 S3-Serverzugriffsprotokolle im `aws-cloudwatch` Tabellen-Bucket. Um ihn zu verwenden, laden Sie den Skill aus dem Repository herunter GitHub und fügen Sie ihn dem Skills-Verzeichnis Ihres Agenten hinzu.

Sie können beispielsweise einen Agenten bitten, die 10 wichtigsten Quell-IP-Adressen nach Anzahl der Anfragen in Ihren S3-Serverzugriffsprotokollen der letzten 24 Stunden anzuzeigen. Der Agent verwendet den Skill, um die Zugriffs-Log-Tabelle zu finden und die Abfrage in Athena auszuführen.