Collecte de données à partir de sources personnalisées - 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

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 à l'Amazon S3 à l'Amazon Resource Name (3) à l'Amazon S3.

  • Crée un rôle à l'étape suivante :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 unAWSpolitique gérée appeléeAmazonSecurityLakePermissionsBoundary.

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

  • Configure unAWS Gluecrawler pour partitionner vos données sources. Le crawler remplit leAWS Glue Data Catalogavec la table. 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, vous aurez besoin de l'Amazon Resource Name à l'étape suivante :

  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 chacune d'entre elles de manière uniqueClasse d'événement 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 leOutil de validation de l'OCSFpour vérifier si la source personnalisée est compatible avec le schéma OCSF 1.0.0-rc.2.

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

Bonnes pratiques d'ingestion de sources personnalisées

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 source,Région AWS,Compte AWS, et la date. Le chemin des données de partition est formaté comme suitbucket-name/source-location/region=region/accountId=accountID/eventDay=YYYYMMDD.

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

  • bucket-name— Nom d'Amazon S3 dans lequel Resource Name l'Amazon Resource Name (ARN) de l'Amazon Resource Name (ARN) de l'Amazon Resource Name (3) de l'Amazon Resource

  • 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.

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

  • accountId—Compte AWSIdentifiant 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 objets écrits dans Security Lake doivent mettre les enregistrements en mémoire tampon pendant 5 minutes. Si la période tampon inclut trop de données pour être interrogées efficacement, les sources personnalisées peuvent écrire 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 les enregistrements en mémoire tampon pendant de plus longues périodes.

Réglages de parquet

Security Lake est compatible avec 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

Lors de l'ajout d'une source personnalisée, Security Lake crée un rôle IAM 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ùregionest leRégion AWSdans 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 avec un client géréAWS KMSclé, Security Lake attache également une politique aveckms:Decryptetkms:GenerateDataKeyautorisations d'accès au rôle à jouer. La limite des autorisations pour ce rôle est définie par unAWSpolitique gérée appeléeAmazonSecurityLakePermissionsBoundary.

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 passer en revue les politiques IAM associées à votre identité IAM. 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:StopCrawler

  • glue:CreateDatabase

  • glue:CreateTable

  • glue:StartCrawlerSchedule

  • 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 et de les envoyer à la bonne adresseAWS Gluebase de données et table, et vous devez les stocker dans l'Amazon S3.

Si vous aurez besoin d'AmazonAWS KMSclé pour le chiffrement côté serveur de votre lac de données, vous devez également obtenir une autorisation pourkms:CreateGrant,kms:DescribeKey, etkms:GenerateDataKey.

Important

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

Si vous prévoyez d'utiliser l'API Security Lake ouAWS CLIpour ajouter un abonné, passez à l'étape suivante pour créer un rôle IAM afin d'autoriser l'accès en écriture à l'emplacement du bucket de Security Lake.

Créez un rôle IAM pour autoriser l'accès en écriture à l'emplacement du bucket (API) de Security Lake etAWS CLI-étape uniquement)

Si vous utilisez l'API Security Lake ouAWS CLIpour ajouter une source personnalisée, vous devez fournir l'autorisation d'Amazon à fournirAWS Glueautorisation d'explorer vos données source personnalisées et d'identifier les 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éé le rôle IAM, vous aurez besoin d'Amazon Resource Name (ARN) du rôle à l'étape que vous venez de créer.

Vous devez joindre learn:aws:iam::aws:policy/service-role/AWSGlueServiceRole AWSpolitique 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 permettreAWS Glue crawlerpour lire les fichiers de données à partir de la source personnalisée et créer/mettre à jour les tables dansAWS GlueCatalogue de données.

{ "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 unCompte AWSen utilisant lequel, 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 système géré par le clientAWS KMS key, vous devez également fournir l'Amazon Resource Name à l'étape suivante à l'étape suivante à l'étape suivante :

{ "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}}" ] }

Ajouter une source personnalisée

Après avoir créé le rôle IAM pour invoquerAWS Gluecrawler, suivez ces étapes pour ajouter une source personnalisée dans Security Lake.

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

  2. En utilisant leRégion AWSsélecteur dans l'angle supérieur droit de la page, vous aurez besoin de créer la source personnalisée.

  3. ChoisissezSources personnaliséesdans le volet de navigation, puis choisissezCréer une source personnalisée.

  4. Dans leDétails de la source personnaliséesection, vous devez fournir un nom unique à l'échelle mondiale à 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. PourCompte AWSavec autorisation d'écrire des données, entrezCompte AWSIDENTIFIANTetID externede la source personnalisée qui enregistrera les journaux et les événements dans le lac de données.

  6. PourAccès au service, créez et utilisez un nouveau rôle de service ou utilisez un rôle de service existant qui autorise Security Lake à invoquerAWS Glue.

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

API

Pour ajouter une source personnalisée par programme, vous aurez besoin deCreateCustomLogSourcefonctionnement de l'API Security Lake. Utilisez l'opération décrite dansRégion AWSoù vous aurez besoin de créer la source personnalisée.

Dans votre demande, utilisez les paramètres pris en charge pour définir les paramètres de configuration de la source personnalisée :

  • PoursourceName, spécifiez le nom de la source. Le nom doit être une valeur unique à l'échelle d'Amazon.

  • PoureventClasses, spécifiez une ou plusieurs classes d'événements OCSF pour décrire le type de données que la source enverra à Security Lake. Pour obtenir la liste des classes d'événements de l'OCSF à l'étape suivante :Classes de schéma OCSF.

  • PoursourceVersion, spécifiez éventuellement une valeur pour limiter la collecte de journaux à une version spécifique de données source personnalisées.

  • PourcrawlerConfiguration, vous devez fournir l'Amazon Resource Name (ARN) du rôle que vous venez de créer à l'Amazon Resource Name (ARN) du rôle que vous venez de créerAWS Gluechenille.

  • PourproviderIdentity, spécifiezAWSidentité et identifiant externe que la source utilisera pour écrire les journaux et les événements dans le lac de données.

AWS CLI

Pour ajouter une source personnalisée à l'aide d'AWS Command Line Interface(AWS CLI), lancez lecreate-custom-log-sourcecommande. Assurez-vous d'utiliser leregionparamètre à l'étape suivante :Région AWSoù vous aurez besoin de créer la source personnalisée.

Utilisez des paramètres supplémentaires pour définir les paramètres de configuration de la source personnalisée :

  • Poursource-name, spécifiez le nom de la source. Le nom doit être une valeur unique à l'échelle d'Amazon.

  • Pourevent-classes, spécifiez une ou plusieurs classes d'événements OCSF pour décrire le type de données que la source enverra à Security Lake. Pour obtenir la liste des classes d'événements de l'OCSF à l'étape suivante :Classes de schéma OCSF.

  • Poursource-version, spécifiez éventuellement une valeur pour limiter la collecte de journaux à une version spécifique de données source personnalisées.

  • PourcrawlerConfiguration, vous devez fournir l'Amazon Resource Name (ARN) du rôle que vous venez de créer à l'Amazon Resource Name (ARN) du rôle que vous venez de créerAWS Gluechenille.

  • PourproviderIdentity, spécifiezAWSidentité et identifiant externe que la source utilisera pour écrire les journaux et les événements dans le lac de données.

Maintien à jour des données source personnalisées dansAWS Glue

Après avoir ajouté une source personnalisée dans Security Lake, Security Lake crée unAWS Gluechenille. Le robot d'exploration se connecte à votre source personnalisée, détermine les structures de données et remplit leAWS GlueCatalogue de données avec tables.

Nous vous recommandons d'exécuter le robot manuellement pour maintenir votre schéma source personnalisé à jour et maintenir les fonctionnalités de requête dans Athena et les autres services de requête. Plus précisément, vous devez exécuter le robot d'exploration si l'une des modifications suivantes se produit dans votre ensemble de données d'entrée pour une source personnalisée :

  • L'ensemble de données comporte une ou plusieurs nouvelles colonnes de niveau supérieur.

  • L'ensemble de données comporte un ou plusieurs nouveaux champs dans une colonne avec unstructtype de données.

Pour obtenir des instructions sur l'exécution d'un robot d'exploration, voirPlanifier unAWS Gluechenilledans leAWS GlueGuide du développeur.

Security Lake ne peut ni supprimer ni mettre à jour les robots d'exploration existants de votre compte. Si vous supprimez une source personnalisée, nous vous recommandons de supprimer le robot d'exploration associé si vous envisagez de créer une source personnalisée portant le même nom à l'avenir.

Supprimer une source personnalisée

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

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

  2. En utilisant leRégion AWSsélecteur dans l'angle supérieur droit de la page, vous aurez besoin de l'Amazon Resource Name à l'étape suivante.

  3. Dans le volet de navigation, vous aurez besoin d'AmazonSources personnalisées.

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

  5. ChoisissezDésenregistrer la source personnaliséepuis vous aurez besoin d'AmazonSupprimerpour confirmer l'action.

API

Pour supprimer une source personnalisée par programmation, utilisezDeleteCustomLogSourcefonctionnement de l'API Security Lake. Utilisez l'opération décrite dansRégion AWSoù vous aurez besoin d'Amazon à l'étape suivante :

Dans votre demande, utilisezsourceNameparamètre permettant de définir le nom de l'Amazon Resource Name à supprimer. Ou spécifiez le nom de la source personnalisée et utilisezsourceVersionparamètre permettant de limiter l'étendue de la suppression à une version spécifique des données de la source personnalisée.

AWS CLI

Pour supprimer une source personnalisée à l'aide d'AWS Command Line Interface(AWS CLI), lancez ledelete-custom-log-sourcecommande. Assurez-vous d'utiliser leregionparamètre à l'étape suivante :Région AWSdans lequel je souhaite supprimer la source personnalisée.

Utilisez des paramètres supplémentaires pour spécifier la source personnalisée à supprimer ou l'étendue de la suppression. Pour supprimer la source personnalisée, spécifiez le nom de la source personnalisée poursource-nameparamètre. Pour limiter l'étendue de la suppression à une version spécifique des données de la source personnalisée, spécifiez également une valeur poursource-versionparamètre.