Surveillance AWS Identity and Access Management Access Analyzer avec Amazon EventBridge - AWS Identity and Access Management

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.

Surveillance AWS Identity and Access Management Access Analyzer avec Amazon EventBridge

Utilisez les informations de cette rubrique pour savoir comment surveiller les résultats d'IAMAccess Analyzer et accéder aux aperçus avec Amazon. EventBridge EventBridge est la nouvelle version d'Amazon CloudWatch Events.

Événements de résultats

IAMAccess Analyzer envoie un événement EventBridge pour chaque résultat généré, pour une modification du statut d'un résultat existant et lorsqu'un résultat est supprimé. Pour recevoir les résultats et les notifications concernant les résultats, vous devez créer une règle d'événement dans Amazon EventBridge. Lorsque vous créez une règle d'événement, vous pouvez également spécifier une action cible à déclencher en fonction de la règle. Par exemple, vous pouvez créer une règle d'événement qui déclenche un SNS sujet Amazon lorsqu'un événement concernant une nouvelle découverte est reçu d'IAMAccess Analyzer.

Événements de prévisualisation de l'accès

IAMAccess Analyzer envoie un événement EventBridge pour chaque aperçu des accès et pour chaque modification de son statut. Cela inclut un événement lorsque la prévisualisation de l'accès est initialement créée (statut Création), lorsque la prévisualisation de l'accès est terminée (statut Terminé) ou lorsque la création de la prévisualisation de l'accès a échoué (statut Échec). Pour recevoir des notifications concernant les aperçus d'accès, vous devez créer une règle d'événement dans EventBridge. Lorsque vous créez une règle d'événement, vous pouvez spécifier une action cible à déclencher en fonction de la règle. Par exemple, vous pouvez créer une règle d'événement qui déclenche un SNS sujet Amazon lorsqu'Access Analyzer reçoit un événement pour un aperçu complet des IAM accès.

Fréquence de notification d'événement

IAMAccess Analyzer envoie des événements pour les nouvelles découvertes et les nouvelles découvertes avec des mises à jour de statut EventBridge dans l'heure qui suit l'apparition de l'événement dans votre compte. IAMAccess Analyzer envoie également des événements EventBridge lorsqu'un résultat résolu est supprimé parce que la période de conservation a expiré. Pour les résultats supprimés parce que l'analyseur qui les a générés est supprimé, l'événement est envoyé EventBridge environ 24 heures après la suppression de l'analyseur. Lorsqu'un résultat est supprimé, le statut du résultat n'est pas modifié. En revanche, l'attribut isDeleted est défini sur true. IAMAccess Analyzer envoie également des événements pour les aperçus d'accès nouvellement créés et pour les modifications du statut des aperçus d'accès. EventBridge

Exemples d’événements liés aux résultats des accès externes

Voici un exemple d'événement de recherche IAM d'accès externe d'Access Analyzer envoyé à EventBridge. La id liste indique l'identifiant de l'événement dans EventBridge. Pour en savoir plus, consultez la section Événements et modèles d'événements dans EventBridge.

Dans l'objet detail, les valeurs des attributs accountId et region se réfèrent au compte et à la région indiqués dans le résultat. L'attribut isDeleted indique si l'événement provient du résultat en cours de suppression. L'attribut id représente l'ID de résultat. Le resources tableau est un singleton avec le ARN de l'analyseur qui a généré le résultat.

{ "account": "111122223333", "detail": { "accountId": "111122223333", "action": [ "s3:GetObject" ], "analyzedAt": "2019-11-21T01:22:22Z", "condition": {}, "createdAt": "2019-11-20T04:58:50Z", "id": "22222222-dcba-4444-dcba-333333333333", "isDeleted": false, "isPublic": false, "principal": { "AWS": "999988887777" }, "region": "us-west-2", "resource": "arn:aws:s3:::amzn-s3-demo-bucket", "resourceType": "AWS::S3::Bucket", "status": "ACTIVE", "updatedAt": "2019-11-21T01:14:07Z", "version": "1.0" }, "detail-type": "Access Analyzer Finding", "id": "11111111-2222-4444-aaaa-333333333333", "region": "us-west-2", "resources": [ "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/MyAnalyzer" ], "source": "aws.access-analyzer", "time": "2019-11-21T01:22:33Z", "version": "0" }

IAMAccess Analyzer envoie également des événements EventBridge pour détecter les erreurs. Un résultat d'erreur est un résultat généré lorsqu'IAMAccess Analyzer ne parvient pas à analyser la ressource. Les événements pour les résultats d'erreur incluent un attribut error comme illustré dans l'exemple suivant.

{ "account": "111122223333", "detail": { "accountId": "111122223333", "analyzedAt": "2019-11-21T01:22:22Z", "createdAt": "2019-11-20T04:58:50Z", "error": "ACCESS_DENIED", "id": "22222222-dcba-4444-dcba-333333333333", "isDeleted": false, "region": "us-west-2", "resource": "arn:aws:s3:::amzn-s3-demo-bucket", "resourceType": "AWS::S3::Bucket", "status": "ACTIVE", "updatedAt": "2019-11-21T01:14:07Z", "version": "1.0" }, "detail-type": "Access Analyzer Finding", "id": "11111111-2222-4444-aaaa-333333333333", "region": "us-west-2", "resources": [ "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/MyAnalyzer" ], "source": "aws.access-analyzer", "time": "2019-11-21T01:22:33Z", "version": "0" }

Voici un exemple d'événement de recherche IAM d'accès non utilisé d'Access Analyzer envoyé à EventBridge. La id liste indique l'identifiant de l'événement dans EventBridge. Pour en savoir plus, consultez la section Événements et modèles d'événements dans EventBridge.

Dans l'objet detail, les valeurs des attributs accountId et region se réfèrent au compte et à la région indiqués dans le résultat. L'attribut isDeleted indique si l'événement provient du résultat en cours de suppression. L'attribut id représente l'ID de résultat.

{ "version": "0", "id": "dc7ce3ee-114b-3243-e249-7f10f9054b21", "detail-type": "Unused Access Finding for IAM entities", "source": "aws.access-analyzer", "account": "123456789012", "time": "2023-09-29T17:31:40Z", "region": "us-west-2", "resources": [ "arn:aws:access-analyzer:us-west-2:123456789012:analyzer/integTestLongLivingAnalyzer-DO-NOT-DELETE" ], "detail": { "findingId": "b8ae0460-5d29-4922-b92a-ba956c986277", "resource": "arn:aws:iam::111122223333:role/FindingIntegTestFakeRole", "resourceType": "AWS::IAM::Role", "accountId": "111122223333", "createdAt": "2023-09-29T17:29:18.758Z", "updatedAt": "2023-09-29T17:29:18.758Z", "analyzedAt": "2023-09-29T17:29:18.758Z", "previousStatus": "", "status": "ACTIVE", "version": "62160bda-8e94-46d6-ac97-9670930d8ffb", "isDeleted": false, "findingType": "UnusedPermission", "numberOfUnusedServices": 0, "numberOfUnusedActions": 1 } }

IAMAccess Analyzer envoie également des événements EventBridge pour détecter les erreurs. Un résultat d'erreur est un résultat généré lorsqu'IAMAccess Analyzer ne parvient pas à analyser la ressource. Les événements pour les résultats d'erreur incluent un attribut error comme illustré dans l'exemple suivant.

{ "version": "0", "id": "c2e7aa1a-4df7-7652-f33e-64113b8997d4", "detail-type": "Unused Access Finding for IAM entities", "source": "aws.access-analyzer", "account": "111122223333", "time": "2023-10-31T20:26:12Z", "region": "us-west-2", "resources": [ "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ba811f91-de99-41a4-97c0-7481898b53f2" ], "detail": { "findingId": "b01a34f2-e118-46c9-aef8-0d8526b495c7", "resource": "arn:aws:iam::123456789012:role/TestRole", "resourceType": "AWS::IAM::Role", "accountId": "444455556666", "createdAt": "2023-10-31T20:26:08.647Z", "updatedAt": "2023-10-31T20:26:09.245Z", "analyzedAt": "2023-10-31T20:26:08.525Z", "previousStatus": "", "status": "ACTIVE", "version": "7c7a72a2-7963-4c59-ac71-f0be597010f7", "isDeleted": false, "findingType": "UnusedIAMRole", "error": "INTERNAL_ERROR" } }

Exemple d'événement de prévisualisation de l'accès

L'exemple suivant montre les données du premier événement envoyé EventBridge lorsque vous créez un aperçu des accès. Le resources tableau est un singleton avec le ARN de l'analyseur auquel l'aperçu de l'accès est associé. Dans l'objet detail, l'id fait référence à l'ID de prévisualisation de l'accès et configuredResources fait référence à la ressource pour laquelle la prévisualisation de l'accès a été créée. Le status est Creating et fait référence au statut de la prévisualisation de l'accès. Le previousStatus n'est pas spécifié car la prévisualisation de l'accès vient juste d'être créée.

{ "account": "111122223333", "detail": { "accessPreviewId": "aaaabbbb-cccc-dddd-eeee-ffffaaaabbbb", "configuredResources": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "createdAt": "2020-02-20T00:00:00.00Z", "region": "us-west-2", "status": "CREATING", "version": "1.0" }, "detail-type": "Access Preview State Change", "id": "aaaabbbb-2222-3333-4444-555566667777", "region": "us-west-2", "resources": [ "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/MyAnalyzer" ], "source": "aws.access-analyzer", "time": "2020-02-20T00:00:00.00Z", "version": "0" }

L'exemple suivant montre les données d'un événement envoyé à EventBridge pour un aperçu de l'accès avec un changement de statut de Creating àCompleted. Dans l'objet détail, l'ID id fait référence à l'ID de prévisualisation de l'accès. Le status et le previousStatus font référence au statut de la prévisualisation de l'accès, où le statut précédent était Creating et où le statut actuel est Completed.

{ "account": "111122223333", "detail": { "accessPreviewId": "aaaabbbb-cccc-dddd-eeee-ffffaaaabbbb", "configuredResources": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "createdAt": "2020-02-20T00:00:00.000Z", "previousStatus": "CREATING", "region": "us-west-2", "status": "COMPLETED", "version": "1.0" }, "detail-type": "Access Preview State Change", "id": "11112222-3333-4444-5555-666677778888", "region": "us-west-2", "resources": [ "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/MyAnalyzer" ], "source": "aws.access-analyzer", "time": "2020-02-20T00:00:00.00Z", "version": "0" }

L'exemple suivant montre les données d'un événement envoyé à EventBridge pour un aperçu de l'accès avec un changement de statut de Creating àFailed. Dans l'objet detail, l'id fait référence à l'ID de prévisualisation de l'accès. Le status et le previousStatus font référence au statut de la prévisualisation de l'accès, où le statut précédent était Creating et où le statut actuel est Failed. Le champ statusReason fournit le code raison indiquant que la prévisualisation de l'accès a échoué en raison d'une configuration de ressource non valide.

{ "account": "111122223333", "detail": { "accessPreviewId": "aaaabbbb-cccc-dddd-eeee-ffffaaaabbbb", "configuredResources": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "createdAt": "2020-02-20T00:00:00.00Z", "previousStatus": "CREATING", "region": "us-west-2", "status": "FAILED", "statusReason": { "code": "INVALID_CONFIGURATION" }, "version": "1.0" }, "detail-type": "Access Preview State Change", "id": "99998888-7777-6666-5555-444433332222", "region": "us-west-2", "resources": [ "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/MyAnalyzer" ], "source": "aws.access-analyzer", "time": "2020-02-20T00:00:00.00Z", "version": "0" }

Création d'une règle d'événement à l'aide de la console

La procédure suivante explique comment créer une règle d'événement à l'aide de la console.

  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. À l'aide des valeurs suivantes, créez une EventBridge règle qui surveille la recherche d'événements ou l'accès aux événements de prévisualisation :

    • Pour Type de règle, choisissez Règle avec un modèle d’événement.

    • Pour Event source (Source de l'événement), choisissez Other (Autres).

    • Pour Modèle d'événement, choisissez Modèles personnalisés (JSONéditeur) et collez l'un des exemples de modèles d'événements suivants dans la zone de texte :

      • Pour créer une règle basée sur un événement de résultats des accès externes ou non utilisés, utilisez l’exemple de modèle suivant :

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Access Analyzer Finding" ] }
      • Pour créer une règle basée uniquement sur un événement de recherche d'accès non utilisé, utilisez l'exemple de modèle suivant :

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Unused Access Finding for IAM entities" ] }
        Note

        Vous ne pouvez pas créer une règle basée uniquement sur un événement de recherche d'accès externe.

      • Pour créer une règle basée sur un événement de prévisualisation de l'accès, utilisez l'exemple de modèle suivant :

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Access Preview State Change" ] }
    • Pour les types de cibles, sélectionnez AWS service, et pour Sélectionner une cible, choisissez une cible telle qu'un SNS sujet Amazon ou AWS Lambda . La cible est déclenchée lorsqu'un événement correspond au modèle d'événement défini dans la règle est reçu.

    Pour en savoir plus sur la création de règles, consultez la section Création de EventBridge règles Amazon qui réagissent aux événements dans le guide de EventBridge l'utilisateur Amazon.

Création d'une règle d'événement à l'aide du CLI

  1. Utilisez ce qui suit pour créer une règle pour Amazon à EventBridge l'aide du AWS CLI. Remplacer le nom de la règle TestRule avec le nom de votre règle.

    aws events put-rule --name TestRule --event-pattern "{\"source\":[\"aws.access-analyzer\"]}"
  2. Vous pouvez personnaliser la règle pour déclencher des actions cibles uniquement pour un sous-ensemble de résultats générés, tels que les résultats avec des attributs spécifiques. L'exemple suivant montre comment créer une règle qui déclenche une action cible uniquement pour les résultats ayant un statut actif.

    aws events put-rule --name TestRule --event-pattern "{\"source\":[\"aws.access-analyzer\"],\"detail-type\":[\"Access Analyzer Finding\"],\"detail\":{\"status\":[\"ACTIVE\"]}}"

    L'exemple suivant montre comment créer une règle qui déclenche une action cible uniquement pour les prévisualisations d'accès ayant un statut qui passe de Creating à Completed.

    aws events put-rule --name TestRule --event-pattern "{\"source\":[\"aws.access-analyzer\"],\"detail-type\":[\"Access Preview State Change\"],\"detail\":{\"status\":[\"COMPLETED\"]}}"
  3. Pour définir une fonction Lambda en tant que cible pour la règle que vous avez créée, utilisez l'exemple de commande suivant. Remplacez la région et le nom de la fonction ARN en fonction de votre environnement.

    aws events put-targets --rule TestRule --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:MyFunction
  4. Ajoutez les autorisations requises pour appeler la cible de la règle. L'exemple suivant montre comment accorder des autorisations à une fonction Lambda, en suivant les exemples précédents.

    aws lambda add-permission --function-name MyFunction --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com