

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 Analytics-Workloads abzufragen.
+ **Amazon Redshift ** — Fragen Sie Iceberg-Tabellen über Redshift Spectrum oder eine direkte Integration ab.
+ **Apache Spark auf Amazon EMR ** — Verwenden Sie Spark SQL oder die DataFrame API mit dem Iceberg-Connector.
+ **Open-source Tools ** — Jedes Tool, das den Apache Iceberg REST-Katalog unterstützt, wie Trino, DuckDB oder. PyIceberg

**Anmerkung**  
Informationen zum interaktiven Abfragen von Protokollen in CloudWatch Logs Insights (ohne SQL) finden Sie unter. [Abfragen von Protokollen mit CloudWatch Logs Insights](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 S3-Tabelles-Integration. ** Siehe [Aktivierung der S3-Tabelles-Integration (optional)](sal-cw-enabling.md#sal-cw-tables-integration).

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

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

## Amazon Athena wird verbunden
<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-Tabellen-Katalog aus der Dropdownliste für die Datenquelle 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 Anforderungsvolumen im Zeitverlauf**  

```
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: Zugriff verweigert**  

```
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 404 Anfragen wurden 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 (Drosselung) 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 durch den 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 Operationstyp**  

```
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 Schlüssel 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 durch 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 Die größten 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 AI-Agenten zur Abfrage von Amazon S3-Serverzugriffsprotokollen
<a name="sal-cw-s3tables-ai-agents"></a>

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

Das [ Agent 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 vermitteln. AWS Der [ Skill ](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/system-table-skills/querying-aws-cloudwatch) Querying CloudWatch Logs-Systemtabellen führt SQL-Abfragen für CloudWatch Protokolldaten aus, die in S3-Tabellen exportiert wurden, einschließlich Ihrer Amazon 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, in Ihren S3-Serverzugriffsprotokollen der letzten 24 Stunden die 10 wichtigsten Quell-IP-Adressen nach Anzahl der Anfragen anzuzeigen. Der Agent verwendet den Skill, um die Tabelle mit den Zugriffsprotokollen zu finden und die Abfrage in Athena auszuführen.