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 apprendre à surveiller les résultats de l’IAM Access Analyzer et les prévisualisations de l'accès avec Amazon EventBridge. EventBridge est la nouvelle version d'Amazon CloudWatch Events.

Événements de résultats

l’IAM Access 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 des résultats et des notifications sur 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 une rubrique Amazon SNS lorsqu'un événement pour un nouveau résultat est reçu en provenance de l’IAM Access Analyzer Les détails de la politique de contrôle des ressources (RCP) sont disponibles dans la section des détails des événements.

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

L'IAM Access Analyzer envoie un événement à EventBridge pour chaque prévisualisation de l'accès et 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 sur les prévisualisations de l'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 une rubrique Amazon SNS lorsqu'un événement pour une nouvelle prévisualisation est reçue en provenance de l’IAM Access Analyzer

Fréquence de notification d'événement

l’IAM Access Analyzer envoie à EventBridge des événements concernant les nouveaux résultats et ceux avec mises à jour du statut moins d'une heure environ après que l'événement s'est produit dans votre compte. l’IAM Access Analyzer envoie également à EventBridge des événements concernant la suppression d'un résultat résolu en raison de l'expiration de la période de conservation. Pour les résultats supprimés parce que l'analyseur les ayant 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. l’IAM Access Analyzer envoie également à EventBridge des événements concernant des prévisualisations de l'accès nouvellement créées et des changements du statut d'une prévisualisation de l'accès.

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

Voici un exemple d’événement de résultat des accès externes de l’analyseur d’accès IAM envoyé à EventBridge. L'id répertorié est l'ID de l'événement dans EventBridge. Pour plus d'informations, veuillez consulter É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 tableau resources est un singleton avec l'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" }

l’IAM Access Analyzer envoie également à EventBridge des événements concernant des résultats d'erreur. Un résultat d'erreur est un résultat généré lorsque l’IAM Access Analyzer ne peut 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" }

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

Voici un exemple d’événement de résultat des accès internes de l’analyseur d’accès IAM envoyé à EventBridge. L'id répertorié est l'ID de l'événement dans EventBridge. Pour plus d'informations, veuillez consulter Événements et modèles d'événements dans EventBridge.

Dans l’objet detail, les valeurs des attributs accountId et principalOwnerAccount se réfèrent au compte du principal indiqué 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 resource est l’ARN de l’analyseur qui a généré le résultat.

{ "version": "0", "id": "b45c3678-c278-b593-6121-c155259ce1b5", "detail-type": "Internal Access Finding", "source": "aws.access-analyzer", "account": "111122223333", "time": "2025-04-08T19:42:49Z", "region": "us-east-1", "resources": [ "arn:aws:access-analyzer:us-east-1:111122223333:analyzer/testAnalyzer" ], "detail": { "accessType": "INTRA_ACCOUNT", "action": [ "s3:GetObject" ], "analyzedAt": "2025-04-08T03:18:43.509465073Z", "condition": {}, "createdAt": "2025-04-07T21:33:49.914099224Z", "id": "11111111-2222-4444-aaaa-333333333333", "isDeleted": false, "findingType": "InternalAccess", "principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole_6" }, "principalOwnerAccount": "111122223333", "principalType": "IAM_ROLE", "resource": "arn:aws:s3:::critical-data", "resourceControlPolicyRestrictionType": "NOT_APPLICABLE", "accountId": "111122223333", "resourceType": "AWS::S3::Bucket", "serviceControlPolicyRestrictionType": "NOT_APPLICABLE", "status": "ACTIVE", "updatedAt": "2025-04-08T03:22:12.654688231Z", "version": "1.0" } }

l’IAM Access Analyzer envoie également à EventBridge des événements concernant des résultats d'erreur. Un résultat d'erreur est un résultat généré lorsque l’IAM Access Analyzer ne peut 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": "5a94b99b-e87d-a6a7-58c7-f47871532860", "detail-type": "Internal Access Finding", "source": "aws.access-analyzer-test", "account": "444455556666", "time": "2025-05-07T11:57:54Z", "region": "us-west-2", "resources": ["arn:aws:access-analyzer-beta:us-west-2:444455556666:analyzer/example-analyzer"], "detail": { "analyzedAt": "2025-03-24T19:58:52.512329448Z", "createdAt": "2025-03-22T03:30:46.920200692Z", "id": "ef573afd-12a5-4095-87a6-bf2f25109895", "isDeleted": false, "findingType": "InternalAccess", "resource": "arn:aws:s3:::test-entity-88", "accountId": "111122223333", "resourceControlPolicyRestrictionType": "NOT_APPLICABLE", "resourceType": "AWS::S3::Bucket", "serviceControlPolicyRestrictionType": "NOT_APPLICABLE", "error": "ACCESS_DENIED", // can be INTERNAL_ERROR and ACCESS_DENIED "status": "ACTIVE", "updatedAt": "2025-03-24T20:09:39.176075014Z", "version": "1.0" } }

Voici un exemple d’événement de résultat des accès non utilisés de l’analyseur d’accès IAM envoyé à EventBridge. L'id répertorié est l'ID de l'événement dans EventBridge. Pour plus d'informations, veuillez consulter É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 } }

l’IAM Access Analyzer envoie également à EventBridge des événements concernant des résultats d'erreur. Un résultat d'erreur est un résultat généré lorsque l’IAM Access Analyzer ne peut 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 qui est envoyé à EventBridge lorsque vous créez une prévisualisation de l'accès. Le tableau resources est un singleton avec l'ARN de l'analyseur auquel la prévisualisation de l'accès est associée. 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 qui est envoyé à EventBridge pour une prévisualisation de l'accès avec changement du 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 qui est envoyé à EventBridge pour une prévisualisation de l'accès avec changement du 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 console Amazon EventBridge à l'adresse https://console.aws.amazon.com/events/.

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

    • 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 Event pattern (Modèle d'événement), choisissez Custom patterns (JSON editor) (Modèle personnalisé [éditeur JSON]), puis collez l'un des exemples de modèle d'événement suivant dans la zone de texte :

      • Pour créer une règle basée sur n’importe quel événement de l’analyseur d’accès IAM, utilisez l’exemple de modèle suivant :

        { "source": [ "aws.access-analyzer" ] }
      • Pour créer une règle basée sur un événement de résultats des accès externes, internes ou non utilisés, utilisez l’exemple de modèle suivant :

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Access Analyzer Finding", "Internal Access Finding", "Unused Access Finding for IAM entities" ] }
      • Pour créer une règle basée sur un événement de résultats des accès externes, utilisez l’exemple de modèle suivant :

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

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

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Unused Access Finding for IAM entities" ] }
      • 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 Types de cible, choisissez Service AWS et pour Choisir une cible, choisissez une cible telle qu’une rubrique Amazon SNS ou une fonction 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, veuillez consulter la rubrique Création de règles Amazon EventBridge réagissant aux événements dans le Guide de l'utilisateur Amazon EventBridge.

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

  1. Utilisez ce qui suit pour créer une règle pour Amazon EventBridge à l'aide de la AWS CLI. Remplacez le nom de règle Testrule par 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 dans l'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