

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
<a name="custom-sources"></a>

Amazon Security Lake peut collecter des journaux et des événements à partir de sources personnalisées tierces. Une source personnalisée Security Lake est un service tiers qui envoie des journaux et des événements de sécurité à Amazon Security Lake. Avant d'envoyer les données, la source personnalisée doit convertir les journaux et les événements au format Open Cybersecurity Schema Framework (OCSF) et répondre aux exigences relatives aux sources pour Security Lake, notamment le partitionnement, le format de fichier parquet et les exigences en matière de taille et de débit des objets.

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 Gestion des identités et des accès AWS (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`](security-iam-awsmanpol.md#security-iam-awsmanpol-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.

**Note**  
Vous pouvez ajouter jusqu'à 50 sources de journaux personnalisées dans un compte.

Pour ajouter une source personnalisée à Security Lake, celle-ci doit répondre aux exigences suivantes. Le non-respect de ces exigences peut avoir un impact sur les performances et peut avoir un impact sur les cas d'utilisation de l'analytique tels que les requêtes.
+ **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énement OCSF (Open Cybersecurity Schema Framework)](https://schema.ocsf.io/classes?extensions=) unique 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.
+ **Format** — Chaque objet S3 collecté à partir de la source personnalisée doit être formaté en tant que fichier Apache Parquet.
+ **Schéma** — La même classe d'événement OCSF doit s'appliquer à chaque enregistrement d'un objet au format 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.
+ **Partitionnement** — Les objets doivent être partitionnés par région, AWS compte, EventDay. Les objets doivent être préfixés par`source location/region=region/accountId=accountID/eventDay=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.
+ **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.

**Note**  
Utilisez l'[outil de validation OCSF](https://github.com/aws-samples/amazon-security-lake-ocsf-validation) pour vérifier si la source personnalisée est compatible avec le`OCSF Schema`. Pour les sources personnalisées, Security Lake prend en charge les versions 1.3 et antérieures d'OCSF.

## Exigences de partitionnement pour l'ingestion de sources personnalisées dans Security Lake
<a name="custom-sources-best-practices"></a>

Pour faciliter le traitement et les requêtes efficaces des données, nous devons respecter les exigences de partitionnement, d'objet et de taille 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

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

  Un exemple de partition avec un exemple de nom de compartiment est`aws-security-data-lake-us-west-2-lake-uid/ext/custom-source-name/region=us-west-2/accountId=123456789012/eventDay=20230428/`.

La liste suivante décrit les paramètres utilisés dans la partition de chemin S3 :
+ 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.
+ `region`— Région AWS vers lequel les données sont téléchargées. Par exemple, vous devez utiliser `US East (N. Virginia)` pour télécharger des données dans votre bucket Security Lake dans la région USA Est (Virginie du Nord).
+ `accountId`— Compte AWS Identifiant auquel se rapportent les enregistrements de la partition source. Pour les enregistrements relatifs à des comptes extérieurs à AWS, nous vous recommandons d'utiliser une chaîne telle que `external` ou`external_externalAccountId`. En adoptant cette méthode de dénomination, vous pouvez éviter toute ambiguïté dans la dénomination des comptes externes IDs afin qu'ils n'entrent pas en conflit avec le AWS compte IDs ou le compte externe IDs géré par d'autres systèmes de gestion des identités.
+ `eventDay`— Horodatage UTC de l'enregistrement, tronqué en heures, sous la forme d'une chaîne de huit caractères (). `YYYYMMDD` Si les enregistrements spécifient un fuseau horaire différent dans l'horodatage de l'événement, vous devez convertir l'horodatage en UTC pour cette clé de partition.

## Conditions préalables à l'ajout d'une source personnalisée dans Security Lake
<a name="iam-roles-custom-sources"></a>

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 format`AmazonSecurityLake-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`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSecurityLakePermissionsBoundary).

**Topics**
+ [

### Vérifier les autorisations
](#add-custom-sources-permissions)
+ [

### Créer un rôle IAM pour autoriser l'accès en écriture à l'emplacement du bucket Security Lake (API et étape AWS CLI uniquement)
](#iam-roles-glue-crawler)

### Vérifier les autorisations
<a name="add-custom-sources-permissions"></a>

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: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:CreateGrant``kms: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](adding-custom-sources.md). 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 ou d' AWS CLI ajouter une source personnalisée, passez à l'étape suivante pour créer un rôle IAM afin d'autoriser l'accès en écriture à l'emplacement du bucket Security Lake.

### Créer un rôle IAM pour autoriser l'accès en écriture à l'emplacement du bucket Security Lake (API et étape AWS CLI uniquement)
<a name="iam-roles-glue-crawler"></a>

Si vous utilisez l'API Security Lake ou si vous AWS CLI souhaitez ajouter une source personnalisée, ajoutez ce rôle IAM pour AWS Glue autoriser l'analyse de vos données source personnalisées et 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éé ce rôle IAM, 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 la lecture des fichiers de données AWS Glue crawler à partir de la source personnalisée et des tables create/update du catalogue de AWS Glue données.

------
#### [ JSON ]

****  

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

------

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 :

------
#### [ JSON ]

****  

```
{
    "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 de clé KMS :

```
{
    "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 dans Security Lake
<a name="adding-custom-sources"></a>

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

------
#### [ Console ]

1. Ouvrez la console Security Lake à l'adresse [https://console.aws.amazon.com/securitylake/](https://console.aws.amazon.com/securitylake/).

1. À l'aide du Région AWS sélecteur situé dans le coin supérieur droit de la page, sélectionnez la région dans laquelle vous souhaitez créer la source personnalisée.

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

1. Dans la section **Détails de la source personnalisée**, entrez un nom unique au monde 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.

1. Si vous **Compte AWS êtes autorisé à écrire des données**, entrez l'**Compte AWS ID** et l'**ID externe** de la source personnalisée qui enregistrera les journaux et les événements dans le lac de données.

1. Pour **l'accès aux services**, créez et utilisez un nouveau rôle de service ou utilisez un rôle de service existant qui autorise Security Lake à invoquer AWS Glue.

1. Choisissez **Créer**.

------
#### [ API ]

Pour ajouter une source personnalisée par programmation, utilisez le [CreateCustomLogSource](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_CreateCustomLogSource.html)fonctionnement de l'API Security Lake. Utilisez l'opération à l' Région AWS endroit où vous souhaitez créer la source personnalisée. Si vous utilisez le AWS Command Line Interface (AWS CLI), exécutez la [create-custom-log-source](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securitylake/create-custom-log-source.html)commande.

Dans votre demande, utilisez les paramètres pris en charge pour définir les paramètres de configuration de la source personnalisée :
+ `sourceName`— Spécifiez le nom de la source. Le nom doit être une valeur unique au niveau régional.
+ `eventClasses`— 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 OCSF prises en charge en tant que source dans Security Lake, consultez [Open Cybersecurity Schema Framework (OCSF](https://schema.ocsf.io/classes?extensions)).
+ `sourceVersion`— Spécifiez éventuellement une valeur pour limiter la collecte de journaux à une version spécifique de données source personnalisées.
+ `crawlerConfiguration`— Spécifiez le nom de ressource Amazon (ARN) du rôle IAM que vous avez créé pour appeler le AWS Glue robot d'exploration. Pour les étapes détaillées de création d'un rôle IAM, voir [Conditions préalables à l'ajout d'une source personnalisée](https://docs.aws.amazon.com//security-lake/latest/userguide/custom-sources.html#iam-roles-glue-crawler)
+ `providerIdentity`— Spécifiez l' AWS identité et l'ID externe que la source utilisera pour écrire les journaux et les événements dans le lac de données.

L'exemple suivant ajoute une source personnalisée en tant que source de journal dans le compte du fournisseur de journaux désigné dans les régions désignées. Cet exemple est formaté pour Linux, macOS ou Unix et utilise le caractère de continuation de ligne barre oblique inverse (\$1) pour améliorer la lisibilité.

```
$ aws securitylake create-custom-log-source \
--source-name EXAMPLE_CUSTOM_SOURCE \
--event-classes '["DNS_ACTIVITY", "NETWORK_ACTIVITY"]' \
--configuration crawlerConfiguration={"roleArn=arn:aws:iam::XXX:role/service-role/RoleName"},providerIdentity={"externalId=ExternalId,principal=principal"}  \
--region=[“ap-southeast-2”]
```

------

## Maintien à jour des données source personnalisées dans AWS Glue
<a name="maintain-glue-schema"></a>

Après avoir ajouté une source personnalisée dans Security Lake, Security Lake crée un AWS Glue robot d'exploration. Le robot d'exploration se connecte à votre source personnalisée, détermine les structures de données et remplit le catalogue de AWS Glue données avec des 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 un type de `struct` données.

Pour obtenir des instructions sur l'exécution d'un robot d'exploration, consultez la section [Planification d'un AWS Glue robot d'exploration](https://docs.aws.amazon.com/glue/latest/dg/schedule-crawler.html) dans le Guide du *AWS Glue 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.

## Classes d'événements OCSF prises en charge
<a name="ocsf-eventclass"></a>

Les classes d'événements OCSF (Open Cybersecurity Schema Framework) décrivent le type de données que la source personnalisée enverra à Security Lake. La liste des classes d'événements prises en charge est la suivante :

```
public enum OcsfEventClass {
    ACCOUNT_CHANGE,
    API_ACTIVITY,
    APPLICATION_LIFECYCLE,
    AUTHENTICATION,
    AUTHORIZE_SESSION,
    COMPLIANCE_FINDING,
    DATASTORE_ACTIVITY,
    DEVICE_CONFIG_STATE,
    DEVICE_CONFIG_STATE_CHANGE,
    DEVICE_INVENTORY_INFO,
    DHCP_ACTIVITY,
    DNS_ACTIVITY,
    DETECTION_FINDING,
    EMAIL_ACTIVITY,
    EMAIL_FILE_ACTIVITY,
    EMAIL_URL_ACTIVITY,
    ENTITY_MANAGEMENT,
    FILE_HOSTING_ACTIVITY,
    FILE_SYSTEM_ACTIVITY,
    FTP_ACTIVITY,
    GROUP_MANAGEMENT,
    HTTP_ACTIVITY,
    INCIDENT_FINDING,
    KERNEL_ACTIVITY,
    KERNEL_EXTENSION,
    MEMORY_ACTIVITY,
    MODULE_ACTIVITY,
    NETWORK_ACTIVITY,
    NETWORK_FILE_ACTIVITY,
    NTP_ACTIVITY,
    PATCH_STATE,
    PROCESS_ACTIVITY,
    RDP_ACTIVITY,
    REGISTRY_KEY_ACTIVITY,
    REGISTRY_VALUE_ACTIVITY,
    SCHEDULED_JOB_ACTIVITY,
    SCAN_ACTIVITY,
    SECURITY_FINDING,
    SMB_ACTIVITY,
    SSH_ACTIVITY,
    USER_ACCESS,
    USER_INVENTORY,
    VULNERABILITY_FINDING,
    WEB_RESOURCE_ACCESS_ACTIVITY,
    WEB_RESOURCES_ACTIVITY,
    WINDOWS_RESOURCE_ACTIVITY,
    // 1.3 OCSF event classes
    ADMIN_GROUP_QUERY,
    DATA_SECURITY_FINDING,
    EVENT_LOG_ACTIVITY,
    FILE_QUERY,
    FILE_REMEDIATION_ACTIVITY,
    FOLDER_QUERY,
    JOB_QUERY,
    KERNEL_OBJECT_QUERY,
    MODULE_QUERY,
    NETWORK_CONNECTION_QUERY,
    NETWORK_REMEDIATION_ACTIVITY,
    NETWORKS_QUERY,
    PERIPHERAL_DEVICE_QUERY,
    PROCESS_QUERY,
    PROCESS_REMEDIATION_ACTIVITY,
    REMEDIATION_ACTIVITY,
    SERVICE_QUERY,
    SOFTWARE_INVENTORY_INFO,
    TUNNEL_ACTIVITY,
    USER_QUERY,
    USER_SESSION_QUERY,
    // 1.3 OCSF event classes (Win extension)
    PREFETCH_QUERY,
    REGISTRY_KEY_QUERY,
    REGISTRY_VALUE_QUERY,
    WINDOWS_SERVICE_ACTIVITY
}
```

# Supprimer une source personnalisée de Security Lake
<a name="delete-custom-source"></a>

Supprimez une source personnalisée pour arrêter d'envoyer des données de la source à Security Lake. Lorsque vous supprimez la source, Security Lake arrête de collecter les données de cette source dans les régions et les comptes spécifiés, et les abonnés ne peuvent plus consommer de nouvelles données provenant de la source. Toutefois, les abonnés peuvent toujours consommer les données collectées par Security Lake à la source avant leur suppression. Vous ne pouvez utiliser ces instructions que pour supprimer une source personnalisée. Pour plus d'informations sur la suppression d'un support pris en charge de manière native, consultez Service AWS. [Collecte de données Services AWS depuis Security Lake](custom-sources.md)

Lorsque vous supprimez une source personnalisée dans Security Lake, vous devez désactiver chaque source en dehors de la console Security Lake avec la source. Si vous ne désactivez pas une intégration, les intégrations source peuvent continuer à envoyer des journaux dans Amazon S3. 

------
#### [ Console ]

1. Ouvrez la console Security Lake à l'adresse [https://console.aws.amazon.com/securitylake/](https://console.aws.amazon.com/securitylake/).

1. À l'aide du Région AWS sélecteur situé dans le coin supérieur droit de la page, sélectionnez la région dont vous souhaitez supprimer la source personnalisée.

1. Dans le volet de navigation, sélectionnez **Sources personnalisées**.

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

1. Choisissez **Désenregistrer la source personnalisée**, puis sélectionnez **Supprimer** pour confirmer l'action.

------
#### [ API ]

Pour supprimer une source personnalisée par programmation, utilisez le [DeleteCustomLogSource](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_DeleteCustomLogSource.html)fonctionnement de l'API Security Lake. Si vous utilisez le AWS Command Line Interface (AWS CLI), exécutez la [delete-custom-log-source](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securitylake/delete-custom-log-source.html)commande. Utilisez l'opération dans Région AWS laquelle vous souhaitez supprimer la source personnalisée.

Dans votre demande, utilisez le `sourceName` paramètre pour spécifier le nom de la source personnalisée à supprimer. Vous pouvez également spécifier le nom de la source personnalisée et utiliser le `sourceVersion` paramètre pour limiter l'étendue de la suppression à une version spécifique des données de la source personnalisée.

L'exemple suivant supprime une source de journal personnalisée de Security Lake.

Cet exemple est formaté pour Linux, macOS ou Unix et utilise le caractère de continuation de ligne barre oblique inverse (\$1) pour améliorer la lisibilité.

```
$ aws securitylake delete-custom-log-source \
--source-name EXAMPLE_CUSTOM_SOURCE
```

------