

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 교차 계정 전송 예제
<a name="vended-logs-crossaccount-example"></a>

이 예제에서는 두 개의 계정이 관련되어 있습니다. 로그 생성 리소스가 있는 계정은 계정 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 name="crossaccount-example-create-source"></a>

먼저 계정 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 버킷으로의 전송 구성](#crossaccount-example-delivery-S3)
+ [Firehose 스트림으로의 전송 구성](#crossaccount-example-delivery-Firehose)

## Amazon S3 버킷으로의 전송 구성
<a name="crossaccount-example-delivery-S3"></a>

계정 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 스트림으로의 전송 구성
<a name="crossaccount-example-delivery-Firehose"></a>

이 예제에서 계정 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 스트림의 `true` 태그가 `LogDeliveryEnabled`로 설정되어 있어야 합니다.

그런 다음 계정 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
```