Ejemplo de entrega entre cuentas - 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.

Ejemplo de entrega entre cuentas

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 SSE-KMS, asegúrese de que la política de claves tenga los permisos adecuados. 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:BBBBBBBBBBBB:key/X", "Condition": { "StringEquals": { "aws:SourceAccount": [ "AAAAAAAAAAAA" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:AAAAAAAAAAAA: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