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.
Bereitstellung von Serverzugriffsprotokollen an CloudWatch Logs
Sie können Amazon S3-Serverzugriffsprotokolle mithilfe der Amazon CloudWatch Logs-Übertragung an eine CloudWatch Logs-Protokollgruppe übermitteln. Sobald sich die CloudWatch Protokolle in Logs befinden, können Sie sie mit CloudWatch Logs Insights abfragen, sie über Konten und Regionen hinweg aggregieren, sie mit AWS Key Management Service (AWS KMS) verschlüsseln und sie optional im Apache Iceberg-Format für SQL-Analysen an Amazon S3-Tabellen senden. Sie können Protokolle auch im JSON- oder Apache Parquet-Format an Amazon S3 übermitteln oder sie über Amazon Data Firehose weiterleiten.
Sie konfigurieren die Übermittlung mithilfe von CloudWatch Logs-APIs, nicht mithilfe von Amazon S3-APIs. Sie geben eine Protokollgruppe für jeden Quell-Bucket an. Mehrere Buckets können dieselbe Loggruppe gemeinsam nutzen, oder jeder Bucket kann Daten an seinen eigenen Server übertragen.
Tipp
Sie können mehrere Ziele für denselben Bucket einrichten. So können Sie beispielsweise eine Protokollgruppe für interaktive Abfragen an eine CloudWatch Logs-Protokollgruppe senden und gleichzeitig im Parquet-Format an Amazon S3 übermitteln, um eine langfristige Aufbewahrung zu geringeren Kosten zu ermöglichen.
Anmerkung
CloudWatch Die Protokollzustellung von Logs aus dem Verkauf unterstützt auch Amazon Data Firehose und Amazon S3 als Lieferziele, einschließlich des Apache Parquet-Ausgabeformats. Diese Seite behandelt das Ziel der CloudWatch Logs-Protokollgruppe, das auch die S3-Tabelles-Integration für SQL-Analysen unterstützt. Informationen zu Firehose- und Amazon S3-Zielen finden Sie im Amazon CloudWatch Logs-Benutzerhandbuch unter Protokollierung von AWS Diensten aktivieren.
Anmerkung
Informationen zur Bereitstellung von Serverzugriffsprotokollen stattdessen an einen Amazon S3-Bucket für allgemeine Zwecke finden Sie unterAktivieren Sie die Amazon-S3-Server-Zugriffsprotokollierung.
Voraussetzungen
Bevor Sie die Lieferung einrichten, benötigen Sie Folgendes:
-
Ein Amazon S3-Bucket für allgemeine Zwecke (der Quell-Bucket, den Sie protokollieren möchten).
-
Eine CloudWatch Logs-Protokollgruppe in derselben Größe AWS-Region wie der Quell-Bucket.
-
IAM-Berechtigungen für den Anrufer. Sie benötigen mindestens die folgenden Berechtigungen:
-
logs:PutDeliverySource -
logs:PutDeliveryDestination -
logs:CreateDelivery -
s3:AllowVendedLogDeliveryForResource(im Quell-Bucket)
Wenn Sie die S3-Tabelles-Integration aktivieren möchten, benötigen Sie außerdem:
-
observabilityadmin:CreateS3TableIntegration -
logs:AssociateSourceToS3TableIntegration -
s3tables:CreateTableBucket -
s3tables:PutTableBucketEncryption -
s3tables:PutTableBucketPolicy
-
Lieferung einrichten (AWS CLI)
Gehen Sie wie folgt vor, um die AWS Command Line InterfaceÜbermittlung von CloudWatch Serverzugriffsprotokollen an Logs mithilfe von einzurichten.
-
Erstellen Sie eine Übermittlungsquelle. Dadurch wird Ihr Amazon S3-Bucket als Protokollquelle bei CloudWatch Logs registriert.
aws logs put-delivery-source \ --namemy-sal-source\ --resource-arn arn:aws:s3:::my-bucket\ --log-type S3_SERVER_ACCESS_LOGS -
Erstellen Sie ein Lieferziel. Dies gibt die CloudWatch Logs-Loggruppe an, an die Logs geliefert werden.
aws logs put-delivery-destination \ --namemy-sal-destination\ --delivery-destination-configuration '{"destinationResourceArn": "arn:aws:logs:us-east-1:123456789012:log-group:my-sal-logs"}' -
Erstellen Sie eine Lieferung. Dadurch wird die Quelle mit dem Ziel verknüpft und die Protokollzustellung gestartet.
aws logs create-delivery \ --delivery-source-namemy-sal-source\ --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:my-sal-destination
Nachdem Sie diese Schritte abgeschlossen haben, beginnt Amazon S3 mit der Übermittlung von Serverzugriffsprotokollen an Ihre CloudWatch Logs-Protokollgruppe. Die Übertragung der Konfiguration dauert 15—20 Minuten. Nach der Propagierung beginnt die Protokollübermittlung in der Regel innerhalb weniger Stunden. Nur neue Anfragen werden protokolliert — es erfolgt kein Auffüllen historischer Daten.
Versand einrichten (Amazon S3-Konsole)
-
Melden Sie sich bei der Amazon S3-Konsole unter an https://console.aws.amazon.com/s3/
. -
Wählen Sie im linken Navigationsbereich Buckets aus.
-
Wählen Sie den Namen des Quell-Buckets, für den Sie die Protokollierung aktivieren möchten.
-
Wählen Sie die Registerkarte Eigenschaften aus.
-
Wählen Sie im Abschnitt Übertragung von CloudWatch Serverzugriffsprotokollen an Logs die Option Bearbeiten aus.
-
Wählen Sie Enable (Aktivieren) aus.
-
Wählen Sie eine CloudWatch Logs-Log-Gruppe als Übermittlungsziel aus oder erstellen Sie eine Logs-Log-Gruppe.
-
(Optional) Um Protokolle im Apache Iceberg-Format an S3-Tabellen zu übermitteln, wählen Sie S3-Tabellen-Integration aktivieren aus.
-
Wählen Sie Änderungen speichern aus.
Nach dem Speichern wird im Abschnitt Übertragung des CloudWatch Serverzugriffsprotokolls an Logs die aktivierte Protokollgruppe angezeigt.
Bereitstellung einrichten (CloudFormation)
Sie können AWS CloudFormation es verwenden, um die Einrichtung der Übermittlung von Serverzugriffsprotokollen an CloudWatch Logs zu automatisieren. Mit der folgenden Vorlage werden die erforderlichen Ressourcen erstellt: eine IAM-Rolle, eine Protokollgruppe für CloudWatch Protokolle, eine Übermittlungsquelle, ein Übermittlungsziel und eine Übermittlung.
AWSTemplateFormatVersion: '2010-09-09' Description: S3 Access Logs delivery to CloudWatch Logs Parameters: SourceBucketArn: Type: String Description: ARN of the S3 bucket to enable access logging LogGroupName: Type: String Default: /aws/s3/access-logs Description: CloudWatch Log Group name for SAL delivery Resources: SALLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Ref LogGroupName RetentionInDays: 180 SALDeliverySource: Type: AWS::Logs::DeliverySource Properties: Name: !Sub '${AWS::StackName}-sal-source' ResourceArn: !Ref SourceBucketArn LogType: S3_SERVER_ACCESS_LOGS SALDeliveryDestination: Type: AWS::Logs::DeliveryDestination Properties: Name: !Sub '${AWS::StackName}-sal-destination' DestinationResourceArn: !GetAtt SALLogGroup.Arn SALDelivery: Type: AWS::Logs::Delivery Properties: DeliverySourceName: !Ref SALDeliverySource DeliveryDestinationArn: !GetAtt SALDeliveryDestination.Arn
Aktivierung der S3-Tabelles-Integration (optional)
Wenn Sie die S3-Tabelles-Integration aktivieren, übermittelt Logs Ihre CloudWatch Serverzugriffsprotokolle automatisch im Apache Iceberg-Format an den aws-cloudwatch verwalteten Tabellen-Bucket in Ihrem Konto. Sie können diese Daten dann mit Amazon Athena, Amazon Redshift oder einem anderen Tool abfragen. Iceberg-compatible
In der S3 Tables-Integration fallen keine zusätzlichen Gebühren für die Speicherung oder Tabellenverwaltung an. Sie zahlen nur für die Aufnahme von CloudWatch Protokollen und für Abfrageanforderungen zum Preis von S3-Tabellen.
-
Erstellen Sie die S3-Tabelles-Integration (einmal pro Konto pro Region).
aws observabilityadmin create-s3-table-integration \ --role-arn arn:aws:iam::123456789012:role/CWLogsS3TableIntegrationRole\ --encryption '{"SseAlgorithm": "AES256"}'Die IAM-Rolle muss dem
logs.amazonaws.com.rproxy.govskope.caDienstprinzipal vertrauen und dielogs:integrateWithS3TableErlaubnis erteilen. Im Folgenden finden Sie ein Beispiel für eine Vertrauensrichtlinie:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:log-group:log-group-name" } } } ] }Für die Rolle ist außerdem die folgende Berechtigungsrichtlinie erforderlich:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:integrateWithS3Table", "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:log-group-name", "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] } -
Ordnen Sie Ihre Übermittlungsquelle der Integration zu.
aws logs associate-source-to-s3-table-integration \ --integration-arnintegration-arn\ --data-source '{"name":"amazon_s3","type":"server_access"}'
Nach diesen Schritten erstellt CloudWatch Logs den aws-cloudwatch verwalteten Tabellen-Bucket und beginnt mit der Bereitstellung von Logs im Iceberg-Format. Die Daten werden in der Regel innerhalb einer Stunde nach der ersten Übermittlung an CloudWatch Logs angezeigt.
Hinweise zur Abfrage der S3-Tabelles-Integration finden Sie unterAbfragen von Zugriffsprotokollen in S3-Tabellen.
Cross-account und regionsübergreifende Aggregation
Der CloudWatch Protokollzustellungspfad unterstützt die konto- und regionsübergreifende Protokollaggregation mit zwei Optionen:
-
CloudWatch Die kontoübergreifende Beobachtbarkeit ermöglicht es Ihnen, Protokolle kontenübergreifend abzufragen, ohne Daten kopieren zu müssen.
-
CloudWatch Durch die Zentralisierung von Protokollen können Sie Protokolle aus mehreren Konten und Regionen in einer zentralen Protokollgruppe konsolidieren. Optional können Sie Abonnementfilter für die selektive Weiterleitung verwenden.
Bei Konfigurationen mit mehreren Konten können Administratoren die CloudWatch Telemetriekonfig-Aktivierungsregeln verwenden, um die automatische Übertragung von Serverzugriffsprotokollen für alle Mitgliedskonten AWS Organizations zu aktivieren.
Anmerkung
Aktivierungsregeln unterstützen derzeit nicht die automatische Aktivierung der S3-Tabelles-Integration. Sie müssen die Integration in jedem Konto separat aktivieren.
Verschlüsselung
Sie können an Logs übermittelte Serverzugriffsprotokolle verschlüsseln, CloudWatch indem Sie die AWS KMS Verschlüsselung für Ihre Protokollgruppe konfigurieren. Wenn Serverzugriffsprotokolle an diese Protokollgruppe übermittelt werden, werden sie mit Ihrem AWS KMS Schlüssel verschlüsselt. Dies behebt eine wichtige Einschränkung des Amazon S3-Allzweck-Bucket-Lieferpfads, der nur SSE-S3 Verschlüsselung unterstützt.
Wenn Sie die S3-Tabelles-Integration mit einer AWS KMS verschlüsselten Protokollgruppe aktivieren, müssen Sie in Ihrer AWS KMS Schlüsselrichtlinie den folgenden Dienstprinzipalen zusätzliche Berechtigungen gewähren:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableCWSystemTablesKeyUsage", "Effect": "Allow", "Principal": { "Service": "systemtables.cloudwatch.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }, { "Sid": "EnableS3TablesMaintenanceKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "table-bucket-arn/*" } } } ] }
Der systemtables.cloudwatch.amazonaws.com Prinzipal wird von CloudWatch Logs verwendet, um Protokolle in S3-Tabellen zu schreiben. Das maintenance.s3tables.amazonaws.com Prinzip wird von S3 Tables für Iceberg-Operationen wie die Komprimierung verwendet.
Deaktivierung der Zustellung
Um die Übermittlung von Serverzugriffsprotokollen an CloudWatch Logs zu beenden, können Sie die Übertragung oder die Übermittlungsquelle löschen:
-
Lieferung löschen — stoppt die Protokollzustellung, die Konfiguration der Übermittlungsquelle bleibt jedoch erhalten. Sie können später eine neue Lieferung erstellen, ohne die Quelle neu zu konfigurieren.
aws logs delete-delivery \ --iddelivery-id -
Löschen Sie die Lieferquelle — entfernt die Quellkonfiguration vollständig. Verwenden Sie diese Option, wenn Sie nicht mehr möchten, dass der Bucket mit der CloudWatch Logs-Lieferung verknüpft ist.
aws logs delete-delivery-source \ --namedelivery-source-name
Zuvor bereitgestellte Protokolle verbleiben in der Protokollgruppe und in der S3-Tabelles-Integration (falls aktiviert). Durch das Löschen der Lieferung werden die vorhandenen Protokolldaten nicht entfernt.