View a markdown version of this page

Cross-account ejemplo de entrega - Amazon CloudWatch Logs

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cross-account ejemplo de entrega

En este ejemplo, se usan dos cuentas. La cuenta con el recurso generador de registros es la cuenta A, ID:123456789012, y la cuenta con el recurso que consume registros es la cuenta B, ID:. 111122223333

La cuenta A quiere entregar registros de la base de Amazon Bedrock conocimientos de su cuenta con el ARN arn:aws:bedrock: ::knowledge-base/. us-east-1 123456789012 kb-12345678

En este ejemplo, la cuenta A necesita estos permisos:

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

Creación de origen de entrega

Para empezar, la cuenta A crea un origen de entrega con su base de conocimientos básica:

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

A continuación, la cuenta B debe crear el destino de entrega mediante uno de los siguientes flujos:

Configuración de la entrega a un bucket de Amazon S3

La cuenta B desea recibir los registros en el bucket de S3 con el ARN arn:aws:s3:::amzn-s3-demo-bucket. En este ejemplo, la cuenta B necesitará los siguientes permisos:

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

El bucket necesitará los siguientes permisos en su política de 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" ] } } } ] }

Si el depósito está cifrado con, asegúrese de que la política de claves tenga los permisos adecuados. SSE-KMS AWS KMS Por ejemplo, si la clave de KMS es arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab, utilice lo siguiente:

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

A continuación, la cuenta B puede crear un destino de entrega con el bucket de S3 como recurso de destino:

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

Luego, la cuenta B crea una política de destino de entrega en el destino de entrega recién creado, lo que permitirá a la cuenta A crear un registro de entrega. La política que se añadirá al destino de entrega recién creado es la siguiente:

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

Esta política se guardará en el ordenador de la cuenta B como destination-policy-s3.json. Para adjuntar este recurso, la cuenta B ejecutará el siguiente comando:

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

Por último, la cuenta A crea la entrega, que vincula el origen de entrega de la cuenta A con el destino de la entrega de la cuenta 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

Configuración de la entrega a un flujo de Firehose

En este ejemplo, la cuenta B quiere recibir registros en su flujo de Firehose. La transmisión Firehose tiene el siguiente ARN y está configurada para usar el tipo de transmisión de DirectPut entrega:

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

En este ejemplo, la cuenta B necesita estos permisos:

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

El flujo de Firehose debe tener la etiqueta LogDeliveryEnabled configurada en true.

A continuación, la cuenta B crea un destino de entrega con el flujo de Firehose como recurso de destino:

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

Luego, la cuenta B crea una política de destino de entrega en el destino de entrega recién creado, lo que permitirá a la cuenta A crear un registro de entrega. La política que se añadirá al destino de entrega recién creado es la siguiente:

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

Esta política se guardará en el ordenador de la cuenta B como destination-policy-fh.json. Para adjuntar este recurso, la cuenta B ejecuta el siguiente comando:

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

Por último, la cuenta A crea la entrega, que vincula el origen de entrega de la cuenta A con el destino de la entrega de la cuenta 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