翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アカウント間の配信の例
この例では、2 つのアカウントが関係しています。ログ生成リソースを持つアカウントはアカウント A、ID: 123456789012、ログ消費リソースを持つアカウントはアカウント B、ID: 111122223333 です。
アカウント A は、ARN arn:aws:bedrock:us-east-1:123456789012:knowledge-base/kb-12345678 を使用して、アカウントの Amazon Bedrock ナレッジベースからログを配信したいと考えています。
この例では、アカウント A には次のアクセス許可が必要です。
- 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:*"
]
}
]
}
配信ソースを作成する
まず、アカウント A は、Bedrock ナレッジベースを使用して配信ソースを作成します。
aws logs put-delivery-source --name my-delivery-source --log-type APPLICATION_LOGS --resource-arn arn:aws:bedrock:region:AAAAAAAAAAAA:knowledge-base/XXXXXXXXXX
次に、アカウント B は、次のいずれかのフローを使用して配信先を作成する必要があります。
Amazon S3 バケットへの配信を設定する
アカウント B は ARN arn:aws:s3:::amzn-s3-demo-bucket を使用して S3 バケットでログを受信したいと考えています。この例の場合、アカウント B には次のアクセス許可が必要です。
- 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:*"
}
]
}
バケットポリシーには、次のアクセス許可が必要です。
- 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"
]
}
}
}
]
}
バケットが SSE-KMS で暗号化されている場合は、 AWS KMS キーポリシーに適切なアクセス許可があることを確認してください。例えば、KMS キーが arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab の場合、以下を使用します。
- 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"
]
}
}
}
]
}
アカウント B は、S3 バケットを宛先リソースとして配信先を作成できます。
aws logs put-delivery-destination --name my-s3-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket"
次に、アカウント B は新しく作成された配信先に配信先ポリシーを作成し、アカウント A がログ配信を作成するアクセス許可を付与します。新しく作成された配信先に追加されるポリシーは次のとおりです。
- 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"
}
]
}
このポリシーは、アカウント B のコンピュータに destination-policy-s3.json として保存されます。このリソースをアタッチするために、アカウント B は次のコマンドを実行します。
aws logs put-delivery-destination-policy --delivery-destination-name my-s3-delivery-destination --delivery-destination-policy file://destination-policy-s3.json
最後に、アカウント A は配信を作成し、アカウント A の配信ソースをアカウント 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
Firehose ストリームへの配信を設定する
この例では、アカウント B は Firehose ストリームでログを受信したいと考えています。Firehose ストリームには次の ARN があり、DirectPut 配信ストリームタイプを使用するように設定されています。
arn:aws:firehose:us-east-1:111122223333:deliverystream/log-delivery-stream
この例では、アカウント B には次のアクセス許可が必要です。
- 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:*"
}
]
}
Firehose ストリームのタグ LogDeliveryEnabled は true に設定する必要があります。
その後、アカウント B は、Firehose ストリームを宛先リソースとして配信先を作成します。
aws logs put-delivery-destination --name my-fh-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:firehose:region:BBBBBBBBBBBB:deliverystream/X"
次に、アカウント B は新しく作成された配信先に配信先ポリシーを作成し、アカウント A がログ配信を作成するアクセス許可を付与します。新しく作成された配信先に追加されるポリシーは次のとおりです。
- 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"
}
]
}
このポリシーは、アカウント B のコンピュータに destination-policy-fh.json として保存されます。このリソースをアタッチするために、アカウント B は次のコマンドを実行します。
aws logs put-delivery-destination-policy --delivery-destination-name my-fh-delivery-destination --delivery-destination-policy file://destination-policy-fh.json
最後に、アカウント A は配信を作成し、アカウント A の配信ソースをアカウント 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