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

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 dans Security Lake

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 opérations suivantes :

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

  • Crée un rôle dans AWS 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 politique AWS gérée appelée AmazonSecurityLakePermissionsBoundary.

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

  • Configure un AWS Glue robot d'exploration pour partitionner vos données sources. Le robot d'exploration remplit le AWS Glue Data Catalog avec 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 contenant plusieurs catégories de données, vous devez fournir chaque classe d'événements Open Cybersecurity Schema Framework (OCSF) unique en tant que source distincte. Security Lake crée un IAM rôle qui permet à la source personnalisée d'écrire à l'emplacement spécifié dans votre compartiment S3.

    Note

    Utilisez l'outil de OCSF validation pour vérifier si la source personnalisée est compatible avecOCSF Schema 1.1.

  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 OCSF d'événement doit s'appliquer à chaque enregistrement d'un objet au format Parquet.

Bonnes pratiques pour l'ingestion de sources personnalisées dans Security Lake

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 en fonction de l'emplacement de la source, Région AWS Compte AWS, et de la date.

  • Le chemin des données de partition est formaté comme suit

    bucket-name/ext/custom-source-name/region=region/accountId=accountID/eventDay=YYYYMMDD.

    Un exemple de partition estaws-security-data-lake-us-west-2-lake-uid/ext/custom-source-name/region=us-west-2/accountId=123456789012/eventDay=20230428/.

  • Si vous avez ajouté une version source à une source personnalisée, le chemin des données de partition est formaté comme suit

    bucket-name/ext/custom-source-name/custom-source-version/region=us-west-2/accountId=123456789012/eventDay=20230428/

    Un exemple de partition qui inclut la version source estaws-security-data-lake-us-west-2-lake-uid/ext/custom-source-name/2.0/region=us-west-2/accountId=123456789012/eventDay=20230428/.

La liste suivante décrit les paramètres utilisés dans la partition.

  • bucket-name— Le nom du compartiment Amazon S3 dans lequel Security Lake stocke vos données source personnalisées.

  • source-location— Préfixe pour la source personnalisée dans votre compartiment S3. Security Lake stocke tous les objets S3 d'une source donnée sous ce préfixe, et le préfixe est unique à la source donnée.

  • source-version— Version source de la source personnalisée.

  • region— Région AWS dans lequel les données sont écrites.

  • accountId— Compte AWS Identifiant auquel se rapportent les enregistrements de la partition source.

  • eventDay— Date à laquelle l'événement s'est produit, sous la forme d'une chaîne de huit caractères (YYYYMMDD).

Taille et débit de l'objet

Les fichiers envoyés à Security Lake doivent être envoyés par tranches entre 5 minutes et 1 jour d'événement. Les clients peuvent envoyer des fichiers plus de 5 minutes si la taille des fichiers est supérieure à 256 Mo. L'objet et la taille requis visent à optimiser le lac de sécurité pour les performances des requêtes. Le non-respect des exigences relatives aux sources personnalisées peut avoir un impact sur les performances de votre Security Lake.

Réglages du 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, il est préférable d'utiliser zstandard.

Tri

Dans chaque objet au format Parquet, les enregistrements doivent être classés par ordre chronologique afin de réduire le coût des requêtes de données.

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

Lors de l'ajout d'une source personnalisée, Security Lake crée un IAM rôle qui permet à la source d'écrire les données au bon emplacement dans le lac de données. Le nom du rôle suit le formatAmazonSecurityLake-Provider-{name of the custom source}-{region}, où region est celui Région AWS dans lequel vous ajoutez la source personnalisée. Security Lake associe 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'une AWS KMS clé gérée par le client, Security Lake associe également une politique kms:Decrypt et kms:GenerateDataKey des autorisations au rôle. La limite des autorisations pour ce rôle est définie par une politique AWS gérée appelée AmazonSecurityLakePermissionsBoundary.

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 cette option IAM pour consulter les IAM politiques associées à votre IAM identité. Comparez ensuite les informations contenues dans ces politiques à la liste suivante des actions que vous devez être autorisé à effectuer pour ajouter une source personnalisée.

  • glue:CreateCrawler

  • glue:CreateDatabase

  • glue:CreateTable

  • glue:StopCrawlerSchedule

  • 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 la AWS Glue base de données et la table appropriées, et de les stocker dans Amazon S3.

Si vous utilisez une AWS KMS clé pour le chiffrement côté serveur de votre lac de données, vous devez également obtenir une autorisation pour kms:CreateGrantkms:DescribeKey, et. kms:GenerateDataKey

Important

Si vous prévoyez d'utiliser la console Security Lake pour ajouter une source personnalisée, vous pouvez ignorer l'étape suivante et passer àAjouter une source personnalisée dans Security Lake. La console Security Lake propose un processus de démarrage simplifié et crée tous les IAM rôles nécessaires ou utilise les rôles existants en votre nom.

Si vous prévoyez d'utiliser Security Lake API ou d' AWS CLI ajouter une source personnalisée, passez à l'étape suivante pour créer un IAM rôle permettant l'accès en écriture à l'emplacement du bucket Security Lake.

Créer un IAM rôle pour autoriser l'accès en écriture à l'emplacement du bucket Security Lake (APIet étape AWS CLI uniquement)

Si vous utilisez Security Lake API ou si vous AWS CLI souhaitez ajouter une source personnalisée, ajoutez ce IAM rôle pour AWS Glue autoriser l'analyse de vos données source 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.

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

Vous devez joindre la politique arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole AWS gérée.

Pour accorder les autorisations nécessaires, vous devez également créer et intégrer la politique en ligne suivante dans votre rôle afin de permettre AWS Glue crawler de lire les fichiers de données à partir de la source personnalisée et de créer/mettre à jour les tables dans le catalogue de données. AWS Glue

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

Joignez la politique de confiance suivante pour autoriser et en Compte AWS utilisant laquelle, il peut assumer le rôle en fonction de l'ID externe :

{ "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é à l'aide d'un compartiment géré par le client AWS KMS key, vous devez également associer la politique suivante au rôle et à votre politique KMS clé :

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