Beispiel für eine kontoübergreifende Zustellung - 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.

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:123456789012, und das Konto mit der Ressource, die das Protokoll verwendet, 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

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 in seinem S3-Bucket mit dem ARN arn:aws:s3: ::amzn-s3-demo-bucket empfangen. In diesem 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 die folgenden Berechtigungen in seiner Bucket-Richtlinie:

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 SSE-KMS verschlüsselt ist, 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:BBBBBBBBBBBB:key/X", "Condition": { "StringEquals": { "aws:SourceAccount": [ "AAAAAAAAAAAA" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1: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:

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. 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 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 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:

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. 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