Protokollieren von API-Aufrufen von Amazon Q Developer mithilfe von AWS CloudTrail - Amazon Q Developer

Protokollieren von API-Aufrufen von Amazon Q Developer mithilfe von AWS CloudTrail

Amazon Q Developer Pro ist in AWS CloudTrail integriert, einem Service, der die Aktionen eines Benutzers, einer Rolle oder eines AWS-Service in Amazon Q aufzeichnet. CloudTrail erfasst alle API-Aufrufe für Amazon Q als Ereignisse. Zu den erfassten Aufrufen gehören Aufrufe von der Amazon-Q-Konsole und Code-Aufrufe der Amazon-Q-API-Operationen. Wenn Sie einen Trail erstellen, können Sie die fortlaufende Übermittlung von CloudTrail-Ereignissen an einen Amazon-S3-Bucket aktivieren, einschließlich Ereignissen für Amazon Q. Wenn Sie keinen Trail konfigurieren, können Sie dennoch die neuesten Ereignisse in der CloudTrail-Konsole unter Ereignisverlauf anzeigen. Anhand der von CloudTrail gesammelten Informationen können Sie die an Amazon Q gestellte Anfrage, die IP-Adresse, von der die Anfrage gestellt wurde, wer die Anfrage gestellt hat, wann sie gestellt wurde, sowie weitere Details ermitteln.

Weitere Informationen über CloudTrail finden Sie im AWS CloudTrail-Leitfaden.

Informationen von Amazon Q Developer in CloudTrail

CloudTrail wird beim Erstellen Ihres AWS-Konto für Sie aktiviert. Wenn in Amazon Q Developer eine Aktivität auftritt, wird sie in einem CloudTrail-Ereignis zusammen mit anderen AWS-Service-Ereignissen im Ereignisverlauf aufgezeichnet. Sie können die neusten Ereignisse in Ihr(em) AWS-Konto anzeigen, suchen und herunterladen. Weitere Informationen finden Sie unter Anzeigen von Ereignissen mit dem CloudTrail-Ereignisverlauf im AWS CloudTrail-Benutzerhandbuch.

Für eine fortlaufende Aufzeichnung der Ereignisse in Ihrem AWS-Konto, darunter Ereignisse für Amazon Q, können Sie einen Pfad (Trail) erstellen. Ein Trail ermöglicht es CloudTrail, Protokolldateien in einem Amazon-S3-Bucket bereitzustellen. Wenn Sie einen Trail in der Konsole anlegen, gilt dieser für alle AWS-Regionen-Regionen. Der Trail protokolliert Ereignisse aus allen Regionen in der AWS-Partition und stellt die Protokolldateien in dem von Ihnen angegebenen Amazon-S3-Bucket bereit. Darüber hinaus können Sie andere AWS-Services konfigurieren, um die in den CloudTrail-Protokollen erfassten Ereignisdaten weiter zu analysieren und entsprechend zu agieren. Weitere Informationen finden Sie in folgenden Themen im AWS CloudTrail-Benutzerhandbuch:

Alle Aktionen von Amazon Q Developer werden von CloudTrail protokolliert und generieren Einträge in den CloudTrail-Protokolldateien.

Jeder Ereignis- oder Protokolleintrag enthält Informationen zu dem Benutzer, der die Anforderung generiert hat. Anhand der Identitätsinformationen zur Benutzeridentität können Sie Folgendes bestimmen:

  • Ob die Anfrage mit Root- oder AWS Identity and Access Management (IAM)-Benutzer-Anmeldeinformationen ausgeführt wurde.

  • Ob die Anfrage mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen föderierten Benutzer ausgeführt wurde

  • Ob die Anforderung von einem anderen AWS-Service gesendet wurde

Weitere Informationen erhalten Sie unter CloudTrail-userIdentity-Element im Benutzerhandbuch für AWS CloudTrail.

Grundlegendes zu den Protokolldateieinträgen von Amazon Q Developer

Ein Trail ist eine Konfiguration, durch die Ereignisse als Protokolldateien an den von Ihnen angegebenen Amazon-S3-Bucket übermittelt werden. CloudTrail-Protokolldateien können einen oder mehrere Einträge enthalten. Ein Ereignis stellt eine einzelne Anforderung aus einer beliebigen Quelle dar und enthält unter anderem Informationen über die angeforderte Aktion, das Datum und die Uhrzeit der Aktion sowie über die Anforderungsparameter. CloudTrail-Protokolldateien sind keine geordnete Stack-Verfolgung der öffentlichen API-Aufrufe und werden daher nicht in einer bestimmten Reihenfolge angezeigt.

Amazon Q Developer führt auch API-Aufrufe mit einem dryRun-Parameter durch, um zu überprüfen, ob Sie über die erforderlichen Berechtigungen für die Aktion verfügen, ohne die Anfrage tatsächlich zu stellen. Aufrufe von Amazon Q Developer APIs mit dem dryRun-Parameter werden als Ereignisse erfasst und in einem CloudTrail-Protokoll mit "dryRun" : true im Feld requestParameters aufgezeichnet.

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der die Aktion SendMessage demonstriert.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAXD12ABCDEF3G4HI5J:aws-user", "arn": "arn:aws:sts::123456789012:assumed-role/PowerUser/aws-user", "accountId": "123456789012", "accessKeyId": "ASIAAB12CDEFG34HIJK", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAXD12ABCDEF3G4HI5J", "arn": "arn:aws:iam::123456789012:role/PowerUser", "accountId": "123456789012", "userName": "PowerUser" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-11-28T10:00:00Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-11-28T10:00:00Z", "eventSource": "q.amazonaws.com", "eventName": "SendMessage", "awsRegion": "us-east-1", "sourceIPAddress": "123.456.789.012", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0", "requestParameters": { "Origin": "https://conversational-experience-worker.widget.console.aws.amazon.com", "conversationId": "a298ec0d-0a49-4d2e-92bd-7d6e629b4619", "source": "CONSOLE", "conversationToken": "***", "utterance": "***" }, "responseElements": { "result": { "content": { "text": { "body": "***", "references": [] } }, "format": "PLAINTEXT", "intents": {}, "type": "TEXT" }, "Access-Control-Expose-Headers": "x-amzn-RequestId,x-amzn-ErrorType,x-amzn-ErrorMessage,Date", "metadata": { "conversationExpirationTime": "2024-02-25T19:31:38Z", "conversationId": "a298ec0d-0a49-4d2e-92bd-7d6e629b4619", "conversationToken": "***", "utteranceId": "3b87b46f-04a9-41ef-b8fe-8abf52d2c053" }, "resultCode": "LLM" }, "additionalEventData": { "quickAction": "dev" }, "requestID": "19b3c30e-906e-4b7f-b5c3-509f67248655", "eventID": "a552c487-7d97-403a-8ec4-d49539c7a03d", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der die Aktion PassRequest demonstriert.

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AIDA6ON6E4XEGIEXAMPLE", "arn": "arn:aws:iam::555555555555:user/Mary", "accountId": "555555555555", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDA6ON6E4XEGIEXAMPLE", "arn": "arn:aws:iam::555555555555:user/Mary", "accountId": "555555555555", "userName": "Mary" }, "attributes": { "creationDate": "2024-04-10T20:03:01Z", "mfaAuthenticated": "false" }, "invokedBy": "q.amazonaws.com" }, "eventTime": "2024-04-10T20:04:42Z", "eventSource": "q.amazonaws.com", "eventName": "PassRequest", "awsRegion": "us-east-1", "sourceIPAddress": "q.amazonaws.com", "userAgent": "q.amazonaws.com", "requestParameters": null, "responseElements": null, "requestID": "2d528c76-329e-410b-9516-EXAMPLE565dc", "eventID": "ba0801a1-87ec-4d26-be87-EXAMPLE75bbb", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "555555555555", "eventCategory": "Management" }

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der demonstriert, wie Amazon Q die Aktion s3:ListBuckets in Ihrem Namen aufruft.

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AIDA6ON6E4XEGIEXAMPLE", "arn": "arn:aws:iam::555555555555:user/Paulo", "accountId": "555555555555", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDA6ON6E4XEGIEXAMPLE", "arn": "arn:aws:iam::555555555555:user/Paulo", "accountId": "555555555555", "userName": "Paulo" }, "attributes": { "creationDate": "2024-04-10T14:06:08Z", "mfaAuthenticated": "false" } }, "invokedBy": "q.amazonaws.com" }, "eventTime": "2024-04-10T14:07:55Z", "eventSource": "s3.amazonaws.com", "eventName": "ListBuckets", "awsRegion": "us-east-1", "sourceIPAddress": "q.amazonaws.com", "userAgent": "q.amazonaws.com", "requestParameters": { "Host": "s3.amazonaws.com" }, "responseElements": null, "additionalEventData": { "SignatureVersion": "SigV4", "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256", "bytesTransferredIn": 0, "AuthenticationMethod": "AuthHeader", "x-amz-id-2": "ExampleRequestId123456789", "bytesTransferredOut": 4054 }, "requestID": "ecd94349-b36f-44bf-b6f5-EXAMPLE9c463", "eventID": "2939ba50-1d26-4a5a-83bd-EXAMPLE85850", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "555555555555", "vpcEndpointId": "vpce-EXAMPLE1234", "eventCategory": "Management" }