View a markdown version of this page

Surveillez l'invocation des modèles à l'aide de CloudWatch Logs et d'Amazon S3 - Amazon Bedrock

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.

Surveillez l'invocation des modèles à l'aide de CloudWatch Logs et d'Amazon S3

Vous pouvez utiliser la journalisation des invocations des modèles pour collecter les journaux d'invocation, les données d'entrée des modèles et les données de sortie des modèles pour toutes les invocations que vous Compte AWS utilisez dans Amazon Bedrock in a Region.

Grâce à la journalisation des appels, vous pouvez collecter l'intégralité des données de demande, des données de réponse et des métadonnées associées aux appels pris en charge effectués sur votre compte dans une région. La journalisation peut être configurée pour fournir les ressources de destination où les données de journal seront publiées. Les destinations prises en charge incluent Amazon CloudWatch Logs et Amazon Simple Storage Service (Amazon S3). Seules les destinations du même compte et de la même région sont possibles.

La journalisation des invocations de modèle est désactivée par défaut. Une fois la journalisation des invocations du modèle activée, les journaux sont stockés jusqu’à ce que la configuration de journalisation soit supprimée.

Les opérations suivantes peuvent enregistrer les invocations de modèles.

Note

La journalisation des invocations du modèle n'est prise en charge que pour les appels effectués via le bedrock-runtime terminal. Cela inclut les API OpenAI-compatible Responses et Chat Completions sur ce point de terminaison. Les appels effectués via d'autres points de terminaison, tels que les mêmes APIbedrock-mantle, ne sont actuellement pas capturés par la journalisation des invocations.

Lors de l’utilisation de l’API Converse, toutes les données d’image ou de document que vous transmettez sont enregistrées dans Amazon S3 (si vous avez activé la livraison et l’enregistrement des images dans Amazon S3).

Avant de pouvoir activer la journalisation des appels, vous devez configurer une destination Amazon S3 ou CloudWatch Logs. Vous pouvez activer la journalisation des invocations via la console ou l'API.

Configuration d'une destination Amazon S3

Note

Lorsque vous utilisez Amazon S3 comme destination de journalisation, le compartiment doit se trouver dans le même Compte AWS compartiment Région AWS que celui dans lequel vous créez la configuration de journalisation des invocations du modèle.

Pour configurer une destination S3 pour la journalisation dans Amazon Bedrock, procédez comme suit :

  1. Créez un compartiment S3 dans lequel les journaux seront envoyés.

  2. Ajoutez-y une politique de compartiment comme celle ci-dessous (remplacez les valeurs pour accountIdregion,bucketName, et éventuellementprefix) :

    Note

    Une politique de compartiment est automatiquement attachée au compartiment en votre nom lorsque vous configurez la journalisation avec les autorisations S3:GetBucketPolicy et S3:PutBucketPolicy.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AmazonBedrockLogsWrite", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucketName/prefix/AWSLogs/123456789012/BedrockModelInvocationLogs/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:*" } } } ] }
  3. (Facultatif) Si vous configurez SSE-KMS sur le bucket, ajoutez la politique suivante sur la clé KMS :

    { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } }

Pour plus d'informations sur les SSE-KMS configurations S3, consultez la section Spécification du chiffrement KMS.

Note

La liste ACL du compartiment doit être désactivée pour que la politique de compartiment prenne effet. Pour plus d'informations, consultez Désactivation des listes ACL pour tous les nouveaux compartiments et application de la propriété des objets.

Configurer une destination pour CloudWatch les journaux

Vous pouvez configurer une destination Amazon CloudWatch Logs pour vous connecter à Amazon Bedrock en suivant les étapes suivantes :

  1. Créez un CloudWatch groupe de journaux dans lequel les journaux seront publiés.

  2. Créez un rôle IAM avec les autorisations suivantes pour les CloudWatch journaux.

    Entité de confiance :

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:*" } } } ] }

    Politique de rôle :

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:logGroupName:log-stream:aws/bedrock/modelinvocations" } ] }

Pour plus d'informations sur la configuration de SSE pour les CloudWatch journaux, voir Chiffrer les données des CloudWatch journaux dans les journaux à l'aide AWS Key Management Service de.

Journalisation des invocations de modèle à l’aide de la console

Pour activer la journalisation des appels de modèles

Connectez-vous au Console de gestion AWS avec une identité IAM autorisée à utiliser la console Amazon Bedrock. Ouvrez ensuite la console Amazon Bedrock à https://console.aws.amazon.com/bedrock l'adresse.

  1. Dans le volet de navigation de gauche, sélectionnez Paramètres.

  2. Sur la page Enregistrement des invocations des modèles, sélectionnez Enregistrement des invocations des modèles. Des paramètres de configuration supplémentaires pour la journalisation apparaîtront.

  3. Sélectionnez les modalités des demandes de données et des réponses que vous souhaitez publier dans les journaux. Vous pouvez sélectionner n'importe quelle combinaison des options de sortie suivantes :

    • Texte

    • Image

    • Intégration

    • Vidéo

    Note

    Les données seront enregistrées pour tous les modèles qui prennent en charge les modalités (que ce soit en entrée ou en sortie) que vous choisissez. Par exemple, si vous sélectionnez Image, l'invocation du modèle sera enregistrée pour tous les modèles qui prennent en charge la saisie d'image, la sortie d'image ou les deux.

  4. Sélectionnez l'endroit où vous souhaitez publier les journaux :

    • Amazon S3 uniquement

    • CloudWatch Journaux uniquement

    • Amazon S3 et CloudWatch Logs

Destinations de journalisation

Les destinations Amazon S3 et CloudWatch Logs sont prises en charge pour les journaux d'invocation et les petites données d'entrée et de sortie. Pour les données d'entrée et de sortie volumineuses ou les sorties d'images binaires, seul Amazon S3 est pris en charge. Les informations suivantes synthétisent la manière dont les données sont représentées dans l’emplacement cible.

  • Destination S3 : les fichiers JSON compressés, contenant chacun un lot d'enregistrements du journal des invocations, sont envoyés dans le compartiment S3 spécifié. Comme pour un événement CloudWatch Logs, chaque enregistrement contiendra les métadonnées d'invocation et des corps JSON d'entrée et de sortie d'une taille maximale de 100 Ko. Les données binaires ou les corps JSON dont la taille est supérieure à 100 Ko sont chargés sous forme d'objets individuels dans le compartiment Amazon S3 spécifié sous le préfixe de données. Les données peuvent être interrogées à l'aide d'Amazon S3 Select et d'Amazon Athena, et peuvent être cataloguées pour l'ETL à l'aide d' AWS Glue. Les données peuvent être chargées en OpenSearch service ou traitées par n'importe quelle EventBridge cible Amazon.

  • CloudWatch Destination des journaux  : les événements du journal d'invocation JSON sont transmis à un groupe de CloudWatch journaux spécifié dans Logs. L'événement du journal contient les métadonnées d'invocation, ainsi que les corps JSON d'entrée et de sortie dont la taille ne dépasse pas 100 Ko. Si un emplacement Amazon S3 pour la diffusion de données volumineuses est fourni, les données binaires ou les corps JSON de plus de 100 Ko seront chargés dans le compartiment Amazon S3 sous le préfixe de données à la place. Les données peuvent être interrogées à l'aide de CloudWatch Logs Insights, et peuvent être ensuite diffusées vers divers services en temps réel à l'aide de Logs. CloudWatch

Journalisation des invocations de modèle à l’aide de l’API

La journalisation des invocations de modèle peut être configurée à l'aide des API suivantes :

Format d'entrée de journal

Chaque entrée du journal d'invocation est un objet JSON dont la structure est la suivante. Le format est le même pour les destinations CloudWatch Logs et Amazon S3.

{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-01-15T12:00:00Z", "accountId": "123456789012", "region": "us-east-1", "requestId": "abcd1234-5678-efgh-ijkl-mnopqrstuvwx", "operation": "Converse", "modelId": "anthropic.claude-sonnet-4-20250514-v1:0", "identity": { "arn": "arn:aws:sts::123456789012:assumed-role/MyRole/session-name" }, "requestMetadata": { "team": "orchestrator", "environment": "production" }, "input": { "inputContentType": "application/json", "inputBodyJson": { }, "inputTokenCount": 25 }, "output": { "outputContentType": "application/json", "outputBodyJson": { }, "outputTokenCount": 150 } }

Le tableau suivant décrit les champs d'une entrée de journal :

Champ Description
schemaType Type d'enregistrement de journal. Toujours ModelInvocationLog.
schemaVersion Version du schéma de journalisation.
timestamp L'heure à laquelle l'invocation a été faite, au format ISO 8601.
accountId L' Compte AWS identifiant qui a effectué l'invocation.
region L' Région AWS endroit où l'invocation a été faite.
requestId L'identifiant unique de la demande.
operation L'opération d'API appelée (par exemple,Converse,InvokeModel).
modelId L'ID du modèle ou l'ID du profil d'inférence utilisé pour l'invocation.
identity.arn L'ARN AWS STS ou IAM du principal qui a fait la demande, y compris le nom du rôle et le nom de session ou d'utilisateur. Capturé automatiquement.
requestMetadata Un objet JSON facultatif contenant des balises clé-valeur fournies par l'appelant. Présent uniquement lorsque l'appelant fournit les métadonnées de la demande. Pour en savoir plus, consultez Per-request balisage des métadonnées.
input.inputBodyJson Le corps de la demande envoyé au modèle (jusqu'à 100 Ko). Les corps plus grands sont stockés en tant qu'objets séparés dans Amazon S3.
input.inputTokenCount Le nombre de jetons d'entrée contenus dans la demande.
output.outputBodyJson Le corps de réponse du modèle (jusqu'à 100 Ko). Les corps plus grands sont stockés en tant qu'objets séparés dans Amazon S3.
output.outputTokenCount Le nombre de jetons de sortie contenus dans la réponse.
Note

Chaque champ de l'enregistrement est automatiquement renseigné par Amazon Bedrock, à une exception près : requestMetadata c'est le seul champ fourni par l'appelant. Pour en savoir plus, consultez Per-request balisage des métadonnées.

Pour ventiler l'utilisation des jetons par le principal IAM sans utiliser les métadonnées de la demande, groupez suridentity.arn. La requête CloudWatch Logs Insights suivante répertorie les appelants en fonction du nombre total de jetons d'entrée :

fields identity.arn as principal, input.inputTokenCount as inTokens, output.outputTokenCount as outTokens | stats sum(inTokens) as totalInput, sum(outTokens) as totalOutput, count() as calls by principal | sort totalInput desc
Note

Les données binaires (telles que les images) et les corps JSON supérieurs à 100 Ko ne sont pas inclus en ligne dans l'entrée du journal. Au lieu de cela, ils sont stockés en tant qu'objets distincts dans le compartiment Amazon S3 sous le préfixe de données, et l'entrée du journal contient une référence à l'emplacement Amazon S3.