Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie verwende ich Athena, um meine CloudTrail-Protokolle nach AWS Support-API-Aufrufen abzufragen?
Ich möchte Amazon Athena-Abfragen ausführen, um meine AWS CloudTrail-Protokolle nach API-Aufrufen zu durchsuchen, die AWS Support an mein AWS-Konto getätigt hat.
Kurzbeschreibung
Um dir bei der Lösung deines Problems zu helfen, erfasst der AWS-Support möglicherweise sichere, schreibgeschützte Metadaten über deine AWS-Ressourcen. AWS Support verwendet eine mit dem AWS Identity and Access Management (IAM)-Service verknüpfte Rolle namens AWSServiceRoleForSupport, um die Metadaten zu erfassen.
Um Informationen zu den API-Aufrufen zu finden, die AWS Support an dein Konto tätigt, verwende Athena, um deine CloudTrail-Protokolle abzufragen.
Lösung
Verwende die Partitionsprojektion, um manuell eine CloudTrail-Tabelle zu erstellen
Selbst wenn du die CloudTrail-Tabelle partitionierst, um die Abfragelaufzeit zu reduzieren, können CloudTrail-Protokolle im Laufe der Zeit an Größe zunehmen. Abfragen, die du für eine stark partitionierte Tabelle ausführst, haben eine hohe Planungszeit und werden nicht schnell abgeschlossen.
Um die Abfragelaufzeiten zu reduzieren, verwende die Partitionsprojektion, um manuell eine CloudTrail-Tabelle zu erstellen.
Die folgende CREATE TABLE-Anweisung verwendet beispielsweise automatisch die Partitionsprojektion für CloudTrail-Logs innerhalb eines bestimmten Zeitraums in einer AWS-Region:
CREATE EXTERNAL TABLE cloudtrail_logs_pp( eventversion STRING, useridentity STRUCT< type: STRING, principalid: STRING, arn: STRING, accountid: STRING, invokedby: STRING, accesskeyid: STRING, username: STRING, onbehalfof: STRUCT< userid: STRING, identitystorearn: STRING>, sessioncontext: STRUCT< attributes: STRUCT< mfaauthenticated: STRING, creationdate: STRING>, sessionissuer: STRUCT< type: STRING, principalid: STRING, arn: STRING, accountid: STRING, username: STRING>, ec2roledelivery:string, webidfederationdata: STRUCT< federatedprovider: STRING, attributes: map<string,string>> > >, eventtime STRING, eventsource STRING, eventname STRING, awsregion STRING, sourceipaddress STRING, useragent STRING, errorcode STRING, errormessage STRING, requestparameters STRING, responseelements STRING, additionaleventdata STRING, requestid STRING, eventid STRING, readonly STRING, resources ARRAY<STRUCT< arn: STRING, accountid: STRING, type: STRING>>, eventtype STRING, apiversion STRING, recipientaccountid STRING, serviceeventdetails STRING, sharedeventid STRING, vpcendpointid STRING, vpcendpointaccountid STRING, eventcategory STRING, addendum STRUCT< reason:STRING, updatedfields:STRING, originalrequestid:STRING, originaleventid:STRING>, sessioncredentialfromconsole STRING, edgedevicedetails STRING, tlsdetails STRUCT< tlsversion:STRING, ciphersuite:STRING, clientprovidedhostheader:STRING> ) PARTITIONED BY ( `timestamp` string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://example-bucket/AWSLogs/account-id/CloudTrail/aws-region' TBLPROPERTIES ( 'projection.enabled'='true', 'projection.timestamp.format'='yyyy/MM/dd', 'projection.timestamp.interval'='1', 'projection.timestamp.interval.unit'='DAYS', 'projection.timestamp.range'='2020/01/01,NOW', 'projection.timestamp.type'='date', 'storage.location.template'='s3://example-bucket/AWSLogs/account-id/CloudTrail/aws-region/${timestamp}')
Hinweis: Ersetze in den Klauseln LOCATION und TBLPROPERTIES example-bucket durch deinen Bucket-Namen, account-id durch deine Konto-ID und aws-region durch deine Region. Ersetze für projection.timestamp.range 2020/01/01 durch dein Startdatum.
Gehe wie folgt vor, um die vorherige Abfrage auszuführen und eine partitionierte CloudTrail-Protokolltabelle zu erstellen:
- Öffne die Athena-Konsole.
- Wähle Neue Abfrage aus und wähle dann das Dialogfeld aus, um die Beispielabfrage zu löschen.
- Gib die vorhergehende Abfrage ein und wähle dann Abfrage ausführen aus.
Weitere Informationen findest du unter Tabelle für CloudTrail-Protokolle in Athena mithilfe der Partitionsprojektion erstellen.
Durchsuche die CloudTrail-Protokolltabelle nach AWS Support-API-Aufrufen
Im Folgenden findest du Beispielabfragen, mit denen du in der CloudTrail-Protokolltabelle nach AWS Support-Aurufen während eines bestimmten Zeitraums suchen kannst. In den Beispielen wird der Zeitraum 2025/01/01 bis 2025/01/07 als spezifizierter Zeitraum verwendet.
Hinweis: Ersetze in den folgenden Beispielabfragen default durch den Namen der Datenbank, in der du die Tabelle cloudtrail_logs_pp erstellt hast.
Zähle die Anzahl der AWS Support-API-Aufrufe
Die folgende Abfrage zählt die Gesamtzahl der API-Aufrufe, die AWS Support für dein Konto getätigt hat:
SELECT COUNT(*) FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND sourceipaddress = 'support.amazonaws.com'
Rufe alle AWS-Support-API-Aufrufe ab
Die folgende Abfrage zeigt alle API-Aufrufe, die AWS Support an dein Konto getätigt hat:
SELECT * FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND sourceipaddress = 'support.amazonaws.com' LIMIT 10
Zähle die Anzahl der AWS Support-API-Aufrufe nach Benutzername und Ereignisquelle
Die folgende Abfrage zeigt die Gesamtzahl der API-Aufrufe für jeden Benutzernamen und jede Ereignisquelle, die AWS Support für dein Konto getätigt hat:
SELECT useridentity.sessioncontext.sessionissuer.username, eventsource, COUNT(*) AS number_of_event FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND sourceipaddress = 'support.amazonaws.com' GROUP BY useridentity.sessioncontext.sessionissuer.username, eventsource ORDER BY number_of_event DESC
Rufe die ARNs für API-Aufrufe ab, die AWS Support für dein Konto getätigt hat
Die folgende Abfrage zeigt den ARN für alle API-Aufrufe, die AWS Support an dein Konto getätigt hat:
SELECT useridentity.arn FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND regexp_like(useridentity.arn, 'AWSServiceRoleForSupport') LIMIT 10
Rufe die Prinzipal-IDs für API-Aufrufe ab, die AWS Support für dein Konto getätigt hat
Die folgende Abfrage zeigt die Prinzipal-IDs für alle API-Aufrufe, die AWS Support an dein Konto getätigt hat:
SELECT useridentity.principalid FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND regexp_like(useridentity.arn, 'AWSServiceRoleForSupport') LIMIT 10
Ähnliche Informationen
Hinzufügen und Entfernen von IAM-Identitätsberechtigungen
- Sprache
- Deutsch
