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.
Exportieren Sie Protokolldaten nach Amazon S3 mit dem AWS CLI
Im folgenden Beispiel verwenden Sie eine Exportaufgabe, um alle Daten aus einer CloudWatch Logs-Protokollgruppe mit dem Namen in einen Amazon S3 S3-Bucket mit dem Namen my-log-group
zu exportierenmy-exported-logs
. In diesem Beispiel wird davon ausgegangen, dass Sie bereits eine Protokollgruppe namens my-log-group
erstellt haben.
Das Exportieren von Protokolldaten in S3-Buckets, die verschlüsselt sind, AWS KMS wird unterstützt. Der Export in Buckets, die mit DSSE-KMS verschlüsselt sind, wird nicht unterstützt.
Wie Sie den Export im Detail einrichten, hängt davon ab, ob sich der Amazon-S3-Bucket, in den Sie exportieren möchten, im selben Konto wie die zu exportierenden Protokolle befindet oder in einem anderen Konto.
Export im selben Konto
Wenn sich der Amazon-S3-Bucket im selben Konto befindet wie die zu exportierenden Protokolle, verwenden Sie die Anweisungen in diesem Abschnitt.
Themen
Schritt 1: Einen S3-Bucket erstellen
Wir empfehlen, dass Sie einen Bucket verwenden, der speziell für CloudWatch Logs erstellt wurde. Wenn Sie jedoch einen vorhandenen Bucket verwenden möchten, gehen Sie direkt zu Schritt 2.
Anmerkung
Der S3-Bucket muss sich in derselben Region befinden wie die zu exportierenden Protokolldaten. CloudWatch Logs unterstützt den Export von Daten in S3-Buckets in einer anderen Region nicht.
Um einen S3-Bucket mit dem zu erstellen AWS CLI
Führen Sie an der Eingabeaufforderung den Befehl create-bucket aus, wobei LocationConstraint
die Region ist, in der Sie Protokolldaten exportieren.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
Es folgt eine Beispielausgabe.
{ "Location": "/
my-exported-logs
" }
Schritt 2: Einrichten von Zugriffsberechtigungen
Um die Exportaufgabe in Schritt 5 erstellen zu können, müssen Sie mit der IAM-Rolle AmazonS3ReadOnlyAccess
und den folgenden Berechtigungen angemeldet sein:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:
-
Benutzer und Gruppen in AWS IAM Identity Center:
Erstellen Sie einen Berechtigungssatz. Befolgen Sie die Anweisungen unter Erstellen eines Berechtigungssatzes im AWS IAM Identity Center -Benutzerhandbuch.
-
Benutzer, die in IAM über einen Identitätsanbieter verwaltet werden:
Erstellen Sie eine Rolle für den Identitätsverbund. Befolgen Sie die Anleitung unter Eine Rolle für einen externen Identitätsanbieter (Verbund) erstellen im IAM-Benutzerhandbuch.
-
IAM-Benutzer:
-
Erstellen Sie eine Rolle, die Ihr Benutzer annehmen kann. Befolgen Sie die Anleitung unter Eine Rolle für einen IAM-Benutzer erstellen im IAM-Benutzerhandbuch.
-
(Nicht empfohlen) Weisen Sie einem Benutzer eine Richtlinie direkt zu oder fügen Sie einen Benutzer zu einer Benutzergruppe hinzu. Befolgen Sie die Anweisungen unter Hinzufügen von Berechtigungen zu einem Benutzer (Konsole) im IAM-Benutzerhandbuch.
-
Schritt 3: Festlegen von Berechtigungen für einen S3-Bucket
Standardmäßig werden alle S3-Buckets und -Objekte als privat eingestuft. Nur der Ressourceneigentümer, das Konto, in dem der Bucket erstellt wurde, kann auf den Bucket und alle darin enthaltenen Objekte zugreifen. Der Ressourcenbesitzer kann jedoch anderen Ressourcen und Benutzern Zugriffsberechtigungen gewähren, indem er eine Zugriffsrichtlinie schreibt.
Wichtig
Um Exporte in S3-Buckets sicherer zu machen, müssen Sie jetzt die Liste der Quellkonten angeben, die Protokolldaten in Ihren S3-Bucket exportieren dürfen.
Im folgenden Beispiel entspricht die Liste der Konten IDs im aws:SourceAccount
Schlüssel den Konten, von denen ein Benutzer Protokolldaten in Ihren S3-Bucket exportieren kann. Der Schlüssel aws:SourceArn
ist die Ressource, für die die Aktion ausgeführt wird. Sie können dies auf eine bestimmte Protokollgruppe beschränken oder einen Platzhalter verwenden, wie in diesem Beispiel zu sehen.
Wir empfehlen, dass Sie auch die Konto-ID des Kontos angeben, in dem der S3-Bucket erstellt wurde, um den Export innerhalb desselben Kontos zu ermöglichen.
So legen Sie Berechtigungen für einen S3-Bucket fest
-
Erstellen Sie eine Datei mit dem Namen
policy.json
und fügen Sie die folgende Zugriffsrichtlinie hinzu. Ändern Sie dabeimy-exported-logs
in den Namen Ihres S3-Bucket undPrincipal
in den Endpunkt der Region, in der Sie Protokolldaten exportieren (beispielsweiseus-west-1
). Verwenden Sie einen Text-Editor, um diese Richtliniendatei zu erstellen. Verwenden Sie nicht die IAM-Konsole. -
Legen Sie die Richtlinie, die Sie gerade hinzugefügt haben, mithilfe des put-bucket-policyBefehls als Zugriffsrichtlinie für Ihren Bucket fest. Diese Richtlinie ermöglicht CloudWatch Logs, Protokolldaten in Ihren S3-Bucket zu exportieren. Der Bucket-Eigentümer hat vollen Zugriff auf alle exportierten Objekte.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
Warnung
Wenn mit dem vorhandenen Bucket bereits eine oder mehrere Richtlinien verknüpft sind, fügen Sie die Anweisungen für den Zugriff auf CloudWatch Logs zu dieser Richtlinie oder diesen Richtlinien hinzu. Sie sollten eine Beurteilung der daraus resultierenden Berechtigungen vornehmen, um sicherzustellen, dass sie für die Benutzer, die auf den Bucket zugreifen werden, geeignet sind.
(Optional) Schritt 4: Export in einen mit SSE-KMS verschlüsselten Bucket
Dieser Schritt ist nur erforderlich, wenn Sie in einen S3-Bucket exportieren, der serverseitige Verschlüsselung mit AWS KMS keys verwendet. Diese Verschlüsselung wird als SSE-KMS bezeichnet.
So exportieren Sie in einen mit SSE-KMS verschlüsselten Bucket
-
Verwenden Sie einen Texteditor, um eine Datei mit dem Namen
key_policy.json
zu erstellen und die folgende Zugriffsrichtlinie hinzuzufügen. Wenn Sie die Richtlinie hinzufügen, nehmen Sie die folgenden Änderungen vor:-
Region
Ersetzen Sie es durch die Region Ihrer Logs. -
account-ARN
Ersetzen Sie ihn durch den ARN des Kontos, dem der KMS-Schlüssel gehört.
-
-
Geben Sie den folgenden Befehl ein:
aws kms create-key --policy file://key_policy.json
Das Folgende ist eine Beispielausgabe aus diesem Befehl:
{ "KeyMetadata": { "AWSAccountId": "
account_id
", "KeyId": "key_id
", "Arn": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "CreationDate": "time
", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
Erstellen Sie mithilfe eines Texteditors eine Datei mit dem Namen
bucketencryption.json
mit folgenden Inhalten.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Geben Sie den folgenden Befehl ein und
bucket-name
ersetzen Sie ihn durch den Namen des Buckets, in den Sie Protokolle exportieren.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonWenn der Befehl keinen Fehler zurückgibt, ist der Vorgang erfolgreich abgeschlossen.
Schritt 5: Erstellen einer Exportaufgabe
Verwenden Sie den folgenden Befehl, um die Exportaufgabe zu erstellen. Nach der Erstellung kann der Exportvorgang von einigen Sekunden bis zu einigen Stunden dauern. Dies ist abhängig von der Größe der zu exportierenden Daten.
Um Daten nach Amazon S3 zu exportieren, verwenden Sie AWS CLI
-
Melden Sie sich mit ausreichenden Berechtigungen an, wie unter Schritt 2: Einrichten von Zugriffsberechtigungen dokumentiert.
-
Verwenden Sie in einer Befehlszeile den folgenden create-export-taskBefehl, um die Exportaufgabe zu erstellen.
aws logs create-export-task --profile CWLExportUser --task-name "
my-log-group-09-10-2015
" --log-group-name "my-log-group
" --from1441490400000
--to1441494000000
--destination "my-exported-logs
" --destination-prefix "export-task-output
"Es folgt eine Beispielausgabe.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }
Kontenübergreifender Export
Wenn sich der Amazon-S3-Bucket in einem anderen Konto befindet als die zu exportierenden Protokolle, verwenden Sie die Anweisungen in diesem Abschnitt.
Themen
Schritt 1: Einen S3-Bucket erstellen
Wir empfehlen, dass Sie einen Bucket verwenden, der speziell für CloudWatch Logs erstellt wurde. Wenn Sie jedoch einen vorhandenen Bucket verwenden möchten, gehen Sie direkt zu Schritt 2.
Anmerkung
Der S3-Bucket muss sich in derselben Region befinden wie die zu exportierenden Protokolldaten. CloudWatch Logs unterstützt den Export von Daten in S3-Buckets in einer anderen Region nicht.
Um einen S3-Bucket mit dem zu erstellen AWS CLI
Führen Sie an der Eingabeaufforderung den Befehl create-bucket aus, wobei LocationConstraint
die Region ist, in der Sie Protokolldaten exportieren.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
Es folgt eine Beispielausgabe.
{ "Location": "/
my-exported-logs
" }
Schritt 2: Einrichten von Zugriffsberechtigungen
Zunächst müssen Sie eine neue IAM-Richtlinie erstellen, damit CloudWatch Logs die s3:PutObject
Erlaubnis für den Amazon S3 S3-Ziel-Bucket erhält.
Um die Exportaufgabe in Schritt 5 erstellen zu können, müssen Sie mit der IAM-Rolle AmazonS3ReadOnlyAccess
und bestimmten anderen Berechtigungen angemeldet sein. Sie können eine Richtlinie erstellen, die einige dieser anderen erforderlichen Berechtigungen enthält.
Welche Richtlinie Sie erstellen, hängt davon ab, ob der Ziel-Bucket AWS KMS Verschlüsselung verwendet. Wenn es keine AWS KMS Verschlüsselung verwendet, erstellen Sie eine Richtlinie mit dem folgenden Inhalt.
Wenn der Ziel-Bucket AWS KMS Verschlüsselung verwendet, erstellen Sie eine Richtlinie mit dem folgenden Inhalt.
Um die Exportaufgabe in Schritt 5 zu erstellen, müssen Sie mit der IAM-Rolle AmazonS3ReadOnlyAccess
, der IAM-Richtlinie, die Sie gerade erstellt haben, sowie mit den folgenden Berechtigungen angemeldet sein:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:
-
Benutzer und Gruppen in AWS IAM Identity Center:
Erstellen Sie einen Berechtigungssatz. Befolgen Sie die Anweisungen unter Erstellen eines Berechtigungssatzes im AWS IAM Identity Center -Benutzerhandbuch.
-
Benutzer, die in IAM über einen Identitätsanbieter verwaltet werden:
Erstellen Sie eine Rolle für den Identitätsverbund. Befolgen Sie die Anleitung unter Eine Rolle für einen externen Identitätsanbieter (Verbund) erstellen im IAM-Benutzerhandbuch.
-
IAM-Benutzer:
-
Erstellen Sie eine Rolle, die Ihr Benutzer annehmen kann. Befolgen Sie die Anleitung unter Eine Rolle für einen IAM-Benutzer erstellen im IAM-Benutzerhandbuch.
-
(Nicht empfohlen) Weisen Sie einem Benutzer eine Richtlinie direkt zu oder fügen Sie einen Benutzer zu einer Benutzergruppe hinzu. Befolgen Sie die Anweisungen unter Hinzufügen von Berechtigungen zu einem Benutzer (Konsole) im IAM-Benutzerhandbuch.
-
Schritt 3: Festlegen von Berechtigungen für einen S3-Bucket
Standardmäßig werden alle S3-Buckets und -Objekte als privat eingestuft. Nur der Ressourceneigentümer, das Konto, in dem der Bucket erstellt wurde, kann auf den Bucket und alle darin enthaltenen Objekte zugreifen. Der Ressourcenbesitzer kann jedoch anderen Ressourcen und Benutzern Zugriffsberechtigungen gewähren, indem er eine Zugriffsrichtlinie schreibt.
Wichtig
Um Exporte in S3-Buckets sicherer zu machen, müssen Sie jetzt die Liste der Quellkonten angeben, die Protokolldaten in Ihren S3-Bucket exportieren dürfen.
Im folgenden Beispiel entspricht die Liste der Konten IDs im aws:SourceAccount
Schlüssel den Konten, von denen ein Benutzer Protokolldaten in Ihren S3-Bucket exportieren kann. Der Schlüssel aws:SourceArn
ist die Ressource, für die die Aktion ausgeführt wird. Sie können dies auf eine bestimmte Protokollgruppe beschränken oder einen Platzhalter verwenden, wie in diesem Beispiel zu sehen.
Wir empfehlen, dass Sie auch die Konto-ID des Kontos angeben, in dem der S3-Bucket erstellt wurde, um den Export innerhalb desselben Kontos zu ermöglichen.
So legen Sie Berechtigungen für einen S3-Bucket fest
-
Erstellen Sie eine Datei mit dem Namen
policy.json
und fügen Sie die folgende Zugriffsrichtlinie hinzu. Ändern Sie dabeimy-exported-logs
in den Namen Ihres S3-Bucket undPrincipal
in den Endpunkt der Region, in der Sie Protokolldaten exportieren (beispielsweiseus-west-1
). Verwenden Sie einen Text-Editor, um diese Richtliniendatei zu erstellen. Verwenden Sie nicht die IAM-Konsole. -
Legen Sie die Richtlinie, die Sie gerade hinzugefügt haben, mithilfe des put-bucket-policyBefehls als Zugriffsrichtlinie für Ihren Bucket fest. Diese Richtlinie ermöglicht CloudWatch Logs, Protokolldaten in Ihren S3-Bucket zu exportieren. Der Bucket-Eigentümer hat vollen Zugriff auf alle exportierten Objekte.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
Warnung
Wenn mit dem vorhandenen Bucket bereits eine oder mehrere Richtlinien verknüpft sind, fügen Sie die Anweisungen für den Zugriff auf CloudWatch Logs zu dieser Richtlinie oder diesen Richtlinien hinzu. Sie sollten eine Beurteilung der daraus resultierenden Berechtigungen vornehmen, um sicherzustellen, dass sie für die Benutzer, die auf den Bucket zugreifen werden, geeignet sind.
(Optional) Schritt 4: Export in einen mit SSE-KMS verschlüsselten Bucket
Dieser Schritt ist nur erforderlich, wenn Sie in einen S3-Bucket exportieren, der serverseitige Verschlüsselung mit AWS KMS keys verwendet. Diese Verschlüsselung wird als SSE-KMS bezeichnet.
So exportieren Sie in einen mit SSE-KMS verschlüsselten Bucket
-
Verwenden Sie einen Texteditor, um eine Datei mit dem Namen
key_policy.json
zu erstellen und die folgende Zugriffsrichtlinie hinzuzufügen. Wenn Sie die Richtlinie hinzufügen, nehmen Sie die folgenden Änderungen vor:-
Region
Ersetzen Sie es durch die Region Ihrer Logs. -
account-ARN
Ersetzen Sie ihn durch den ARN des Kontos, dem der KMS-Schlüssel gehört.
-
-
Geben Sie den folgenden Befehl ein:
aws kms create-key --policy file://key_policy.json
Das Folgende ist eine Beispielausgabe aus diesem Befehl:
{ "KeyMetadata": { "AWSAccountId": "
account_id
", "KeyId": "key_id
", "Arn": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "CreationDate": "time
", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
Erstellen Sie mithilfe eines Texteditors eine Datei mit dem Namen
bucketencryption.json
mit folgenden Inhalten.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Geben Sie den folgenden Befehl ein und
bucket-name
ersetzen Sie ihn durch den Namen des Buckets, in den Sie Protokolle exportieren.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonWenn der Befehl keinen Fehler zurückgibt, ist der Vorgang erfolgreich abgeschlossen.
Schritt 5: Erstellen einer Exportaufgabe
Verwenden Sie den folgenden Befehl, um die Exportaufgabe zu erstellen. Nach der Erstellung kann der Exportvorgang von einigen Sekunden bis zu einigen Stunden dauern. Dies ist abhängig von der Größe der zu exportierenden Daten.
Um Daten nach Amazon S3 zu exportieren, verwenden Sie AWS CLI
-
Melden Sie sich mit ausreichenden Berechtigungen an, wie unter Schritt 2: Einrichten von Zugriffsberechtigungen dokumentiert.
-
Verwenden Sie in einer Befehlszeile den folgenden create-export-taskBefehl, um die Exportaufgabe zu erstellen.
aws logs create-export-task --profile CWLExportUser --task-name "
my-log-group-09-10-2015
" --log-group-name "my-log-group
" --from1441490400000
--to1441494000000
--destination "my-exported-logs
" --destination-prefix "export-task-output
"Es folgt eine Beispielausgabe.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }