Protokollierung von AWS Diensten aktivieren - CloudWatch Amazon-Protokolle

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.

Protokollierung von AWS Diensten aktivieren

Während viele Dienste Protokolle nur in CloudWatch Logs veröffentlichen, können einige AWS Services Protokolle direkt in Amazon Simple Storage Service oder Amazon Data Firehose veröffentlichen. Wenn Ihre Hauptanforderung an Protokolle die Speicherung oder Verarbeitung in einem dieser Dienste ist, können Sie den Dienst, der die Protokolle erstellt, diese ohne zusätzliche Einrichtung direkt an Amazon S3 oder Firehose senden lassen.

Auch wenn Protokolle direkt in Amazon S3 oder Firehose veröffentlicht werden, fallen Gebühren an. Weitere Informationen finden Sie unter Verkaufte Logs auf der Registerkarte Logs bei Amazon CloudWatch Pricing.

Einige AWS Dienste verwenden eine gemeinsame Infrastruktur, um ihre Protokolle zu senden. Um die Protokollierung dieser Services zu aktivieren, müssen Sie als Benutzer angemeldet sein, der über bestimmte Berechtigungen verfügt. Darüber hinaus müssen Sie Berechtigungen erteilen, AWS um das Senden der Protokolle zu ermöglichen.

Für Dienste, die diese Berechtigungen benötigen, gibt es zwei Versionen der benötigten Berechtigungen. Die Services, die diese zusätzlichen Berechtigungen erfordern, sind in der Tabelle als Unterstützte [V1 Berechtigungen] und Unterstützte [V2 Berechtigungen] aufgeführt. Informationen zu diesen erforderlichen Berechtigungen finden Sie in den Abschnitten nach der Tabelle.

Protokollquelle Protokolltyp CloudWatch Logs Amazon S3 Firehose

Amazon API Gateway-Zugriffsprotokolle

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

AWS AppSync logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Amazon Aurora Meine SQL Logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Amazon Bedrock Protokollierung in Wissensdatenbanken

Vended-Protokolle Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen]

Amazon Chime Metrikprotokolle und SIP Nachrichtenprotokolle zur Medienqualität

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

CloudFront: Zugriffsprotokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen]

AWS CloudHSM Audit-Protokolle

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

CloudWatch Offensichtlich Evaluierungsereignisprotokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

CloudWatch Internet Monitor-Protokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen]

CloudTrail Logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

AWS CodeBuild logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Amazon CodeWhisperer Ereignisprotokolle

Vended-Protokolle Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen]

Amazon Cognito logs

Vended-Protokolle Unterstützte [V1 Berechtigungen]

Amazon-Connect-Protokolle

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

AWS DataSync logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Amazon ElastiCache (RedisOSS) -Protokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

AWS Elastic Beanstalk logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Protokolle des Amazon Elastic Container Service

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Protokolle der Steuerungsebene des Amazon Elastic Kubernetes Service

Vended-Protokolle

Unterstützt

AWS Elemental MediaTailor Protokolle

Vended-Protokolle

Unterstützt

Amazon EventBridge Protokollierung von Rohrleitungen

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

AWS Fargate logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

AWS Fault Injection Service Versuchsprotokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen]

Amazon FinSpace

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

AWS Global Accelerator Flow-Protokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen]

AWS Glue Auftragsprotokolle

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

IAMIdentity Center-Fehlerprotokolle

Vended-Protokolle Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen]

Chat-Protokolle von Amazon Interactive Video Service

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

AWS IoT logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

AWS IoT FleetWise logs

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

AWS Lambda logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Amazon-Macie-Protokolle

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

AWS Mainframe Modernization

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

Protokolle von Amazon Managed Service für Prometheus

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

MSKAmazon-Broker-Protokolle

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

Amazon MSK Connect-Protokolle

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

Allgemeine und Prüfungsprotokolle von Amazon MQ

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

AWS Netzwerk-Firewall-Protokolle

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

Network-Load-Balancer-Zugriffsprotokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen]

OpenSearch Logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Amazon OpenSearch Service-Aufnahmeprotokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

AWS OpsWorks logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Amazon Relational Database-Protokolle ServicePostgre SQL

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

AWS RoboMaker Logs

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Öffentliche DNS Abfrageprotokolle von Amazon Route 53

Vended-Protokolle

Unterstützt

Amazon-Route-53-Resolver-Abfrageprotokolle

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen]

SageMaker Amazon-Veranstaltungen

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Veranstaltungen Amazon SageMaker Amazon-Mitarbeiter

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

AWS Site-to_Site-Protokolle VPN

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen]

Amazon Simple Email Service-Protokolle

Vended-Protokolle Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen]

Protokolle des Amazon Simple Notification Service

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

Datenschutzrichtlinienprotokolle des Amazon Simple Notification Service

Custom logs (Benutzerdefinierte Protokolle)

Unterstützt

EC2Spot-Instance-Datenfeed-Dateien

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

AWS Step Functions Express-Workflow- und Standard-Workflow-Protokolle

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Storage-Gateway-Überwachungsprotokolle und -Zustandsprotokolle

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

AWS Transfer Family logs

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen]

AWS Verified Access logs

Vended-Protokolle

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen]

Unterstützte [V1 Berechtigungen]

Amazon-Virtual-Private-Cloud-Flow-Protokolle

Vended-Protokolle

Unterstützt

Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

Amazon VPC Lattice-Zugriffsprotokolle

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

AWS WAF logs

Vended-Protokolle Unterstützte [V1 Berechtigungen] Unterstützte [V1 Berechtigungen]

Unterstützt

Amazon WorkMail Logs

Vended-Protokolle Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen] Unterstützte [V2 Berechtigungen]

Protokollierung, für die zusätzliche Berechtigungen [V1] erforderlich sind

Einige AWS Dienste verwenden eine gemeinsame Infrastruktur, um ihre CloudWatch Protokolle an Logs, Amazon S3 oder Firehose zu senden. So aktivieren Sie die AWS -Services, die in der folgenden Tabelle aufgeführt sind, um ihre Protokolle an diese Ziele zu senden. Sie müssen als Benutzer angemeldet sein, der über bestimmte Berechtigungen verfügt.

Darüber hinaus müssen Berechtigungen erteilt werden, AWS damit die Protokolle gesendet werden können. AWS kann diese Berechtigungen automatisch erstellen, wenn die Protokolle eingerichtet werden, oder Sie können sie zuerst selbst erstellen, bevor Sie die Protokollierung einrichten. Für die kontoübergreifende Bereitstellung müssen Sie die Berechtigungsrichtlinien manuell selbst erstellen.

Wenn Sie sich dafür entscheiden, dass die erforderlichen Berechtigungen und Ressourcenrichtlinien AWS automatisch eingerichtet werden, wenn Sie oder jemand in Ihrer Organisation das Senden von Protokollen zum ersten Mal einrichten, muss der Benutzer, der das Senden von Protokollen einrichtet, über bestimmte Berechtigungen verfügen, wie später in diesem Abschnitt erläutert wird. Alternativ können Sie die Ressourcenrichtlinien selbst erstellen, und dann benötigen die Benutzer, die das Senden von Protokollen einrichten, nicht so viele Berechtigungen.

In der folgenden Tabelle wird zusammengefasst, welche Arten von Protokollen und welche Protokollziele die Informationen in diesem Abschnitt betreffen.

In den folgenden Abschnitten erhalten Sie weitere Details zu diesen Zielen.

An Logs gesendete CloudWatch Protokolle

Wichtig

Wenn Sie die Protokolltypen in der folgenden Liste so einrichten, dass sie an CloudWatch Logs gesendet werden sollen, AWS erstellt oder ändert bei Bedarf die Ressourcenrichtlinien, die der Protokollgruppe zugeordnet sind, die die Protokolle empfängt. Lesen Sie diesen Abschnitt weiter, um mehr Details zu erhalten.

Dieser Abschnitt gilt, wenn die in der Tabelle im vorherigen Abschnitt aufgeführten Protokolltypen an CloudWatch Logs gesendet werden:

Benutzerberechtigungen

Um das erstmalige Senden dieser Protokolltypen an Logs einrichten zu CloudWatch können, müssen Sie bei einem Konto mit den folgenden Berechtigungen angemeldet sein.

  • logs:CreateLogDelivery

  • logs:PutResourcePolicy

  • logs:DescribeResourcePolicies

  • logs:DescribeLogGroups

    Anmerkung

    Wenn Sie die logs:PutResourcePolicy Berechtigung logs:DescribeLogGroupslogs:DescribeResourcePolicies, oder angeben, achten Sie darauf, dass in ARN der zugehörigen Resource Zeile ein * Platzhalter verwendet wird, anstatt nur einen einzelnen Protokollgruppennamen anzugeben. Beispiel: "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*"

Wenn einer dieser Protokolltypen bereits an eine Protokollgruppe unter CloudWatch Logs gesendet wird, benötigen Sie nur die logs:CreateLogDelivery entsprechende Berechtigung, um das Senden eines anderen Logtyps an dieselbe Protokollgruppe einzurichten.

Protokollgruppe und Ressourcenrichtlinie

Die Protokollgruppe, an die die Protokolle gesendet werden, muss über eine Ressourcenrichtlinie verfügen, die bestimmte Berechtigungen enthält. Wenn die Protokollgruppe derzeit keine Ressourcenrichtlinie hat und der Benutzer, der die Protokollierung einrichtet, über die logs:DescribeLogGroups Berechtigungen logs:PutResourcePolicylogs:DescribeResourcePolicies, und für die Protokollgruppe verfügt, erstellt er AWS automatisch die folgende Richtlinie für diese Gruppe, wenn Sie beginnen, die Protokolle an Logs zu CloudWatch senden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

Wenn die Protokollgruppe über eine Ressourcenrichtlinie verfügt, diese Richtlinie jedoch nicht die in der vorherigen Richtlinie gezeigte Anweisung enthält und der Benutzer, der die Protokollierung einrichtet, die logs:PutResourcePolicy-, logs:DescribeResourcePolicies-, undlogs:DescribeLogGroups-Berechtigungen für die Protokollgruppe hat, wird diese Anweisung an die Ressourcenrichtlinie der Protokollgruppe angehängt.

Überlegungen zur Größenbeschränkung der Protokollgruppen-Ressourcenrichtlinie

Diese Dienste müssen jede Protokollgruppe, an die sie Protokolle senden, in der Ressourcenrichtlinie auflisten, und die Ressourcenrichtlinien für CloudWatch Protokolle sind auf 5120 Zeichen begrenzt. Bei einem Dienst, der Protokolle an eine große Anzahl von Protokollgruppen sendet, kann dieses Limit erreicht werden.

Um dieses Problem zu minimieren, überwacht CloudWatch Logs die Größe der Ressourcenrichtlinien, die von dem Dienst verwendet werden, der Protokolle sendet. Wenn festgestellt wird, dass sich eine Richtlinie der Größenbeschränkung von 5120 Zeichen nähert, aktiviert CloudWatch Logs automatisch die Option Logs /aws/vendedlogs/* in der Ressourcenrichtlinie für diesen Dienst. Sie können dann anfangen, Protokollgruppen als Ziele für Protokolle aus diesen Services zu verwenden, deren Namen mit /aws/vendedlogs/ beginnt.

An Amazon S3 gesendete Protokolle

Wenn Sie festlegen, dass Protokolle an Amazon S3 gesendet werden, werden bei Bedarf die Ressourcenrichtlinien für den S3-Bucket AWS erstellt oder geändert, der die Protokolle empfängt.

Protokolle, die direkt in Amazon S3 veröffentlicht werden, werden in einen bestehenden Bucket veröffentlicht, den Sie angeben. Alle fünf Minuten werden ein oder mehrere Protokolldateien in dem angegebenen Bucket erstellt.

Wenn Sie Protokolle zum ersten Mal an einen Amazon-S3-Bucket übermitteln, zeichnet der Service, der Protokolle ausstellt, den Besitzer des Buckets auf, um sicherzustellen, dass die Protokolle nur an einen Bucket gesendet werden, der zu diesem Konto gehört. Um den Amazon-S3-Bucket-Eigentümer zu ändern, müssen Sie daher das Protokollabonnement im ursprünglichen Service neu erstellen oder aktualisieren.

Anmerkung

CloudFront verwendet ein anderes Berechtigungsmodell als die anderen Dienste, die verkaufte Protokolle an S3 senden. Weitere Informationen finden Sie unter Für die Konfiguration der Standard-Protokollierung und den Zugriff auf Ihre Protokolldateien erforderliche Berechtigungen.

Wenn Sie denselben S3-Bucket für CloudFront Zugriffsprotokolle und eine andere Protokollquelle verwenden, gewährt die Aktivierung ACL des Buckets für CloudFront außerdem allen anderen Protokollquellen, die diesen Bucket verwenden, die Erlaubnis.

Wichtig

Wenn Sie Logs an einen Amazon S3 S3-Bucket senden und die Bucket-Richtlinie ein NotAction NotPrincipal OR-Element enthält, schlägt das automatische Hinzufügen von Log-Lieferberechtigungen zum Bucket und das Erstellen eines Protokollabonnements fehl. Um ein Protokollabonnement erfolgreich zu erstellen, müssen Sie der Bucket-Richtlinie manuell die Berechtigungen für die Protokollzustellung hinzufügen und dann das Protokollabonnement erstellen. Weitere Informationen finden Sie in den Anweisungen in diesem Abschnitt.

Wenn der Bucket über eine serverseitige Verschlüsselung mit einem vom Kunden verwalteten AWS KMS Schlüssel verfügt, müssen Sie auch die Schlüsselrichtlinie für Ihren vom Kunden verwalteten Schlüssel hinzufügen. Weitere Informationen finden Sie unter Amazon S3.

Benutzerberechtigungen

Um das erstmalige Senden einer dieser Protokolltypen an Amazon S3 einrichten zu können, müssen Sie bei einem Konto mit den folgenden Berechtigungen angemeldet sein.

  • logs:CreateLogDelivery

  • S3:GetBucketPolicy

  • S3:PutBucketPolicy

Wenn einer dieser Protokolltypen bereits an einen Amazon-S3-Bucket gesendet wird, benötigen Sie zum Einrichten eines weiteren Protokolls desselben Typs an dieselbe Protokollgruppe nur die logs:CreateLogDelivery-Berechtigung.

S3-Bucket-Ressourcenrichtlinie

Der S3-Bucket, an den die Protokolle gesendet werden, muss über eine Ressourcenrichtlinie verfügen, die bestimmte Berechtigungen enthält. Wenn der Bucket derzeit keine Ressourcenrichtlinie hat und der Benutzer, der die Protokollierung einrichtet, über die S3:GetBucketPolicy und S3:PutBucketPolicy -Berechtigungen für den Bucket verfügt, erstellt er AWS automatisch die folgende Richtlinie dafür, wenn Sie beginnen, die Protokolle an Amazon S3 zu senden.

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

Geben Sie in der vorherigen Richtlinie für aws:SourceAccount die Liste der Konten an, IDS für die Protokolle an diesen Bucket übermittelt werden. Geben Sie für aws:SourceArn die Liste ARNs der Ressource, die die Protokolle generiert, im folgenden Formular anarn:aws:logs:source-region:source-account-id:*.

Wenn der Bucket über eine Ressourcenrichtlinie verfügt, diese Richtlinie jedoch nicht die in der vorherigen Richtlinie gezeigte Anweisung enthält und der Benutzer, der die Protokollierung einrichtet, die S3:GetBucketPolicy- und S3:PutBucketPolicy-Berechtigungen für den Bucket hat, wird diese Anweisung an die Ressourcenrichtlinie des Bucket angehängt.

Anmerkung

In einigen Fällen werden möglicherweise AccessDenied Fehler angezeigt, AWS CloudTrail wenn die s3:ListBucket Genehmigung nicht erteilt wurdedelivery.logs.amazonaws.com. Um diese Fehler in Ihren CloudTrail Protokollen zu vermeiden, müssen Sie die s3:ListBucket Erlaubnis erteilen delivery.logs.amazonaws.com und die angegebenen Condition Parameter zusammen mit den in der vorherigen Bucket-Richtlinie festgelegten s3:GetBucketAcl Berechtigungen angeben. Zur Vereinfachung können Sie AWSLogDeliveryAclCheck direkt auf “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”] aktualisieren, anstatt eine neue Anweisung (Statement) zu erstellen.

Serverseitige Verschlüsselung im Amazon-S3-Bucket

Sie können die Daten in Ihrem Amazon S3 S3-Bucket schützen, indem Sie entweder die serverseitige Verschlüsselung mit von Amazon SSE S3 verwalteten Schlüsseln (-S3) oder die serverseitige Verschlüsselung mit einem in (-) gespeicherten AWS KMS Schlüssel aktivieren. AWS Key Management Service SSE KMS Weitere Informationen finden Sie unter Schützen von Daten mithilfe serverseitiger Verschlüsselung.

Wenn Sie SSE -S3 wählen, ist keine zusätzliche Konfiguration erforderlich. Amazon S3 verarbeitet den Verschlüsselungsschlüssel.

Warnung

Wenn Sie SSE - wählenKMS, müssen Sie einen vom Kunden verwalteten Schlüssel verwenden, da die Verwendung eines AWS verwalteten Schlüssels in diesem Szenario nicht unterstützt wird. Wenn Sie die Verschlüsselung mit einem AWS verwalteten Schlüssel einrichten, werden die Protokolle in einem unlesbaren Format geliefert.

Wenn Sie einen vom Kunden verwalteten AWS KMS Schlüssel verwenden, können Sie den Amazon-Ressourcennamen (ARN) des vom Kunden verwalteten Schlüssels angeben, wenn Sie die Bucket-Verschlüsselung aktivieren. Sie müssen der Schlüsselrichtlinie für Ihren vom Kunden verwalteten Schlüssel (nicht der Bucket-Richtlinie für Ihren S3 Bucket) Folgendes hinzufügen, damit das Protokollzustellungskonto in Ihren S3 Bucket schreiben kann.

Wenn Sie SSE - wählenKMS, müssen Sie einen vom Kunden verwalteten Schlüssel verwenden, da die Verwendung eines AWS verwalteten Schlüssels in diesem Szenario nicht unterstützt wird. Wenn Sie einen vom Kunden verwalteten AWS KMS Schlüssel verwenden, können Sie den Amazon-Ressourcennamen (ARN) des vom Kunden verwalteten Schlüssels angeben, wenn Sie die Bucket-Verschlüsselung aktivieren. Sie müssen der Schlüsselrichtlinie für Ihren vom Kunden verwalteten Schlüssel (nicht der Bucket-Richtlinie für Ihren S3 Bucket) Folgendes hinzufügen, damit das Protokollzustellungskonto in Ihren S3 Bucket schreiben kann.

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }

Geben Sie für aws:SourceAccount die Liste der Konten an, IDS für die Protokolle an diesen Bucket gesendet werden. Geben Sie für aws:SourceArn die Liste ARNs der Ressource, die die Protokolle generiert, im folgenden Formular anarn:aws:logs:source-region:source-account-id:*.

An Firehose gesendete Logs

Dieser Abschnitt gilt, wenn die in der Tabelle im vorherigen Abschnitt aufgeführten Protokolltypen an Firehose gesendet werden:

Benutzerberechtigungen

Um das erstmalige Senden dieser Arten von Protokollen an Firehose einrichten zu können, müssen Sie bei einem Konto mit den folgenden Berechtigungen angemeldet sein.

  • logs:CreateLogDelivery

  • firehose:TagDeliveryStream

  • iam:CreateServiceLinkedRole

Wenn einer dieser Protokolltypen bereits an Firehose gesendet wurde, benötigen Sie nur die Berechtigungen logs:CreateLogDelivery undfirehose:TagDeliveryStream, um das Senden eines anderen dieser Protokolltypen an Firehose einzurichten.

IAMRollen, die für Berechtigungen verwendet werden

Da Firehose keine Ressourcenrichtlinien AWS verwendet, verwendet es IAM Rollen bei der Einrichtung dieser Protokolle, die an Firehose gesendet werden sollen. AWS erstellt eine mit dem Dienst verknüpfte Rolle mit dem Namen AWSServiceRoleForLogDelivery. Diese dienstbezogene Rolle umfasst die folgenden Berechtigungen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

Diese dienstbezogene Rolle gewährt Berechtigungen für alle Firehose-Lieferdatenströme, für die das LogDeliveryEnabled Tag auf gesetzt ist. true AWS weist dieses Tag dem Ziel-Lieferstream zu, wenn Sie die Protokollierung einrichten.

Diese serviceverknüpfte Rolle verfügt auch über eine Vertrauensrichtlinie, die es dem delivery---logs.amazonaws.com.rproxy.goskope.com-Service-Prinzipal erlaubt, die erforderliche serviceverknüpfte Rolle zu übernehmen. Diese Vertrauensrichtlinie lautet wie folgt:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Protokollierung, für die zusätzliche Berechtigungen [V2] erforderlich sind

Einige AWS Dienste verwenden eine neue Methode, um ihre Protokolle zu senden. Dies ist eine flexible Methode, mit der Sie die Protokollzustellung von diesen Services an eines oder mehrere der folgenden Ziele einrichten können: CloudWatch Logs, Amazon S3 oder Firehose.

Eine funktionierende Protokollzustellung besteht aus drei Elementen:

  • ADeliverySource, ein logisches Objekt, das die Ressource (n) darstellt, die die Protokolle tatsächlich senden.

  • ADeliveryDestination, ein logisches Objekt, das das tatsächliche Lieferziel darstellt.

  • ADelivery, das eine Lieferquelle mit einem Lieferziel verbindet

Um die Protokollzustellung zwischen einem unterstützten AWS Dienst und einem Ziel zu konfigurieren, müssen Sie wie folgt vorgehen:

  • Erstellen Sie eine Lieferquelle mit PutDeliverySource.

  • Erstellen Sie ein Lieferziel mit PutDeliveryDestination.

  • Wenn Sie Protokolle kontoübergreifend versenden, müssen Sie dies PutDeliveryDestinationPolicyim Zielkonto verwenden, um dem Ziel eine IAM Richtlinie zuzuweisen. Diese Richtlinie autorisiert die Erstellung einer Lieferung von der Versandquelle in Konto A zum Lieferziel in Konto B. Für die kontoübergreifende Zustellung müssen Sie die Berechtigungsrichtlinien manuell selbst erstellen.

  • Erstellen Sie eine Lieferung, indem Sie genau eine Zustellungsquelle und ein Lieferziel verknüpfen, indem Sie CreateDelivery

In den folgenden Abschnitten finden Sie Einzelheiten zu den Berechtigungen, die Sie benötigen, wenn Sie angemeldet sind, um die Protokollbereitstellung an die einzelnen Zieltypen mithilfe des V2-Prozesses einzurichten. Diese Berechtigungen können einer IAM Rolle erteilt werden, mit der Sie angemeldet sind.

Wichtig

Es liegt in Ihrer Verantwortung, Ressourcen für die Protokollzustellung zu entfernen, nachdem Sie die Ressource gelöscht haben, die das Protokoll generiert hat. Gehen Sie dazu wie folgt vor.

  1. Löschen Sie das Delivery mithilfe der DeleteDeliveryOperation.

  2. Löschen Sie die DeliverySource mithilfe der DeleteDeliverySourceOperation.

  3. Wenn das mit demDeliverySource, was Sie gerade gelöscht haben, DeliveryDestination verknüpft ist, nur für dieses spezielle DeliverySource Objekt verwendet wird, können Sie es mithilfe des DeleteDeliveryDestinationsVorgangs entfernen.

Protokolle, die an CloudWatch Logs gesendet wurden

Benutzerberechtigungen

Um das Senden von Protokollen an CloudWatch Logs zu ermöglichen, müssen Sie mit den folgenden Berechtigungen angemeldet sein.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region:account-id:*" ] } ] }

Protokollgruppe und Ressourcenrichtlinie

Die Protokollgruppe, an die die Protokolle gesendet werden, muss über eine Ressourcenrichtlinie verfügen, die bestimmte Berechtigungen enthält. Wenn die Protokollgruppe derzeit keine Ressourcenrichtlinie hat und der Benutzer, der die Protokollierung einrichtet, über die logs:DescribeLogGroups Berechtigungen logs:PutResourcePolicylogs:DescribeResourcePolicies, und für die Protokollgruppe verfügt, erstellt er AWS automatisch die folgende Richtlinie für diese Gruppe, wenn Sie beginnen, die Protokolle an Logs zu CloudWatch senden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

Überlegungen zur Größenbeschränkung der Protokollgruppen-Ressourcenrichtlinie

Diese Dienste müssen jede Protokollgruppe, an die sie Protokolle senden, in der Ressourcenrichtlinie auflisten, und die Ressourcenrichtlinien für CloudWatch Protokolle sind auf 5120 Zeichen begrenzt. Ein Service, der Protokolle an eine große Anzahl von Protokollgruppen sendet, kann durchaus diesen Grenzwert erreichen.

Um dies zu vermeiden, überwacht CloudWatch Logs die Größe der Ressourcenrichtlinien, die von dem Dienst verwendet werden, der die Protokolle sendet. Wenn festgestellt wird, dass eine Richtlinie die Größenbeschränkung von 5120 Zeichen erreicht, aktiviert CloudWatch Logs automatisch die Option Logs /aws/vendedlogs/* in der Ressourcenrichtlinie für diesen Dienst. Sie können dann anfangen, Protokollgruppen als Ziele für Protokolle aus diesen Services zu verwenden, deren Namen mit /aws/vendedlogs/ beginnt.

An Amazon S3 gesendete Protokolle

Benutzerberechtigungen

Um das Senden von Protokollen an Amazon S3 zu aktivieren, müssen Sie mit den folgenden Berechtigungen angemeldet sein.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" } ] }

Der S3-Bucket, an den die Protokolle gesendet werden, muss über eine Ressourcenrichtlinie verfügen, die bestimmte Berechtigungen enthält. Wenn der Bucket derzeit keine Ressourcenrichtlinie hat und der Benutzer, der die Protokollierung einrichtet, über die S3:GetBucketPolicy und S3:PutBucketPolicy -Berechtigungen für den Bucket verfügt, erstellt er AWS automatisch die folgende Richtlinie dafür, wenn Sie beginnen, die Protokolle an Amazon S3 zu senden.

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:delivery-source*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:delivery-source:*"] } } } ] }

Geben Sie in der vorherigen Richtlinie für aws:SourceAccount die Liste der Konten an, IDS für die Protokolle an diesen Bucket übermittelt werden. Geben Sie für aws:SourceArn die Liste ARNs der Ressource, die die Protokolle generiert, im folgenden Formular anarn:aws:logs:source-region:source-account-id:*.

Wenn der Bucket über eine Ressourcenrichtlinie verfügt, diese Richtlinie jedoch nicht die in der vorherigen Richtlinie gezeigte Anweisung enthält und der Benutzer, der die Protokollierung einrichtet, die S3:GetBucketPolicy- und S3:PutBucketPolicy-Berechtigungen für den Bucket hat, wird diese Anweisung an die Ressourcenrichtlinie des Bucket angehängt.

Anmerkung

In einigen Fällen werden möglicherweise AccessDenied Fehler angezeigt, AWS CloudTrail wenn die s3:ListBucket Genehmigung nicht erteilt wurdedelivery.logs.amazonaws.com. Um diese Fehler in Ihren CloudTrail Protokollen zu vermeiden, müssen Sie die s3:ListBucket Erlaubnis erteilen delivery.logs.amazonaws.com und die angegebenen Condition Parameter zusammen mit den in der vorherigen Bucket-Richtlinie festgelegten s3:GetBucketAcl Berechtigungen angeben. Zur Vereinfachung können Sie AWSLogDeliveryAclCheck direkt auf “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”] aktualisieren, anstatt eine neue Anweisung (Statement) zu erstellen.

Serverseitige Verschlüsselung im Amazon-S3-Bucket

Sie können die Daten in Ihrem Amazon S3 S3-Bucket schützen, indem Sie entweder die serverseitige Verschlüsselung mit von Amazon SSE S3 verwalteten Schlüsseln (-S3) oder die serverseitige Verschlüsselung mit einem in (-) gespeicherten AWS KMS Schlüssel aktivieren. AWS Key Management Service SSE KMS Weitere Informationen finden Sie unter Schützen von Daten mithilfe serverseitiger Verschlüsselung.

Wenn Sie SSE -S3 wählen, ist keine zusätzliche Konfiguration erforderlich. Amazon S3 verarbeitet den Verschlüsselungsschlüssel.

Warnung

Wenn Sie SSE - wählenKMS, müssen Sie einen vom Kunden verwalteten Schlüssel verwenden, da die Verwendung eines AWS verwalteten Schlüssels in diesem Szenario nicht unterstützt wird. Wenn Sie die Verschlüsselung mit einem AWS verwalteten Schlüssel einrichten, werden die Protokolle in einem unlesbaren Format geliefert.

Wenn Sie einen vom Kunden verwalteten AWS KMS Schlüssel verwenden, können Sie den Amazon-Ressourcennamen (ARN) des vom Kunden verwalteten Schlüssels angeben, wenn Sie die Bucket-Verschlüsselung aktivieren. Sie müssen der Schlüsselrichtlinie für Ihren vom Kunden verwalteten Schlüssel (nicht der Bucket-Richtlinie für Ihren S3 Bucket) Folgendes hinzufügen, damit das Protokollzustellungskonto in Ihren S3 Bucket schreiben kann.

Wenn Sie SSE - wählenKMS, müssen Sie einen vom Kunden verwalteten Schlüssel verwenden, da die Verwendung eines AWS verwalteten Schlüssels in diesem Szenario nicht unterstützt wird. Wenn Sie einen vom Kunden verwalteten AWS KMS Schlüssel verwenden, können Sie den Amazon-Ressourcennamen (ARN) des vom Kunden verwalteten Schlüssels angeben, wenn Sie die Bucket-Verschlüsselung aktivieren. Sie müssen der Schlüsselrichtlinie für Ihren vom Kunden verwalteten Schlüssel (nicht der Bucket-Richtlinie für Ihren S3 Bucket) Folgendes hinzufügen, damit das Protokollzustellungskonto in Ihren S3 Bucket schreiben kann.

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:delivery-source:*"] } } }

Geben Sie für aws:SourceAccount die Liste der Konten an, IDS für die Protokolle an diesen Bucket gesendet werden. Geben Sie für aws:SourceArn die Liste ARNs der Ressource, die die Protokolle generiert, im folgenden Formular anarn:aws:logs:source-region:source-account-id:*.

An Firehose gesendete Logs

Benutzerberechtigungen

Um das Senden von Protokollen an Firehose zu ermöglichen, müssen Sie mit den folgenden Berechtigungen angemeldet sein.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/*" ] }, { "Sid": "CreateServiceLinkedRole", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::account-id:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery" } ] }

IAMRollen, die für Ressourcenberechtigungen verwendet werden

Da Firehose keine Ressourcenrichtlinien AWS verwendet, verwendet es IAM Rollen bei der Einrichtung dieser Protokolle, die an Firehose gesendet werden sollen. AWS erstellt eine mit dem Dienst verknüpfte Rolle mit dem Namen AWSServiceRoleForLogDelivery. Diese dienstbezogene Rolle umfasst die folgenden Berechtigungen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

Diese dienstbezogene Rolle gewährt Berechtigungen für alle Firehose-Lieferdatenströme, für die das LogDeliveryEnabled Tag auf gesetzt ist. true AWS weist dieses Tag dem Ziel-Lieferstream zu, wenn Sie die Protokollierung einrichten.

Diese serviceverknüpfte Rolle verfügt auch über eine Vertrauensrichtlinie, die es dem delivery---logs.amazonaws.com.rproxy.goskope.com-Service-Prinzipal erlaubt, die erforderliche serviceverknüpfte Rolle zu übernehmen. Diese Vertrauensrichtlinie lautet wie folgt:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Servicespezifische Berechtigungen

Zusätzlich zu den zielspezifischen Berechtigungen, die in den vorherigen Abschnitten aufgeführt wurden, erfordern einige Dienste als zusätzliche Sicherheitsebene die ausdrückliche Autorisierung, dass Kunden Protokolle von ihren Ressourcen aus senden dürfen. Es autorisiert die AllowVendedLogDeliveryForResource Aktion für Ressourcen, die Protokolle innerhalb dieses Dienstes verkaufen. Verwenden Sie für diese Dienste die folgende Richtlinie und ersetzen Sie service and resource-type mit den entsprechenden Werten. Die dienstspezifischen Werte für diese Felder finden Sie auf der Dokumentationsseite dieser Dienste für verkaufte Protokolle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ServiceLevelAccessForLogDelivery", "Effect": "Allow", "Action": [ "service:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:service:region:account-id:resource-type/*" } ] }

Konsolenspezifische Berechtigungen

Wenn Sie die Protokollzustellung über die Konsole statt über die einrichten, benötigen Sie zusätzlich zu den in den APIs vorherigen Abschnitten aufgeführten Berechtigungen auch die folgenden zusätzlichen Berechtigungen:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogDeliveryActionsConsoleCWL", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleS3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleFH", "Effect": "Allow", "Action": [ "firehose:ListDeliveryStreams", "firehose:DescribeDeliveryStream" ], "Resource": [ "*" ] } ] }

Beispiel für eine kontoübergreifende Zustellung

In diesem Beispiel sind zwei Konten betroffen. Das Konto mit der Ressource, die das Protokoll generiert, ist Konto A, ID: AAAAAAAAAAAA, und das Konto mit der Ressource, die das Protokoll verbraucht, ist Konto B, ID: BBBBBBBBBBBB.

Konto A möchte Logs aus der Amazon Bedrock Wissensdatenbank in seinem Konto mit dem arn:aws:bedrock: bereitstellen: ARNregion:AAAAAAAAAAAA:Wissensdatenbank/XXXXXXXXXX.

Für dieses Beispiel benötigt Konto A die folgenden Berechtigungen:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowVendedLogDeliveryForKnowledgeBase", "Effect": "Allow", "Action": [ "bedrock:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:bedrock:region:AAAAAAAAAAAA:knowledge-base/XXXXXXXXXX" }, { "Sid": "CreateLogDeliveryPermissions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:CreateDelivery" ], "Resource": [ "arn:aws:logs:region:AAAAAAAAAAAA:delivery-source:*", "arn:aws:logs:region:AAAAAAAAAAAA:delivery:*", "arn:aws:logs:region:BBBBBBBBBBBB:delivery-destination:*" ] } ] }

Lieferquelle erstellen

Zunächst erstellt Konto A eine Lieferquelle mit ihrer Basis-Knowledge-Base:

aws logs put-delivery-source --name my-delivery-source --log-type APPLICATION_LOGS --resource-arn arn:aws:bedrock:region:AAAAAAAAAAAA:knowledge-base/XXXXXXXXXX

Als Nächstes muss Konto B das Lieferziel mithilfe eines der folgenden Verfahren erstellen:

Versand an einen Amazon S3 S3-Bucket konfigurieren

Konto B möchte die Logs mit dem ARN arn:aws:s3: ::amzn-s3-demo-bucket in seinem S3-Bucket empfangen. In diesem Beispiel benötigt Konto B die folgenden Berechtigungen:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutLogDestinationPermissions", "Effect": "Allow", "Action": [ "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy" ], "Resource": "arn:aws:logs:region:BBBBBBBBBBBB:delivery-destination:*" } ] }

Der Bucket benötigt die folgenden Berechtigungen in seiner Bucket-Richtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogsDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/AAAAAAAAAAAA/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["AAAAAAAAAAAA"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:AAAAAAAAAAAA:delivery-source:my-delivery-source"] } } } ] }

Wenn der Bucket mit SSE - verschlüsselt istKMS, stellen Sie sicher, dass die AWS KMS Schlüsselrichtlinie über die entsprechenden Berechtigungen verfügt. Wenn der KMS Schlüssel beispielsweise lautetarn:aws:kms:region:BBBBBBBBBBBB:key/X, verwenden Sie Folgendes:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogsGenerateDataKey", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" } "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:BBBBBBBBBBBB:key/X", "Condition": { "StringEquals": { "aws:SourceAccount": ["AAAAAAAAAAAA"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:AAAAAAAAAAAA:delivery-source:my-delivery-source"] } } } ] }

Konto B kann dann ein Lieferziel mit dem S3-Bucket als Zielressource erstellen:

aws logs put-delivery-destination --name my-s3-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket"

Als Nächstes erstellt Konto B eine Lieferzielrichtlinie für das neu erstellte Lieferziel, die Konto A die Erlaubnis erteilt, eine Protokollzustellung zu erstellen. Die Richtlinie, die dem neu erstellten Lieferziel hinzugefügt wird, lautet wie folgt:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": { "AWS": "AAAAAAAAAAAA" }, "Action": [ "logs:CreateDelivery" ], "Resource": "arn:aws:logs:region:BBBBBBBBBBBB:delivery-destination:my-s3-delivery-destination" } ] }

Diese Richtlinie wird auf dem Computer von Konto B gespeichert. destination-policy-s3.json Um diese Ressource anzuhängen, führt Konto B den folgenden Befehl aus:

aws logs put-delivery-destination-policy --delivery-destination-name my-s3-delivery-destination --delivery-destination-policy file://destination-policy-s3.json

Schließlich erstellt Konto A die Lieferung, wodurch die Versandquelle in Konto A mit dem Lieferziel in Konto B verknüpft wird.

aws logs create-delivery --delivery-source-name my-delivery-source --delivery-destination-arn arn:aws:logs:region:BBBBBBBBBBBB:delivery-destination:my-s3-delivery-destination

Konfigurieren Sie die Lieferung an einen Firehose-Stream

In diesem Beispiel möchte Konto B Logs in seinen Firehose-Stream empfangen. Der Firehose-Stream hat Folgendes ARN und ist für die Verwendung des DirectPut Delivery-Stream-Typs konfiguriert:

arn:aws:firehose:region:BBBBBBBBBBBB:deliverystream/X

Für dieses Beispiel benötigt Konto B die folgenden Berechtigungen:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFirehoseCreateSLR", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::BBBBBBBBBBBB:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery", }, { "Sid": "AllowFirehoseTagging", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": "arn:aws:firehose:region:BBBBBBBBBBBB:deliverystream/X" }, { "Sid": "AllowFirehoseDeliveryDestination", "Effect": "Allow", "Action": [ "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy" ], "Resource": "arn:aws:logs:region:BBBBBBBBBBBB:delivery-destination:*" } ] }

Für den Firehose-Stream muss das Tag auf LogDeliveryEnabled gesetzt seintrue.

Konto B erstellt dann ein Lieferziel mit dem Firehose-Stream als Zielressource:

aws logs put-delivery-destination --name my-fh-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:firehose:region:BBBBBBBBBBBB:deliverystream/X"

Als Nächstes erstellt Konto B eine Lieferzielrichtlinie für das neu erstellte Lieferziel, die Konto A die Erlaubnis erteilt, eine Protokollzustellung zu erstellen. Die Richtlinie, die dem neu erstellten Lieferziel hinzugefügt werden soll, lautet wie folgt:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": { "AWS": "AAAAAAAAAAAA" }, "Action": [ "logs:CreateDelivery" ], "Resource": "arn:aws:logs:region:BBBBBBBBBBBB:delivery-destination:my-fh-delivery-destination" } ] }

Diese Richtlinie wird auf dem Computer von Konto B gespeichert. destination-policy-fh.json Um diese Ressource anzuhängen, führt Konto B den folgenden Befehl aus:

aws logs put-delivery-destination-policy --delivery-destination-name my-fh-delivery-destination --delivery-destination-policy file://destination-policy-fh.json

Schließlich erstellt Konto A die Lieferung, wodurch die Versandquelle in Konto A mit dem Lieferziel in Konto B verknüpft wird.

aws logs create-delivery --delivery-source-name my-delivery-source --delivery-destination-arn arn:aws:logs:region:BBBBBBBBBBBB:delivery-destination:my-fh-delivery-destination

Serviceübergreifende Confused-Deputy-Prävention

Das Confused-Deputy-Problem ist ein Sicherheitsproblem, bei dem eine juristische Stelle, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine privilegiertere juristische Stelle zwingen kann, die Aktion auszuführen. In kann AWS ein dienstübergreifender Identitätswechsel zum Problem des verwirrten Stellvertreters führen. Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der Anruf-Dienst) einen anderen Dienst anruft (den aufgerufenen Dienst). Der aufrufende Service kann manipuliert werden, um seine Berechtigungen zu verwenden, um Aktionen auf die Ressourcen eines anderen Kunden auszuführen, für die er sonst keine Zugriffsberechtigung haben sollte. Um dies zu verhindern, bietet AWS Tools, mit denen Sie Ihre Daten für alle Services mit Serviceprinzipalen schützen können, die Zugriff auf Ressourcen in Ihrem Konto erhalten haben.

Wir empfehlen aws:SourceArn, die Kontextschlüssel, aws:SourceAccountaws:SourceOrgID, und die aws:SourceOrgPathsglobalen Bedingungsschlüssel in Ressourcenrichtlinien zu verwenden, um die Berechtigungen einzuschränken, die CloudWatch Logs einem anderen Dienst für die Ressource gewährt. Verwenden Sie aws:SourceArn diese Option, um nur einer Ressource dienstübergreifenden Zugriff zuzuordnen. Wird verwendetaws:SourceAccount, damit jede Ressource in diesem Konto der dienstübergreifenden Nutzung zugeordnet werden kann. Wird verwendetaws:SourceOrgID, um zu ermöglichen, dass jede Ressource aus einem beliebigen Konto innerhalb einer Organisation mit der dienstübergreifenden Nutzung verknüpft wird. Wird verwendetaws:SourceOrgPaths, um jede Ressource aus Konten innerhalb eines AWS Organizations Pfads der dienstübergreifenden Nutzung zuzuordnen. Weitere Informationen zur Verwendung und zum Verständnis von Pfaden finden Sie unter Grundlegendes zum AWS Organizations Entitätspfad.

Der wirksamste Schutz vor dem Problem mit dem verwirrten Deputy ist die Verwendung des Kontextschlüssels für aws:SourceArn globale Bedingungen mit ARN der gesamten Ressource. Wenn Sie die gesamte ARN Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den aws:SourceArn globalen Kontextbedingungsschlüssel mit Platzhalterzeichen (*) für die unbekannten Teile von. ARN Beispiel, arn:aws:servicename:*:123456789012:*.

Wenn der aws:SourceArn Wert die Konto-ID nicht enthält, z. B. ein Amazon S3 S3-BucketARN, müssen Sie beide verwenden aws:SourceAccount und, aws:SourceArn um die Berechtigungen einzuschränken.

Um sich vor dem Confused-Deputy-Problem im großen Maßstab zu schützen, verwenden Sie den globalen Bedingungskontextschlüssel aws:SourceOrgID oder aws:SourceOrgPaths mit der Organisations-ID oder dem Organisationspfad der Ressource in Ihren ressourcenbasierten Richtlinien. Richtlinien, die den Schlüssel aws:SourceOrgID oder aws:SourceOrgPaths enthalten, schließen automatisch die richtigen Konten ein und Sie müssen die Richtlinien nicht manuell aktualisieren, wenn Sie Konten in Ihrer Organisation hinzufügen, entfernen oder verschieben.

Die Richtlinien in den vorherigen Abschnitten dieser Seite zeigen, wie Sie die globalen Bedingungskontextschlüssel aws:SourceArn und aws:SourceAccount verwenden können, um das Confused-Deputy-Problem zu verhindern.

CloudWatch Protokolliert Aktualisierungen der AWS verwalteten Richtlinien

Details zu Aktualisierungen der AWS verwalteten Richtlinien für CloudWatch Logs anzeigen, seit dieser Dienst begonnen hat, diese Änderungen zu verfolgen. Wenn Sie automatische Benachrichtigungen über Änderungen an dieser Seite erhalten möchten, abonnieren Sie den RSS Feed auf der Seite mit dem Verlauf der CloudWatch Protokolldokumente.

Änderung Beschreibung Datum

AWSServiceRoleForLogDelivery Richtlinie für dienstbezogene Rollen — Aktualisierung einer bestehenden Richtlinie

CloudWatch Logs haben die Berechtigungen in der IAM Richtlinie geändert, die mit dem verknüpft sind AWSServiceRoleForLogDeliveryRolle, die mit dem Dienst verknüpft ist. Die folgende Änderung wurde vorgenommen:

  • Der firehose:ResourceTag/LogDeliveryEnabled": "true"-Bedingungsschlüssel wurde in aws:ResourceTag/LogDeliveryEnabled": "true" geändert.

15. Juli 2021

CloudWatch Logs haben begonnen, Änderungen nachzuverfolgen

CloudWatch Logs begann, Änderungen für die von AWS ihm verwalteten Richtlinien nachzuverfolgen.

10. Juni 2021