Contoh pengiriman lintas akun - CloudWatch Log Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh pengiriman lintas akun

Dalam contoh ini, dua akun terlibat. Akun dengan sumber daya penghasil log adalah Akun A, ID:123456789012, dan akun dengan sumber daya yang memakan log adalah Akun B, ID:. 111122223333

Akun A ingin mengirimkan log dari basis Amazon Bedrock pengetahuan di akun mereka dengan ARN arn:aws:bedrock: ::knowledge-base/. us-east-1 123456789012 kb-12345678

Untuk contoh ini, akun A memerlukan izin berikut:

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

Buat sumber pengiriman

Untuk memulai, akun A membuat sumber pengiriman dengan basis pengetahuan dasar mereka:

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

Selanjutnya, akun B harus membuat tujuan pengiriman menggunakan salah satu alur di bawah ini:

Konfigurasikan pengiriman ke bucket Amazon S3

Akun B ingin menerima log ke bucket S3 mereka dengan ARN arn:aws:s3: ::amzn-s3-demo-bucket Untuk contoh ini, akun B akan memerlukan izin berikut:

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

Bucket akan memerlukan izin berikut dalam kebijakan 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" ] } } } ] }

Jika bucket dienkripsi dengan SSE-KMS, pastikan kebijakan AWS KMS kunci memiliki izin yang sesuai. Misalnya, jika kunci KMSarn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab, gunakan yang berikut ini:

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

Akun B kemudian dapat membuat tujuan pengiriman dengan bucket S3 sebagai sumber daya tujuan:

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

Selanjutnya, Akun B membuat kebijakan tujuan pengiriman pada tujuan pengiriman yang baru dibuat, yang akan memberikan izin bagi Akun A untuk membuat pengiriman log. Kebijakan yang akan ditambahkan ke tujuan pengiriman yang baru dibuat adalah sebagai berikut:

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

Kebijakan ini akan disimpan di komputer Akun B sebagai destination-policy-s3.json Untuk melampirkan sumber daya ini, Akun B akan menjalankan perintah berikut:

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

Terakhir, Akun A membuat pengiriman, yang menautkan sumber pengiriman di Akun A ke tujuan pengiriman di Akun 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

Konfigurasikan pengiriman ke aliran Firehose

Dalam contoh ini, Akun B ingin menerima log ke aliran Firehose mereka. Aliran Firehose memiliki ARN berikut dan dikonfigurasi untuk menggunakan jenis aliran pengiriman: DirectPut

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

Untuk contoh ini, Akun B memerlukan izin berikut:

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

Aliran Firehose harus memiliki tag yang LogDeliveryEnabled disetel ke. true

Akun B kemudian akan membuat tujuan pengiriman dengan aliran Firehose sebagai sumber daya tujuan:

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

Selanjutnya, Akun B membuat kebijakan tujuan pengiriman pada tujuan pengiriman yang baru dibuat, yang akan memberikan izin bagi Akun A untuk membuat pengiriman log. Kebijakan yang akan ditambahkan ke tujuan pengiriman yang baru dibuat adalah sebagai berikut:

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

Kebijakan ini akan disimpan di komputer Akun B sebagai destination-policy-fh.json Untuk melampirkan sumber daya ini, Akun B menjalankan perintah berikut:

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

Terakhir, Akun A membuat pengiriman, yang menautkan sumber pengiriman di Akun A ke tujuan pengiriman di Akun 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