Kiro consigne des événements AWS CloudTrail lorsqu'il répertorie ou appelle des outils MCP du service Kiro, comme la recherche Web. Les équipes de sécurité et d'audit peuvent voir qui a fait la requête, quel outil a été appelé, quand il a été exécuté et s'il a échoué. Ces événements ne couvrent pas les serveurs MCP ajoutés à Kiro par les utilisateurs ou les administrateurs. Les événements remplacent les arguments des outils par un espace réservé et n'incluent pas les résultats des outils.
Kiro consigne sans configuration les appels d'outils privilégiés comme événements de gestion. Pour consigner les listes d'outils et les appels d'outils en lecture seule, ajoutez un sélecteur d'événements de données. Cette journalisation ne change pas la façon dont les développeurs utilisent Kiro.
Kiro consigne chaque requête MCP prise en charge comme un événement AwsMcpEvent provenant de codewhisperer-mcp.amazonaws.com.
| Activité | eventName | eventCategory | readOnly | Paramètres par défaut du journal de suivi |
|---|---|---|---|---|
| Répertorier les outils disponibles | ListTools | Data | true | Non consigné |
| Appeler un outil en lecture seule | CallReadOnlyTool | Data | true | Non consigné |
| Appeler tout autre outil | CallPrivilegedTool | Management | false | Consigné |
Kiro consigne un appel d'outil comme CallPrivilegedTool lorsqu'il ne peut pas déterminer la classification de l'outil. Cela se produit lorsque Kiro rejette la requête avant qu'elle n'atteigne l'outil, par exemple parce que l'authentification a échoué, que la requête a été limitée par le débit ou qu'elle n'était pas valide. Cela se produit aussi lorsque le nom de l'outil n'est pas reconnu. Après que Kiro a identifié l'outil, le nom de l'événement suit la classification de l'outil, même si l'appel échoue. Un appel refusé à un outil en lecture seule est donc consigné comme événement de données CallReadOnlyTool, avec errorCode défini sur AccessDenied.
L'historique des événements CloudTrail comprend les 90 derniers jours d'événements de gestion. Il ne comprend pas les événements de données. Pour conserver les événements de données, ajoutez un sélecteur d'événements avancé à un journal de suivi ou à un magasin de données d'événements CloudTrail Lake.
| Besoin | Fonctionnalité CloudTrail |
|---|---|
| Examiner les appels privilégiés récents sans configuration | Historique des événements |
| Conserver un enregistrement continu dans Amazon S3 | Journal de suivi |
| Interroger les événements entre les comptes et les régions AWS | CloudTrail Lake |
Les événements de données ne sont pas consignés par défaut. Ces étapes ajoutent les événements de données Kiro à un journal de suivi qui utilise déjà des sélecteurs d'événements avancés.
-
Dans la région d'origine du journal de suivi, enregistrez ses sélecteurs actuels :
bashaws cloudtrail get-event-selectors \ --trail-name <trail-name> \ --region <trail-home-region> \ > current-selectors.json -
Ouvrez
current-selectors.json. S'il contientEventSelectorsau lieu deAdvancedEventSelectors, suivez le guide CloudTrail sur les sélecteurs d'événements avancés avant de continuer. -
Créez
advanced-selectors.jsonsous forme de tableau JSON. Copiez-y chaque objet de la listeAdvancedEventSelectorsactuelle. -
Ajoutez cet objet au tableau :
json{ "Name": "Log Kiro MCP data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::CodeWhisperer::Profile"] }, { "Field": "eventSource", "Equals": ["codewhisperer-mcp.amazonaws.com"] } ] } -
Appliquez le tableau complet :
bashaws cloudtrail put-event-selectors \ --trail-name <trail-name> \ --region <trail-home-region> \ --advanced-event-selectors file://advanced-selectors.json
- Exécutez de nouveau
get-event-selectors. Confirmez que la sortie comprendLog Kiro MCP data eventset chaque sélecteur que vous avez conservé. - En tant qu'utilisateur dont le profil Kiro a l'option Web Tools activée, demandez à Kiro de chercher des renseignements à jour sur le Web. Confirmez que sa réponse cite des sources Web. Pour ce paramètre, consultez Paramètres.
- Ouvrez le compartiment Amazon S3 du journal de suivi. Trouvez un événement
CallReadOnlyTooldonteventSourceest défini surcodewhisperer-mcp.amazonaws.com.
CloudTrail livre habituellement les journaux en environ cinq minutes, mais la livraison peut prendre plus de temps. Si aucun événement n'apparaît, confirmez que le profil Kiro se trouve dans la région US East (Virginie du Nord) ou Europe (Francfort). Confirmez aussi que le journal de suivi consigne cette région et comprend toujours le sélecteur Kiro.
Les événements Kiro utilisent le format d'enregistrement CloudTrail avec un champ mcpEventDetails ajouté. Les champs suivants vous aident à auditer l'utilisation des outils :
| Champ | Ce qu'il montre |
|---|---|
userIdentity | L'identité qui a fait la requête |
sourceIPAddress | L'adresse IP source de la requête |
userAgent | Le client Kiro qui a fait la requête |
requestParameters | La version et l'id JSON-RPC, la method MCP et le nom de l'outil dans params.name |
resources | L'ARN du profil Kiro |
mcpEventDetails | sessionId, toolName et executionTimeMs |
errorCode et errorMessage | La raison pour laquelle une requête ne s'est pas terminée. ClientCancelled signifie que le client a cessé de lire la réponse |
Pour les appels d'outils, requestParameters.params.arguments est toujours HIDDEN_DUE_TO_SECURITY_REASONS. Kiro n'inclut pas les résultats des outils dans l'événement. mcpEventDetails.sessionId correspond au requestID de l'événement.
Kiro ne consigne pas une requête rejetée comme mal formée avant son traitement, ni une requête qui ne nomme pas un profil Kiro utilisable. Si l'authentification échoue, userIdentity.type est Unknown. Dans cet événement, traitez les valeurs du compte et du profil comme des données non vérifiées de la requête.
Pour examiner le format complet des événements, consultez le contenu des enregistrements CloudTrail.
Journalisation des appels d'outils Kiro avec AWS CloudTrail