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.
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
Berechtigunglogs:DescribeLogGroups
logs:DescribeResourcePolicies
, oder angeben, achten Sie darauf, dass in ARN der zugehörigenResource
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:PutResourcePolicy
logs: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
-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:
A
DeliverySource
, ein logisches Objekt, das die Ressource (n) darstellt, die die Protokolle tatsächlich senden.A
DeliveryDestination
, ein logisches Objekt, das das tatsächliche Lieferziel darstellt.A
Delivery
, 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.
Löschen Sie das
Delivery
mithilfe der DeleteDeliveryOperation.Löschen Sie die
DeliverySource
mithilfe der DeleteDeliverySourceOperation.Wenn das mit dem
DeliverySource
, was Sie gerade gelöscht haben,DeliveryDestination
verknüpft ist, nur für dieses spezielleDeliverySource
Objekt verwendet wird, können Sie es mithilfe des DeleteDeliveryDestinationsVorgangs entfernen.
Inhalt
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:PutResourcePolicy
logs: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
-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:
, verwenden Sie Folgendes: region
:BBBBBBBBBBBB
:key/X
{ "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:SourceAccount
aws:SourceOrgID
, und die aws:SourceOrgPaths
globalen 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:
|
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 |