View a markdown version of this page

Cross-account Beispiel für eine Lieferung - 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.

Cross-account Beispiel für eine Lieferung

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

Konto A möchte Logs aus der Amazon Bedrock Wissensdatenbank in seinem Konto mit dem ARN arn:aws:bedrock: ::knowledge-base/ bereitstellen. us-east-1 123456789012 kb-12345678

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowVendedLogDeliveryForKnowledgeBase", "Effect": "Allow", "Action": [ "bedrock:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/XXXXXXXXXX" }, { "Sid": "CreateLogDeliveryPermissions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:CreateDelivery" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:delivery-source:*", "arn:aws:logs:us-east-1:123456789012:delivery:*", "arn:aws:logs:us-east-1:444455556666:delivery-destination:*" ] } ] }

Lieferquelle erstellen

Zu Beginn erstellt Konto A eine Versandquelle mit ihrer fundierten Wissensdatenbank:

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 Workflows erstellen:

Konfigurieren Sie die Lieferung an einen Amazon S3-Bucket

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "PutLogDestinationPermissions", "Effect": "Allow", "Action": [ "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy" ], "Resource": "arn:aws:logs:us-east-1:111122223333:delivery-destination:*" } ] }

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

JSON
{ "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/123456789012/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "123456789012" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:123456789012:delivery-source:my-delivery-source" ] } } } ] }

Wenn der Bucket mit verschlüsselt ist SSE-KMS, stellen Sie sicher, dass die AWS KMS Schlüsselrichtlinie über die entsprechenden Berechtigungen verfügt. Wenn der KMS-Schlüssel beispielsweise lautetarn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab, verwenden Sie Folgendes:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowLogsGenerateDataKey", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "aws:SourceAccount": [ "123456789012" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:123456789012: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 Zustellungszielrichtlinie für sein neu erstelltes Lieferziel, die Konto A die Erlaubnis erteilt, eine Protokollzustellung zu erstellen. Die Richtlinie, die dem neu erstellten Lieferziel hinzugefügt wird, lautet wie folgt:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": { "AWS": "123456789012" }, "Action": [ "logs:CreateDelivery" ], "Resource": "arn:aws:logs:us-east-1:111122223333:delivery-destination:amzn-s3-demo-bucket" } ] }

Diese Richtlinie wird auf dem Computer von Konto B gespeichert als 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 Lieferquelle 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 seinem Firehose-Stream empfangen. Der Firehose-Stream hat den folgenden ARN und ist für die Verwendung des DirectPut Delivery-Stream-Typs konfiguriert:

arn:aws:firehose:us-east-1:111122223333:deliverystream/log-delivery-stream

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowFirehoseCreateSLR", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::111122223333:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery" }, { "Sid": "AllowFirehoseTagging", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": "arn:aws:firehose:us-east-1:111122223333:deliverystream/X" }, { "Sid": "AllowFirehoseDeliveryDestination", "Effect": "Allow", "Action": [ "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy" ], "Resource": "arn:aws:logs:us-east-1:111122223333: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 sein neu erstelltes Lieferziel, die Konto A die Erlaubnis erteilt, eine Protokollzustellung zu erstellen. Die Richtlinie, die dem neu erstellten Lieferziel hinzugefügt werden muss, lautet wie folgt:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": { "AWS": "123456789012" }, "Action": [ "logs:CreateDelivery" ], "Resource": "arn:aws:logs:us-east-1:111122223333:delivery-destination:amzn-s3-demo-bucket" } ] }

Diese Richtlinie wird auf dem Computer von Konto B gespeichert als 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