Collecter les journaux AWS IAM

Version de l'analyseur : 1.0

Compatible avec :

Ce document explique comment ingérer des données de configuration AWS Identity and Access Management (IAM) dans Google Security Operations à l'aide du flux d'API tiers.

L'analyseur IAM AWS transforme les données d'entité IAM (utilisateurs, groupes, rôles et règles) en modèle de données unifié (UDM) structuré, en extrayant des champs tels que les informations sur les utilisateurs, les informations sur les rôles, les autorisations et les codes temporels pour une analyse de sécurité cohérente.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Accès privilégié à la console AWS
  • Autorisations de créer des utilisateurs et des stratégies IAM

Obtenir les plages d'adresses IP Google SecOps

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Ajouter un flux.
  3. Notez les plages d'adresses IP affichées en haut de la page.
    • Vous pouvez également récupérer les plages d'adresses IP de manière programmatique à l'aide de l'API Feed Management.

Créer un utilisateur IAM avec les autorisations requises

CRITIQUE : Pour permettre à Google SecOps de récupérer les données AWS IAM à l'aide de l'API, vous devez créer un utilisateur IAM disposant des autorisations de lecture appropriées.

  1. Créez un utilisateur en suivant les instructions de ce guide : Créer un utilisateur IAM.
  2. Sélectionnez l'utilisateur créé.
  3. Sélectionnez l'onglet Identifiants de sécurité.
  4. Cliquez sur Create Access Key (Créer une clé d'accès) dans la section Access Keys (Clés d'accès).
  5. Sélectionnez Service tiers comme Cas d'utilisation.
  6. Cliquez sur Suivant.
    • Facultatif : Ajoutez un tag de description.
  7. Cliquez sur Créer une clé d'accès.
  8. Cliquez sur Télécharger le fichier .csv pour enregistrer l'ID de clé d'accès et la clé d'accès secrète pour référence ultérieure.
  9. Cliquez sur OK.
  10. Sélectionnez l'onglet Autorisations.
  11. Cliquez sur Ajouter des autorisations dans la section Règles d'autorisation.
  12. Sélectionnez Ajouter des autorisations.
  13. Sélectionnez Associer directement les règles.
  14. Recherchez IAMReadOnlyAccess (stratégie gérée par AWS).
  15. Sélectionnez la règle.
  16. Cliquez sur Suivant.
  17. Cliquez sur Ajouter des autorisations.

Important : La stratégie IAMReadOnlyAccess inclut toutes les autorisations requises :

  • iam:GetUser
  • iam:ListUsers
  • iam:GetGroup
  • iam:ListGroups
  • iam:GetPolicy
  • iam:ListPolicies
  • iam:GetRole
  • iam:ListRoles
  • iam:ListAttachedUserPolicies
  • iam:ListAttachedGroupPolicies
  • iam:ListAttachedRolePolicies
  • iam:GetAccountSummary

Option B : Créer une règle personnalisée (moindre privilège)

Si votre stratégie de sécurité exige des autorisations minimales au lieu de la stratégie gérée :

  1. Dans la console AWS, accédez à IAM > Policies > Create policy > JSON tab (IAM > Stratégies > Créer une stratégie > Onglet JSON).
  2. Collez la règle suivante :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:GetUser",
            "iam:ListUsers",
            "iam:GetGroup",
            "iam:ListGroups",
            "iam:GetPolicy",
            "iam:ListPolicies",
            "iam:GetRole",
            "iam:ListRoles",
            "iam:ListAttachedUserPolicies",
            "iam:ListAttachedGroupPolicies",
            "iam:ListAttachedRolePolicies",
            "iam:GetAccountSummary"
          ],
          "Resource": "*"
        }
      ]
    }
    
  3. Cliquez sur Suivant.

  4. Nommez la règle chronicle-iam-api-read-policy.

  5. Cliquez sur Créer une règle.

  6. Créez un utilisateur en suivant les instructions de ce guide : Créer un utilisateur IAM.

  7. Sélectionnez l'utilisateur créé.

  8. Sélectionnez l'onglet Identifiants de sécurité.

  9. Cliquez sur Create Access Key (Créer une clé d'accès) dans la section Access Keys (Clés d'accès).

  10. Sélectionnez Service tiers comme Cas d'utilisation.

  11. Cliquez sur Suivant.

    • Facultatif : Ajoutez un tag de description.
  12. Cliquez sur Créer une clé d'accès.

  13. Cliquez sur Télécharger le fichier .csv pour enregistrer l'ID de clé d'accès et la clé d'accès secrète pour référence ultérieure.

  14. Cliquez sur OK.

  15. Sélectionnez l'onglet Autorisations.

  16. Cliquez sur Ajouter des autorisations dans la section Règles d'autorisation.

  17. Sélectionnez Ajouter des autorisations.

  18. Sélectionnez Associer directement les règles.

  19. Recherchez et sélectionnez chronicle-iam-api-read-policy.

  20. Cliquez sur Suivant.

  21. Cliquez sur Ajouter des autorisations.

Configurer un flux dans Google SecOps pour ingérer les données de configuration IAM

Le flux AWS IAM collecte une liste d'entités IAM par flux, sélectionnée par le champ Type d'API (Utilisateurs, Rôles ou Groupes). Pour collecter toutes les entités IAM, créez un flux pour chaque type d'API, en utilisant le type de journal AWS IAM.

  1. Accédez à Plate-forme de contenu > Packs de contenu > Commencer.
  2. Cliquez sur le pack Amazon Cloud Platform.
  3. Recherchez le type de journal AWS IAM dans la liste.
  4. Sélectionnez API tierce dans le menu déroulant Type de source.
  5. Fournissez les informations de configuration suivantes :
    • Nom d'utilisateur : ID de clé d'accès de l'utilisateur IAM créé précédemment.
    • Secret : clé d'accès secrète de l'utilisateur IAM créé précédemment.
    • Type d'API : sélectionnez la liste des entités IAM à collecter : Utilisateurs, Rôles ou Groupes.
    • Nom du flux : valeur préremplie qui identifie le flux (par exemple, AWS IAM Users).
    • Espace de noms des composants : espace de noms associé au flux.
    • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.
  6. Cliquez sur Créer un flux.

Pour en savoir plus sur la configuration de plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.

Utiliser les paramètres SIEM

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Ajouter un flux.
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, AWS IAM API Configuration).
  5. Sélectionnez API tierce comme type de source.
  6. Sélectionnez AWS IAM comme type de journal.
  7. Cliquez sur Suivant.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :
    • Nom d'utilisateur : ID de clé d'accès de l'utilisateur IAM créé précédemment.
    • Secret : clé d'accès secrète de l'utilisateur IAM créé précédemment.
    • Type d'API : sélectionnez la liste des entités IAM à collecter : Utilisateurs, Rôles ou Groupes.
    • Espace de noms de l'élément : espace de noms de l'élément.
    • Libellés d'ingestion : libellé à appliquer aux événements de ce flux.
  9. Cliquez sur Suivant.
  10. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Table de mappage UDM

Champ de journal Mappage UDM Logique
Group.CreateDate entity.group.attribute.creation_time Analysé en tant que ISO8601
Group.Path entity.group.attribute.labels.value Mappage direct
IsTruncated entity.group.attribute.labels.value Mappage direct
Marker entity.group.attribute.labels.value Mappage direct
Group.GroupName entity.group.email_addresses Fusionné
Group.GroupName entity.group.group_display_name Mappé directement
Group.GroupID entity.group.product_object_id Mappage direct
RoleLastUsed.Region entity.location.name Mappage direct
CreateDate entity.resource.attribute.creation_time Analysé en tant que ISO8601
MaxSessionDuration entity.resource.attribute.labels.value Mappage direct
Path entity.resource.attribute.labels.value Mappage direct
RoleLastUsed.LastUsedDate entity.resource.attribute.labels.value Mappage direct
AssumeRolePolicyDocument entity.resource.attribute.permissions.name Mappage direct
Description entity.resource.attribute.roles.description Mappage direct
RoleName entity.resource.attribute.roles.name Mappage direct
Arn entity.resource.name Mappage direct
Group.Arn entity.resource.name Mappage direct
RoleID entity.resource.product_object_id Mappage direct
CreateDate entity.user.attribute.creation_time Analysé en tant que ISO8601
PasswordLastUsed entity.user.last_login_time Analysé en tant que ISO8601
UserID entity.user.product_object_id Mappage direct
UserName entity.user.userid Mappage direct
PermissionsBoundary.PermissionsBoundaryArn relations.entity.resource.attribute.labels.value Mappage direct
PermissionsBoundary.PermissionsBoundaryType relations.entity.resource.attribute.labels.value Mappage direct
user.PermissionsBoundary.PermissionsBoundaryArn relations.entity.resource.attribute.labels.value Mappage direct
user.PermissionsBoundary.PermissionsBoundaryType relations.entity.resource.attribute.labels.value Mappage direct
user.Arn relations.entity.resource.name Mappage direct
user.CreateDate relations.entity.user.attribute.creation_time Analysé en tant que ISO8601
tag.Key relations.entity.user.attribute.labels.key Mappage direct
Path relations.entity.user.attribute.labels.value Mappage direct
tag.Value relations.entity.user.attribute.labels.value Mappage direct
user.Path relations.entity.user.attribute.labels.value Mappage direct
user.PasswordLastUsed relations.entity.user.last_login_time Analysé en tant que ISO8601
user.UserID relations.entity.user.product_object_id Mappage direct
user.UserName relations.entity.user.userid Mappé directement
N/A entity.group.attribute.labels.key Constante : is_truncated
N/A entity.resource.attribute.cloud.environment Constante : AMAZON_WEB_SERVICES
N/A entity.resource.attribute.labels.key Constante : max_session_duration
N/A entity.resource.resource_subtype Constante : User
N/A entity.resource.resource_type Constante : ACCESS_POLICY
N/A metadata.entity_type Constante : USER
N/A metadata.product_name Constante : AWS IAM
N/A metadata.vendor_name Constante : AWS
N/A relations.direction Constante : UNIDIRECTIONAL
N/A relations.entity.resource.attribute.labels.key Constante : permissions_boundary_arn
N/A relations.entity.resource.resource_subtype Constante : User
N/A relations.entity.user.attribute.labels.key Constante : path
N/A relations.entity_type Constante : USER
N/A relations.relationship Constante : MEMBER

Journal des modifications

Afficher le journal des modifications de cet analyseur

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.