

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemple de livraison entre comptes
<a name="vended-logs-crossaccount-example"></a>

Dans cet exemple, deux comptes sont concernés. Le compte contenant la ressource génératrice de journaux est le compte A, ID :{{123456789012}}, et le compte contenant la ressource consommant le journal est le compte B, ID :. {{111122223333}}

Le compte A souhaite fournir des logs provenant de la base de Amazon Bedrock connaissances de son compte avec l'ARN arn:aws:bedrock : :knowledge base/. {{us-east-1}} {{123456789012}} {{kb-12345678}}

Pour cet exemple, le compte A a besoin des autorisations suivantes :

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

------

## Création d'une source de livraison
<a name="crossaccount-example-create-source"></a>

Pour commencer, le compte A crée une source de diffusion à partir de sa base de connaissances de base :

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

Ensuite, le compte B doit créer la destination de livraison en utilisant l'un des flux ci-dessous :
+ [Configuration de la livraison vers un compartiment Amazon S3](#crossaccount-example-delivery-S3)
+ [Configurer la diffusion vers un flux Firehose](#crossaccount-example-delivery-Firehose)

## Configuration de la livraison vers un compartiment Amazon S3
<a name="crossaccount-example-delivery-S3"></a>

Le compte B souhaite recevoir les logs dans son compartiment S3 avec l'ARN arn:aws:s3 : ::amzn-s3-demo-bucket. Dans cet exemple, le compte B aura besoin des autorisations suivantes :

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

------

Le bucket aura besoin des autorisations suivantes dans sa politique 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 le compartiment est chiffré avec SSE-KMS, assurez-vous que la politique de AWS KMS clés dispose des autorisations appropriées. Par exemple, si la clé KMS est`arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}`, utilisez ce qui suit :

------
#### [ 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"
                    ]
                }
            }
        }
    ]
}
```

------

Le compte B peut ensuite créer une destination de livraison avec le compartiment S3 comme ressource de destination :

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

Ensuite, le compte B crée une politique de destination de livraison pour sa nouvelle destination de livraison, qui autorisera le compte A à créer un journal de livraison. La politique qui sera ajoutée à la destination de livraison nouvellement créée est la suivante :

------
#### [ 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}}"
        }
    ]
}
```

------

Cette politique sera enregistrée sur l'ordinateur du compte B car `destination-policy-s3.json` pour associer cette ressource, le compte B exécutera la commande suivante :

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

Enfin, le compte A crée la livraison, qui lie la source de livraison dans le compte A à la destination de livraison dans le compte 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
```

## Configurer la diffusion vers un flux Firehose
<a name="crossaccount-example-delivery-Firehose"></a>

Dans cet exemple, le compte B souhaite recevoir des logs dans son stream Firehose. Le flux Firehose possède l'ARN suivant et est configuré pour utiliser le type de flux de DirectPut diffusion :

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

 Pour cet exemple, le compte B a besoin des autorisations suivantes :

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

------

Le stream Firehose doit avoir la balise `LogDeliveryEnabled` définie sur. `true`

Le compte B créera ensuite une destination de livraison avec le stream Firehose comme ressource de destination :

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

Ensuite, le compte B crée une politique de destination de livraison pour sa nouvelle destination de livraison, qui autorisera le compte A à créer un journal de livraison. La politique à ajouter à la destination de livraison nouvellement créée est la suivante :

------
#### [ 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}}"
        }
    ]
}
```

------

Cette politique sera enregistrée sur l'ordinateur du compte B car `destination-policy-fh.json` pour associer cette ressource, le compte B exécute la commande suivante :

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

Enfin, le compte A crée la livraison, qui lie la source de livraison dans le compte A à la destination de livraison dans le compte 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
```