Collecte de données à partir de sources personnalisées - Amazon Security Lake

Amazon Security Lake est en version préliminaire. Votre utilisation de la version préliminaire d'Amazon Security Lake est soumise à la section 2 des Conditions de AWS service (« Bêtas et versions préliminaires »).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Collecte de données à partir de sources personnalisées

Amazon Security Lake peut collecter des journaux et des événements à partir de sources personnalisées tierces. Pour chaque source personnalisée, Security Lake gère les éléments suivants :

  • Fournit un préfixe unique pour la source dans votre compartiment Amazon S3.

  • Crée un rôle dansAWS Identity and Access Management (IAM) qui permet à une source personnalisée d'écrire des données dans le lac de données. La limite des autorisations pour ce rôle est définie par une politiqueAWS gérée appelée AmazonSecurityLakePermissionsBoundary.

  • Crée un rôle IAM qui permet aux abonnés d'accéder au lac de données, y compris aux données provenant de sources personnalisées.

  • Crée unAWS Lake Formation tableau pour organiser les objets que la source écrit dans Security Lake.

  • Configure unAWS Glue robot d'exploration pour partitionner vos données sources. Le robot d'explorationAWS Glue Data Catalog remplit le tableau. Il découvre également automatiquement les nouvelles données sources et extrait les définitions de schéma.

Pour ajouter une source personnalisée à Security Lake, celle-ci doit répondre aux exigences suivantes :

  1. Destination : la source personnalisée doit être capable d'écrire des données dans Security Lake sous la forme d'un ensemble d'objets S3 sous le préfixe attribué à la source. Pour les sources qui contiennent plusieurs catégories de données, vous devez fournir chaque classe d'événements unique de l'Open Cybersecurity Schema Framework (OCSF) en tant que source distincte. Security Lake crée un rôle IAM qui permet à la source personnalisée d'écrire à l'emplacement spécifié dans votre compartiment S3.

    Note

    Utilisez l'outil de validation OCSF pour vérifier si la source personnalisée est compatible avec le schéma OCSF 1.0.0-rc.2.

  2. Format : chaque objet S3 collecté à partir de la source personnalisée doit être formaté en tant que fichier Apache Parquet.

  3. Schéma — La même classe d'événements OCSF doit s'appliquer à chaque enregistrement au sein d'un objet au format Parquet.

Bonnes pratiques pratiques pratiques pratiques pratiques pratiques pratiques pratiques pratiques pratiques pratiques relatives à l'ingestion

Pour faciliter le traitement des données et les requêtes efficaces, nous vous recommandons de suivre les meilleures pratiques suivantes lors de l'ajout d'une source personnalisée à Security Lake :

Partitionnement

Les objets doivent être partitionnés par emplacement sourceRégion AWS,Compte AWS, et horodatage. Le chemin des données de la partition est formaté comme suitsource location/region=region/accountId=accountID/eventHour=yyyyMMddHH.

Un exemple de partition estexample-prefix/region=us-west-2/accountId=123456789012/eventHour=2022072112/.

  • source locationest le préfixe de la source personnalisée dans votre compartiment Amazon S3. Security Lake stocke tous les objets S3 d'une source donnée sous ce préfixe, qui est propre à la source donnée.

  • regionest celui dansRégion AWS lequel les données sont écrites.

  • accountIdest l'Compte AWSID auquel se rapportent les enregistrements de la partition source.

  • eventHourest l'horodatage UTC de l'enregistrement, tronqué à l'heure et formaté sous la forme d'une chaîne de 10 caractères (yyyyMMddHH). Si l'horodatage des événements des objets reflète un fuseau horaire différent, vous devez convertir l'horodatage en UTC pour cette clé de partition.

Taille et fréquence de l'objet

Les objets écrits dans Security Lake doivent mettre les enregistrements en mémoire tampon pendant 5 minutes. Si la période de mémoire tampon contient trop de données pour être interrogées efficacement, les sources personnalisées peuvent enregistrer plusieurs enregistrements dans la fenêtre de 5 minutes, à condition que la taille moyenne de ces fichiers reste inférieure à 256 Mo. Les sources personnalisées à faible débit peuvent écrire des objets plus petits toutes les 5 minutes afin de maintenir une latence d'ingestion de 5 minutes, et peuvent mettre des enregistrements en mémoire tampon pendant de plus longues périodes.

Réglages de parquet

Security Lake prend en charge les versions 1.x et 2.x de Parquet. La taille de la page de données doit être limitée à 1 Mo (non compressée). La taille du groupe de lignes ne doit pas dépasser 256 Mo (compressé). Pour la compression au sein de l'objet Parquet, Zstandard est préférable.

Tri

Dans chaque objet au format Parquet, les enregistrements doivent être classés par ordre chronologique afin de réduire les coûts liés à l'interrogation des données.

Conditions préalables à l'ajout d'une source personnalisée

Lors de l'ajout d'une source personnalisée, Security Lake crée un rôle IAM qui permet à la source d'écrire des données à l'emplacement approprié dans le lac de données. Le nom du rôle suit le formatAmazonSecurityLake-Provider-{name of the custom source}-{region}, où seregion trouve le formatRégion AWS dans lequel vous ajoutez la source personnalisée. Security Lake attache une politique au rôle qui autorise l'accès au lac de données. Si vous avez chiffré le lac de données à l'aide d'uneAWS KMS clé gérée par le client, Security Lake associe également une politiquekms:Decrypt etkms:GenerateDataKey des autorisations au rôle. La limite des autorisations pour ce rôle est définie par une politiqueAWS gérée appelée AmazonSecurityLakePermissionsBoundary.

Avant d'ajouter une source personnalisée, vous devez remplir les conditions préalables suivantes.

1. Créez un rôle IAM pour appeler leAWS Glue robot d'exploration

Ce rôle IAMAWS Glue autorise l'exploration de vos données sources personnalisées et l'identification des partitions dans les données. Ces partitions sont nécessaires pour organiser vos données et créer et mettre à jour des tables dans le catalogue de données.

Note

Security Lake crée ce rôle IAM ou utilise un rôle existant en votre nom lorsque vous utilisez la console Security Lake. Toutefois, vous devez créer ce rôle lorsque vous utilisez l'API Security Lake ouAWS CLI.

Après avoir créé ce rôle IAM, vous aurez besoin de l'Amazon Resource Name (ARN) du rôle pour pouvoir ajouter une source personnalisée.

Pour accorder les autorisations nécessaires, créez un rôle IAM et associez-y la politiqueAWS AWSGlueServiceRolegérée. Vous devez également créer et intégrer la politique en ligne suivante dans votre rôle pour permettre à Amazon S3 de lire les données de la source personnalisée et de les écrire dans le lac de données :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3WriteRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::aws-security-data-lake-{region}-xxxx/*" ] } ] }

Attachez la stratégie de confiance suivante au rôle pourAWS Glue permettre d'assumer le rôle :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Si le compartiment S3 de la région dans laquelle vous ajoutez la source personnalisée est chiffré et qu'il est géré par un clientAWS KMS key, vous devez également associer la politique suivante au rôle et à votre politique de clé KMS :

{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" "kms:Decrypt" ], "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::{{name of bucket created by Security Lake}" ] } }, "Resource": [ "{{ARN of customer managed key}}" ] }

2. Vérifier les autorisations

Avant d'ajouter une source personnalisée, vérifiez que vous êtes autorisé à effectuer les actions suivantes.

Pour vérifier vos autorisations, utilisez IAM pour consulter les politiques IAM associées à votre identité IAM. Comparez ensuite les informations contenues dans ces politiques à la liste suivante d'actions que vous devez être autorisé à effectuer pour ajouter une source personnalisée.

  • glue:CreateCrawler

  • glue:CreateDatabase

  • glue:CreateTable

  • glue:StartCrawlerSchedule

  • iam:GetRole

  • iam:PutRolePolicy

  • iam:DeleteRolePolicy

  • iam:PassRole

  • lakeformation:RegisterResource

  • lakeformation:GrantPermissions

  • s3:ListBucket

  • s3:PutObject

Ces actions vous permettent de collecter des journaux et des événements à partir d'une source personnalisée, de les envoyer vers laAWS Glue base de données et la table appropriées, et de les stocker dans Amazon S3.

Si vous utilisez uneAWS KMS clé pour le chiffrement côté serveur de votre lac de données, vous devez également disposer d'une autorisation pourkms:CreateGrantkms:DescribeKey, etkms:GenerateDataKey.

Ajout d'une source personnalisée

Après avoir créé le rôle IAM pour appeler leAWS Glue robot d'exploration, procédez comme suit pour ajouter une source personnalisée dans Security Lake.

Note

Avant d'appeler l'CreateCustomLogSourceAPI, vous devez disposer des autorisations nécessairesAWS Lake Formation pour créer desAWS Glue bases de données et des tables. Pour plus d'informations, consultez la section Octroi et révocation d'autorisations à l'aide de la méthode de ressource nommée dans le Guide duAWS Lake Formation développeur.

Console
  1. Ouvrez la console Security Lake à l'adresse https://console.aws.amazon.com/securitylake/.

  2. À l'aide duRégion AWS sélecteur dans l'angle supérieur droit de la page, choisissez la région dans laquelle vous souhaitez créer la source personnalisée.

  3. Choisissez Sources personnalisées dans le volet de navigation, puis choisissez Créer une source personnalisée.

  4. Dans la section Détails de la source personnalisée, entrez un nom régional unique pour votre source personnalisée. Sélectionnez ensuite une classe d'événements OCSF qui décrit le type de données que la source personnalisée enverra à Security Lake.

  5. Dans le Compte AWScas où vous êtes autorisé à écrire des données, entrez l'ID de compte de la source personnalisée qui enregistrera les journaux et les événements dans le lac de données.

  6. Pour Service Access, créez un nouveau rôle IAM ou utilisez un rôle IAM existant qui autorise Security Lake à invoquer le journalAWS Glue de suivi.

  7. Sélectionnez Create (Créer).

API
  1. Exécutez CreateCustomLogSourceà partir de la région dans laquelle vous souhaitez créer la source personnalisée.

  2. Fournissez une valeur unique au niveau régional pourcustomSourceName, et poureventClass, fournissez une classe d'événements OCSF qui décrit le type de données que la source personnalisée enverra à Security Lake.

  3. PourglueInvocationRoleArn, fournissez l'ARN du rôle IAM que vous avez créé pour appeler leAWS Glue robot d'exploration.

  4. PourlogProviderAccountId, fournissez l'Compte AWSID de la source personnalisée qui écrira les journaux et les événements dans le lac de données.

AWS CLI
  1. Exécutez lacreate-custom-log-source commande à partir de la région dans laquelle vous souhaitez créer la source personnalisée.

    aws securitylake create-custom-log-source --custom-source-name {source-name} --event-class {ocsf-event-name} --glue-invocation-role-arn {roleArn} --log-provider-account-id {accountId}
  2. Fournissez une valeur unique au niveau régional pourcustom-source-name, et pourevent-class, fournissez une classe d'événements OCSF qui décrit le type de données que la source personnalisée enverra à Security Lake.

  3. Pourglue-invocation-role-arn, fournissez l'ARN du rôle IAM que vous avez créé pour appeler leAWS Glue robot d'exploration.

  4. Pourlog-provider-account-id, fournissez l'Compte AWSID de la source personnalisée qui écrira les journaux et les événements dans le lac de données.

    Exemple de commande pour créer une source personnalisée :

    aws securitylake create-custom-log-source --custom-source-name EXAMPLE_CUSTOM_SOURCE --event-class DNS_ACTIVITY --glue-invocation-role-arn arn:aws:iam::123456789012:role/SecurityLake_GlueInvocationRole_eu_central_1 --log-provider-account-id 123456789012

Suppression d'une source personnalisée

Supprimez une source personnalisée pour arrêter d'envoyer des données de cette source à Security Lake.

Console
  1. Ouvrez la console Security Lake à l'adresse https://console.aws.amazon.com/securitylake/.

  2. À l'aide duRégion AWS sélecteur dans l'angle supérieur droit de la page, choisissez la région pour laquelle vous souhaitez supprimer la source personnalisée.

  3. Dans le panneau de navigation, choisissez Bonnes pratiques pratiques pratiques.

  4. Sélectionnez la source personnalisée que vous souhaitez supprimer.

  5. Choisissez Désenregistrer la source personnalisée.

API
  1. Exécutez DeleteCustomLogSourceà partir de la région dont vous souhaitez supprimer la source personnalisée.

  2. IndiquezcustomSourceName la source que vous souhaitez supprimer.

AWS CLI
  1. Exécutez ladelete-custom-log-source commande à partir de la région pour laquelle vous souhaitez supprimer la source personnalisée.

  2. Indiquezcustom-source-name la source que vous souhaitez supprimer.

    aws securitylake delete-custom-log-source --custom-source-name {source-name}