Aller au contenu principal

AWS CloudTrail

info

Aperçu

Lakewatch est en aperçu privé. Pour demander l’accès, contactez l’équipe de votre compte Databricks.

Présentation​

AWS CloudTrail enregistre l'activité des comptes et l'utilisation des API dans votre infrastructure AWS. Lakewatch importe les logs CloudTrail à partir du stockage cloud (Amazon S3) à l'aide d'Auto Loader et les schématise à l'aide de parsers intégrés. CloudTrail est une source de stockage cloud, pas un connecteur d'API.

Intégrer les logs CloudTrail​

Pour ingérer CloudTrail, créez une source de données de stockage cloud qui lit vos logs CloudTrail à partir d’Amazon S3 et associez l’analyseur intégré qui correspond aux objets CloudTrail que vous ingérez afin que les événements soient écrits dans une table analysée schématisée. Pour les prérequis, l’accès à Unity Catalog et les étapes complètes de configuration de la source de données, voir Stockage cloud.

Schéma et observables analysés​

CloudTrail fournit trois types d'objets à Amazon S3, et Lakewatch fournit un parser intégré pour chacun d'entre eux. Attachez le parser qui correspond aux objets ingérés par votre source de données :

  • aws_cloudtrail : Événements standard de gestion CloudTrail, de données et d'activité réseau.
  • aws_cloudtrail_digest : fichiers de synthèse, qui répertorient les fichiers de logs délivrés au cours de l'heure précédente avec des valeurs de hachage pour la validation de l'intégrité des fichiers de logs.
  • aws_cloudtrail_insight : Événements CloudTrail Insights, qui enregistrent des activités inhabituelles sur le taux d'appel aux API.

Chaque table analysée porte également les colonnes gérées par Lakewatch :

  • lw_id: Chaîne non nulle utilisée par Lakewatch comme clé primaire, prenant en charge la déduplication lors des lectures incrémentielles.
  • time: un timestamp d'événement non nul.
  • lw_meta: Métadonnées de traitement Lakewatch standard.
  • lw_observables: valeurs extraites de champs marqués comme observables de sécurité dans l’analyseur.

Pour plus d’information, consultez la référence de l'analyseur.

aws_cloudtrail​

Schématise les événements CloudTrail standard. Analyse time du champ eventTime.

Schéma de table analysé

L’analyseur aws_cloudtrail écrit les colonnes suivantes (générées à partir de la définition de l’analyseur) :

Colonne

Type de données

additionalEventData

VARIANT

apiVersion

STRING

awsRegion

STRING

errorCode

STRING

errorMessage

STRING

eventID

STRING

eventName

STRING

eventSource

STRING

time

TIMESTAMP

eventType

STRING

eventVersion

STRING

managementEvent

BOOLEAN

readOnly

BOOLEAN

recipientAccountId

STRING

requestID

STRING

requestParameters

VARIANT

resources

ARRAY<STRUCT<arn: STRING, accountId: STRING, type: STRING>>

responseElements

VARIANT

serviceEventDetails

VARIANT

sharedEventID

STRING

sourceIPAddress

STRING

userAgent

STRING

userIdentity

STRUCT<type: STRING, principalId: STRING, arn: STRING, accountId: STRING, accessKeyId: STRING, userName: STRING, sessionContext: STRUCT<attributes: STRUCT<mfaAuthenticated: STRING, creationDate: STRING>, sessionIssuer: STRUCT<type: STRING, principalId: STRING, arn: STRING, accountId: STRING, userName: STRING>, webIdFederationData: STRUCT<federatedProvider: STRING, attributes: VARIANT>, ec2RoleDelivery: STRING, sourceIdentity: STRING>, invokedBy: STRING, identityProvider: STRING, onBehalfOf: STRUCT<userId: STRING, identityStoreArn: STRING>, inScopeOf: STRUCT<sourceArn: STRING, sourceAccount: STRING, issuerType: STRING, credentialsIssuedTo: STRING>, credentialId: STRING>

vpcEndpointId

STRING

eventCategory

STRING

sessionCredentialFromConsole

BOOLEAN

edgeDeviceDetails

VARIANT

tlsDetails

STRUCT<tlsVersion: STRING, cipherSuite: STRING, clientProvidedHostHeader: STRING>

addendum

STRUCT<reason: STRING, updatedFields: STRING, originalRequestID: STRING, originalEventID: STRING>

Colonne

Type de données

additionalEventData

VARIANT

apiVersion

STRING

awsRegion

STRING

errorCode

STRING

errorMessage

STRING

eventID

STRING

eventName

STRING

eventSource

STRING

time

TIMESTAMP

eventType

STRING

eventVersion

STRING

managementEvent

BOOLEAN

readOnly

BOOLEAN

recipientAccountId

STRING

requestID

STRING

requestParameters

VARIANT

resources

ARRAY<STRUCT<arn: STRING, accountId: STRING, type: STRING>>

responseElements

VARIANT

serviceEventDetails

VARIANT

sharedEventID

STRING

sourceIPAddress

STRING

userAgent

STRING

userIdentity

STRUCT<type: STRING, principalId: STRING, arn: STRING, accountId: STRING, accessKeyId: STRING, userName: STRING, sessionContext: STRUCT<attributes: STRUCT<mfaAuthenticated: STRING, creationDate: STRING>, sessionIssuer: STRUCT<type: STRING, principalId: STRING, arn: STRING, accountId: STRING, userName: STRING>, webIdFederationData: STRUCT<federatedProvider: STRING, attributes: VARIANT>, ec2RoleDelivery: STRING, sourceIdentity: STRING>, invokedBy: STRING, identityProvider: STRING, onBehalfOf: STRUCT<userId: STRING, identityStoreArn: STRING>, inScopeOf: STRUCT<sourceArn: STRING, sourceAccount: STRING, issuerType: STRING, credentialsIssuedTo: STRING>, credentialId: STRING>

vpcEndpointId

STRING

eventCategory

STRING

sessionCredentialFromConsole

BOOLEAN

edgeDeviceDetails

VARIANT

tlsDetails

STRUCT<tlsVersion: STRING, cipherSuite: STRING, clientProvidedHostHeader: STRING>

addendum

STRUCT<reason: STRING, updatedFields: STRING, originalRequestID: STRING, originalEventID: STRING>

Observables d’analyseur

Le parser extrait les champs suivants dans lw_observables (générés à partir de la définition du parser) :

Champ

Observable

recipientAccountId

aws_account_id

resources[].arn

aws_arn

resources[].accountId

aws_account_id

sourceIPAddress

hostname

userIdentity.principalId

actor_id

userIdentity.arn

aws_arn

userIdentity.accountId

aws_account_id

userIdentity.accessKeyId

trace_id

userIdentity.userName

username

userIdentity.sessionContext.sessionIssuer.principalId

actor_id

userIdentity.sessionContext.sessionIssuer.arn

aws_arn

userIdentity.sessionContext.sessionIssuer.accountId

aws_account_id

userIdentity.sessionContext.sessionIssuer.userName

username

userIdentity.sessionContext.webIdFederationData.federatedProvider

aws_arn

userIdentity.onBehalfOf.identityStoreArn

aws_arn

userIdentity.inScopeOf.sourceArn

aws_arn

userIdentity.inScopeOf.sourceAccount

aws_account_id

Champ

Observable

recipientAccountId

aws_account_id

resources[].arn

aws_arn

resources[].accountId

aws_account_id

sourceIPAddress

hostname

userIdentity.principalId

actor_id

userIdentity.arn

aws_arn

userIdentity.accountId

aws_account_id

userIdentity.accessKeyId

trace_id

userIdentity.userName

username

userIdentity.sessionContext.sessionIssuer.principalId

actor_id

userIdentity.sessionContext.sessionIssuer.arn

aws_arn

userIdentity.sessionContext.sessionIssuer.accountId

aws_account_id

userIdentity.sessionContext.sessionIssuer.userName

username

userIdentity.sessionContext.webIdFederationData.federatedProvider

aws_arn

userIdentity.onBehalfOf.identityStoreArn

aws_arn

userIdentity.inScopeOf.sourceArn

aws_arn

userIdentity.inScopeOf.sourceAccount

aws_account_id

Les VARIANT champs suivants sont analysés à la recherche d’observables en faisant correspondre les noms de clés imbriqués. Les types d’observables extraits de chacun :

Champ

Types observables analysés

additionalEventData

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

requestParameters

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

responseElements

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

serviceEventDetails

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

userIdentity.sessionContext.webIdFederationData.attributes

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

Champ

Types observables analysés

additionalEventData

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

requestParameters

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

responseElements

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

serviceEventDetails

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

userIdentity.sessionContext.webIdFederationData.attributes

actor_id, aws_account_id, aws_arn, aws_instance_id, domain, ip, resource_tag, trace_id, username

aws_cloudtrail_digest​

Schématise les fichiers de synthèse CloudTrail, qui prennent en charge la validation de l'intégrité des fichiers de log. Analyse time du champ digestEndTime.

Schéma de table analysé

L’analyseur aws_cloudtrail_digest écrit les colonnes suivantes (générées à partir de la définition de l’analyseur) :

Colonne

Type de données

awsAccountId

STRING

digestStartTime

TIMESTAMP

digestS3Bucket

STRING

digestS3Object

STRING

newestEventTime

TIMESTAMP

oldestEventTime

TIMESTAMP

previousDigestS3Bucket

STRING

previousDigestS3Object

STRING

previousDigestHashValue

STRING

previousDigestHashAlgorithm

STRING

previousDigestSignature

STRING

digestPublicKeyFingerprint

STRING

digestSignatureAlgorithm

STRING

logFiles

ARRAY<STRUCT<s3Bucket: STRING, s3Object: STRING, hashValue: STRING, hashAlgorithm: STRING, newestEventTime: TIMESTAMP, oldestEventTime: TIMESTAMP>>

time

TIMESTAMP

Colonne

Type de données

awsAccountId

STRING

digestStartTime

TIMESTAMP

digestS3Bucket

STRING

digestS3Object

STRING

newestEventTime

TIMESTAMP

oldestEventTime

TIMESTAMP

previousDigestS3Bucket

STRING

previousDigestS3Object

STRING

previousDigestHashValue

STRING

previousDigestHashAlgorithm

STRING

previousDigestSignature

STRING

digestPublicKeyFingerprint

STRING

digestSignatureAlgorithm

STRING

logFiles

ARRAY<STRUCT<s3Bucket: STRING, s3Object: STRING, hashValue: STRING, hashAlgorithm: STRING, newestEventTime: TIMESTAMP, oldestEventTime: TIMESTAMP>>

time

TIMESTAMP

Observables d’analyseur

Le parser extrait les champs suivants dans lw_observables (générés à partir de la définition du parser) :

Champ

Observable

awsAccountId

aws_account_id

previousDigestHashValue

hash

logFiles[].hashValue

hash

Champ

Observable

awsAccountId

aws_account_id

previousDigestHashValue

hash

logFiles[].hashValue

hash

aws_cloudtrail_insight​

Schématise les événements CloudTrail insight, qui enregistrent les activités de taux d'appels d'API inhabituelles. Analyse time à partir du champ eventTime.

Schéma de table analysé

L’analyseur aws_cloudtrail_insight écrit les colonnes suivantes (générées à partir de la définition de l’analyseur) :

Colonne

Type de données

eventVersion

STRING

awsRegion

STRING

eventID

STRING

eventType

STRING

recipientAccountId

STRING

sharedEventID

STRING

insightDetails

STRUCT<state: STRING, eventSource: STRING, eventName: STRING, insightType: STRING, insightContext: STRUCT<statistics: STRUCT<baseline: STRUCT<average: DOUBLE>, insight: STRUCT<average: DOUBLE>, insightDuration: DOUBLE>>>

eventCategory

STRING

time

TIMESTAMP

Colonne

Type de données

eventVersion

STRING

awsRegion

STRING

eventID

STRING

eventType

STRING

recipientAccountId

STRING

sharedEventID

STRING

insightDetails

STRUCT<state: STRING, eventSource: STRING, eventName: STRING, insightType: STRING, insightContext: STRUCT<statistics: STRUCT<baseline: STRUCT<average: DOUBLE>, insight: STRUCT<average: DOUBLE>, insightDuration: DOUBLE>>>

eventCategory

STRING

time

TIMESTAMP

Observables d’analyseur

Le parser extrait les champs suivants dans lw_observables (générés à partir de la définition du parser) :

Champ

Observable

recipientAccountId

aws_account_id

sharedEventID

trace_id

Champ

Observable

recipientAccountId

aws_account_id

sharedEventID

trace_id