Journalisation des appels d’API Amazon Bedrock à l’aide de CloudTrail
Amazon Bedrock est intégré avec AWS CloudTrail, un service qui enregistre les actions effectuées par un utilisateur, un rôle ou un service AWS dans Amazon Bedrock. CloudTrail capture tous les appels d’API pour Amazon Bedrock en tant qu’événements. Ces captures incluent les appels de la console Amazon Bedrock et les appels de code vers les opérations d’API Amazon Bedrock. Si vous créez un journal d’activité, vous pouvez activer la distribution continue des événements CloudTrail vers un compartiment Amazon S3, y compris les événements pour Amazon Bedrock.
Si vous ne configurez pas de journal d’activité, vous pouvez toujours afficher les événements les plus récents dans la console CloudTrail dans Event history (Historique des événements).
Avec les informations collectées par CloudTrail, vous pouvez déterminer la demande qui a été envoyée à Amazon Bedrock, l’adresse IP à partir de laquelle la demande a été effectuée, l’auteur et la date de la demande, ainsi que d’autres détails.
Pour en savoir plus sur CloudTrail, consultez le Guide de l’utilisateur AWS CloudTrail.
Informations relatives à Amazon Bedrock dans CloudTrail
CloudTrail est activé dans votre Compte AWS lors de la création de ce dernier. Lorsqu’une activité se produit dans Amazon Bedrock, elle est enregistrée au sein d’un événement CloudTrail avec d’autres événements de services AWS dans Historique des événements. Vous pouvez afficher, rechercher et télécharger les événements récents dans votre Compte AWS. Pour plus d’informations, consultez Affichage des événements avec l’historique des événements CloudTrail.
Pour un enregistrement continu des événements dans votre Compte AWS, y compris les événements pour Amazon Bedrock, créez un journal de suivi. Un journal d’activité permet à CloudTrail de distribuer les fichiers journaux à un compartiment Amazon S3. Par défaut, lorsque vous créez un journal d’activité dans la console, il s’applique à toutes les régions Régions AWS. Le journal de suivi consigne les événements de toutes les Régions dans la partition AWS et livre les fichiers journaux dans le compartiment Amazon S3 de votre choix. En outre, vous pouvez configurer d’autres services AWS pour analyser et agir sur les données d’événements collectées dans les journaux CloudTrail. Pour plus d’informations, consultez les ressources suivantes :
Chaque événement ou entrée de journal contient des informations sur la personne ayant initié la demande. Les informations relatives à l’identité permettent de déterminer les éléments suivants :
-
Si la demande a été effectuée avec les informations d’identification utilisateur racine ou AWS Identity and Access Management (IAM).
-
Si la demande a été effectuée avec les informations d’identification de sécurité temporaires d’un rôle ou d’un utilisateur fédéré.
-
Si la demande a été effectuée par un autre service AWS.
Pour plus d’informations, consultez l’élément userIdentity CloudTrail.
Événements de données Amazon Bedrock dans CloudTrail
Les événements de données fournissent des informations sur les opérations de ressources effectuées sur ou dans une ressource (par exemple, lecture ou écriture de données dans un objet Amazon S3). Ils sont également connus sous le nom d’opérations de plans de données. Les événements de données sont souvent des activités volumineuses que CloudTrail ne journalise pas par défaut.
Amazon Bedrock journalise certaines opérations d’API d’exécution d’Amazon Bedrock (telles queInvokeModel, InvokeModelWithResponseStream, Converse, ConverseStream et ListAsyncInvokes) en tant qu’événements de gestion.
Amazon Bedrock journalise les autres opérations d’API d’exécution d’Amazon Bedrock (telles que InvokeModelWithBidirectionalStream, GetAsyncInvoke etStartAsyncInvokes) sous forme d’événements de données.
Amazon Bedrock journalise toutes les actions des opérations d’API d’exécution des agents Amazon Bedrock (telles que InvokeAgent et InvokeInlineAgent) dans CloudTrail sous forme d’événements de données.
-
Pour journaliser les appels InvokeAgent, configurez des sélecteurs d’événements avancés afin d’enregistrer les événements de données pour le type de ressource
AWS::Bedrock::AgentAlias. -
Pour journaliser les appels InvokeInlineAgent, configurez des sélecteurs d’événements avancés afin d’enregistrer les événements de données pour le type de ressource
AWS::Bedrock::InlineAgent. -
Pour journaliser les appels InvokeModelWithBidirectionalStream, configurez des sélecteurs d’événements avancés afin d’enregistrer les événements de données pour le type de ressource
AWS::Bedrock::ModeletAWS:Bedrock::AsyncInvoke. -
Pour journaliser les appels GetAsyncInvoke et StartAsyncInvoke, configurez des sélecteurs d’événements avancés afin d’enregistrer les événements de données pour le type de ressource
AWS::Bedrock::ModeletAWS:Bedrock::AsyncInvoke. -
Pour journaliser les appels Retrieve et RetrieveAndGenerate, configurez des sélecteurs d’événements avancés afin d’enregistrer les événements de données pour le type de ressource
AWS::Bedrock::KnowledgeBase. -
Pour journaliser les appels InvokeFlow, configurez des sélecteurs d’événements avancés afin d’enregistrer les événements de données pour le type de ressource
AWS::Bedrock::FlowAlias. -
Pour journaliser les appels
RenderPrompt, configurez des sélecteurs d’événements avancés afin d’enregistrer les événements de données pour le type de ressourceAWS::Bedrock::Prompt.RenderPromptest une action avec autorisation uniquement qui affiche des invites, créées à l’aide de la gestion des invites, pour l’invocation de modèle (InvokeModel(WithResponseStream)etConverse(Stream)).
Dans la console CloudTrail, choisissez l’alias de l’agent Bedrock ou la base de connaissances Bedrock pour le type d’événement de données. Vous pouvez également filtrer les champs eventName et resources.ARN en choisissant un modèle de sélecteur de journal personnalisé. Pour plus d’informations, consultez Journalisation des événements de données avec la Console de gestion AWS.
À partir de la AWS CLI, définissez une valeur resource.type égale à AWS::Bedrock::AgentAlias, AWS::Bedrock::KnowledgeBase ou AWS::Bedrock::FlowAlias et définissez une valeur eventCategory égale à Data. Pour plus d’informations, consultez Journalisation des événements de données avec l’AWS CLI.
L’exemple suivant indique comment configurer un journal de suivi pour journaliser tous les événements de données pour tous les objets Amazon Bedrock pour tous les types de ressource Amazon Bedrock dans l’AWS CLI.
aws cloudtrail put-event-selectors --trail-nametrailName\ --advanced-event-selectors \ '[ { "Name": "Log all data events on an alias of an agent in Amazon Bedrock.", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Bedrock::AgentAlias"] } ] }, { "Name": "Log all data events on a knowledge base in Amazon Bedrock.", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Bedrock::KnowledgeBase"] } ] }, { "Name": "Log all data events on a flow in Amazon Bedrock.", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Bedrock::FlowAlias"] } ] } { "Name": "Log all data events on a guardrail in Amazon Bedrock.", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Bedrock::Guardrail"] } ] } ]'
Vous pouvez également filtrer les champs eventName et resources.ARN. Pour plus d’informations sur ces champs, consultez AdvancedFieldSelector.
Des frais supplémentaires s’appliquent pour les événements de données. Pour en savoir plus sur la tarification CloudTrail, consultez Tarification d’AWS CloudTrail
Événements de gestion Amazon Bedrock dans CloudTrail
Les événements de gestion fournissent des informations sur les opérations de gestion exécutées sur les ressources de votre compte AWS. Ils sont également connus sous le nom opérations de plan de contrôle. CloudTrail consigne les opérations d’API d’événements de gestion par défaut.
Amazon Bedrock journalise les opérations d’API d’exécution d’Amazon Bedrock (InvokeModel, InvokeModelWithResponseStream, Converse et ConverseStream) en tant qu’événements de gestion.
Amazon Bedrock journalise le reste des opérations d’API d’identité Amazon Bedrock en tant qu’événements de gestion. Pour obtenir la liste des opérations d’API Amazon Bedrock qu’Amazon Bedrock journalise dans CloudTrail, consultez les pages suivantes dans la Référence des API Amazon Bedrock.
Toutes les opérations d’API Amazon Bedrock et les opérations d’API Agents for Amazon Bedrock sont journalisées par CloudTrail et documentées dans la Référence des API Amazon Bedrock. À titre d’exemple, les appels vers les actions InvokeModel, StopModelCustomizationJob et CreateAgent génèrent des entrées dans les fichiers journaux CloudTrail.
Amazon GuardDuty
Présentation des entrées des fichiers journaux Amazon Bedrock
Un journal de suivi est une configuration qui permet d’envoyer des événements sous forme de fichiers journaux à un compartiment Amazon S3 de votre choix. Les fichiers journaux CloudTrail peuvent contenir une ou plusieurs entrées. Un événement représente une demande unique provenant de n’importe quelle source et comprend des informations sur l’action demandée, la date et l’heure de l’action, les paramètres de la demande, etc. Les fichiers journaux CloudTrail ne constituent pas une série ordonnée retraçant les appels d’API publics. Ils ne suivent aucun ordre précis.
L’exemple suivant présente une entrée de journal CloudTrail qui illustre l’action InvokeModel.
{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "AROAICFHPEXAMPLE", "arn": "arn:aws:iam::111122223333:user/userxyz", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "userxyz" }, "eventTime": "2023-10-11T21:58:59Z", "eventSource": "bedrock.amazonaws.com", "eventName": "InvokeModel", "awsRegion": "us-west-2", "sourceIPAddress": "192.0.2.0", "userAgent": "Boto3/1.28.62 md/Botocore#1.31.62 ua/2.0 os/macos#22.6.0 md/arch#arm64 lang/python#3.9.6 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.31.62", "requestParameters": { "modelId": "stability.stable-diffusion-xl-v0" }, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 ", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.2", "cipherSuite": "cipher suite", "clientProvidedHostHeader": "bedrock-runtime.us-west-2.amazonaws.com" } }