View a markdown version of this page

Cross-account esempio di consegna - CloudWatch Registri Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Cross-account esempio di consegna

In questo esempio, sono coinvolti due account. L'account con la risorsa che genera il log è Account A, ID:123456789012, e l'account con la risorsa che consuma il log è Account B, ID:. 111122223333

L'account A desidera fornire i log dalla Amazon Bedrock knowledge base del proprio account con l'ARN arn:aws:bedrock: ::knowledge-base/. us-east-1 123456789012 kb-12345678

Per questo esempio, l'account A necessita delle seguenti autorizzazioni:

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:*" ] } ] }

Crea una fonte di consegna

Per iniziare, l'account A crea una fonte di consegna con la sua base di conoscenza fondamentale:

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

Successivamente, l'account B deve creare la destinazione di consegna utilizzando uno dei seguenti flussi:

Configura la consegna a un bucket Amazon S3

L'account B desidera ricevere i log nel proprio bucket S3 con l'ARN arn:aws:s3: ::amzn-s3-demo-bucket. Per questo esempio, l'account B avrà bisogno delle seguenti autorizzazioni:

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:*" } ] }

Il bucket avrà bisogno delle seguenti autorizzazioni nella sua policy del bucket:

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" ] } } } ] }

Se il bucket è crittografato con SSE-KMS, assicurati che la policy AWS KMS chiave disponga delle autorizzazioni appropriate. Ad esempio, se la chiave KMS èarn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab, utilizza quanto segue:

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" ] } } } ] }

L'account B può quindi creare una destinazione di consegna con il bucket S3 come risorsa di destinazione:

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

Successivamente, l'Account B crea una politica di destinazione di consegna sulla destinazione di consegna appena creata, che autorizzerà l'Account A a creare un registro di consegna. La politica che verrà aggiunta alla destinazione di consegna appena creata è la seguente:

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" } ] }

Questa politica verrà salvata nel computer dell'Account B in quanto destination-policy-s3.json Per allegare questa risorsa, l'Account B eseguirà il seguente comando:

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

Infine, l'Account A crea la spedizione, che collega l'origine della consegna nell'Account A alla destinazione della consegna nell'Account B.

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

Configura la consegna a uno stream Firehose

In questo esempio, l'Account B desidera ricevere i log del proprio stream Firehose. Lo stream Firehose ha il seguente ARN ed è configurato per utilizzare il tipo di flusso di DirectPut consegna:

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

Per questo esempio, l'Account B necessita delle seguenti autorizzazioni:

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:*" } ] }

Lo stream Firehose deve avere il tag LogDeliveryEnabled impostato su. true

L'account B creerà quindi una destinazione di consegna con lo stream Firehose come risorsa di destinazione:

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

Successivamente, l'Account B crea una politica di destinazione di consegna sulla destinazione di consegna appena creata, che autorizzerà l'Account A a creare un registro di consegna. La politica da aggiungere alla destinazione di consegna appena creata è la seguente:

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" } ] }

Questa politica verrà salvata nel computer dell'Account B poiché destination-policy-fh.json per allegare questa risorsa, l'Account B esegue il seguente comando:

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

Infine, l'Account A crea la spedizione, che collega l'origine della consegna nell'Account A alla destinazione della consegna nell'Account B.

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