Monitoraggio di AWS Identity and Access Management Access Analyzer con Amazon EventBridge - AWS Identity and Access Management

Monitoraggio di AWS Identity and Access Management Access Analyzer con Amazon EventBridge

Utilizza le informazioni contenute in questo argomento per monitorare i risultati di Sistema di analisi degli accessi IAM e accedere alle anteprime con Amazon EventBridge. EventBridge è la nuova versione di Amazon CloudWatch Events.

Eventi dei risultati

Sistema di analisi degli accessi IAM invia un evento a EventBridge per ogni risultato generato, per una modifica dello stato di un risultato esistente e quando un risultato viene eliminato. Per ricevere i risultati e le notifiche sui risultati, è necessario creare una regola di evento in Amazon EventBridge. Quando si crea una regola di evento, è anche possibile specificare un'operazione di destinazione da attivare in base alla regola. Ad esempio, puoi creare una regola di evento che attiva un argomento Amazon SNS quando viene ricevuto un evento per un nuovo risultato da Sistema di analisi degli accessi IAM. I dettagli sulla policy di controllo delle risorse (RCP) sono disponibili nella sezione dei dettagli dell'evento.

Accesso a eventi di anteprima

Sistema di analisi degli accessi IAM invia un evento a EventBridge per ogni anteprima di accesso e modifica al relativo stato. Ciò include un evento quando viene creata per la prima volta l'anteprima di accesso (stato Creazione), quando l'anteprima di accesso è completata (stato Completato) o quando la creazione dell'anteprima di accesso non è riuscita (stato Non riuscito). Per ricevere notifiche sulle anteprime di accesso, è necessario creare una regola di evento in EventBridge. Quando crei una regola di evento, puoi anche specificare un'operazione di destinazione da attivare in base alla regola. Ad esempio, puoi creare una regola di evento che attiva un argomento Amazon SNS quando viene ricevuta un'anteprima dell'accesso completato da Sistema di analisi degli accessi IAM.

Frequenza delle notifiche di evento

Sistema di analisi degli accessi IAM invia gli eventi per nuovi risultati e i risultati con aggiornamenti di stato a EventBridge entro circa un'ora da quando si verifica l'evento nell'account. Sistema di analisi degli accessi IAM invia gli eventi a EventBridge anche quando viene eliminato un risultato risolto perché il periodo di conservazione è scaduto. Per i risultati che vengono eliminati perché l'analizzatore che li ha generati viene eliminato, l'evento viene inviato a EventBridge circa 24 ore dopo l'eliminazione dell'analizzatore. Quando un risultato viene eliminato, lo stato del risultato non viene modificato. L'attributo isDeleted viene impostato su true. Sistema di analisi degli accessi IAM invia inoltre eventi per le anteprime di accesso appena create e le modifiche di stato dell'anteprima dell'accesso a EventBridge.

Esempi di eventi relativi ai risultati degli accessi esterni

Di seguito è riportato un esempio di evento relativo ai risultati degli accessi esterni di Sistema di analisi degli accessi IAM inviato a EventBridge. L'id riportato è l'ID per l'evento in EventBridge. Per ulteriori informazioni, consulta Eventi e modelli di evento in EventBridge.

Nell'oggetto detail, i valori per gli attributi accountId e region si riferiscono all'account e alla regione riportati nel risultato. L'attributo isDeleted indica se l'evento è derivato dal risultato eliminato. L'id è l'ID risultato. L'array resources è un singleton con l'ARN dell'analizzatore che ha generato il risultato.

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

Sistema di analisi degli accessi IAM invia gli eventi a EventBridge anche per i risultati di errore. Un risultato di errore è generato quando Sistema di analisi degli accessi IAM non è in grado di analizzare la risorsa. Gli eventi per i risultati di errore includono un attributo error come illustrato nell'esempio seguente.

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

Esempi di eventi relativi agli esiti degli accessi esterni

Di seguito è riportato un esempio di evento relativo agli esiti degli accessi non utilizzati di Sistema di analisi degli accessi IAM inviato a EventBridge. L'id riportato è l'ID per l'evento in EventBridge. Per ulteriori informazioni, consulta Eventi e modelli di evento in EventBridge.

Nell'oggetto detail, i valori per gli attributi accountId e principalOwnerAccount si riferiscono all'account del principale riportato nell'esito. L'attributo isDeleted indica se l'evento è derivato dal risultato eliminato. L'id è l'ID risultato. Il valore resource è l'ARN dell'analizzatore che ha generato l'esito.

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

Sistema di analisi degli accessi IAM invia gli eventi a EventBridge anche per i risultati di errore. Un risultato di errore è generato quando Sistema di analisi degli accessi IAM non è in grado di analizzare la risorsa. Gli eventi per i risultati di errore includono un attributo error come illustrato nell'esempio seguente.

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

Di seguito è riportato un esempio di evento relativo ai risultati degli accessi inutilizzati di Sistema di analisi degli accessi IAM inviato a EventBridge. L'id riportato è l'ID per l'evento in EventBridge. Per ulteriori informazioni, consulta Eventi e modelli di evento in EventBridge.

Nell'oggetto detail, i valori per gli attributi accountId e region si riferiscono all'account e alla regione riportati nel risultato. L'attributo isDeleted indica se l'evento è derivato dal risultato eliminato. L'id è l'ID risultato.

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

Sistema di analisi degli accessi AWS IAM invia gli eventi a EventBridge anche per i risultati di errore. Un risultato di errore è generato quando Sistema di analisi degli accessi IAM non è in grado di analizzare la risorsa. Gli eventi per i risultati di errore includono un attributo error come illustrato nell'esempio seguente.

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

Esempio di eventi di anteprima di accesso

L'esempio seguente mostra i dati per il primo evento che viene inviato a EventBridge quando si crea un'anteprima di accesso. L'array resources è un singleton con l'ARN dell'analizzatore a cui è associata l'anteprima di accesso. Nell'oggetto detail, id si riferisce all'ID di anteprima dell'accesso e configuredResources fa riferimento alla risorsa per la quale è stata creata l'anteprima di accesso. status è Creating e fa riferimento allo stato dell'anteprima dell'accesso. previousStatus non è specificato perché l'anteprima di accesso è stata appena creata.

{ "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'esempio seguente mostra i dati per un evento che viene inviato a EventBridge per un'anteprima di accesso con una modifica di stato da Creating a Completed. Nell'oggetto dettaglio, id fa riferimento all'ID di anteprima dell'accesso. status e previousStatus fanno riferimento allo stato dell'anteprima dell'accesso, in cui lo stato precedente era Creating e lo stato corrente è 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'esempio seguente mostra i dati per un evento che viene inviato a EventBridge per un'anteprima di accesso con una modifica di stato da Creating a Failed. Nell'oggetto detail, id fa riferimento all'ID di anteprima dell'accesso. status e previousStatus fanno riferimento allo stato dell'anteprima dell'accesso, in cui lo stato precedente era Creating e lo stato corrente è Failed. Il campo statusReason fornisce il codice motivo che indica che l'anteprima di accesso non è riuscita a causa di una configurazione di risorse non valida.

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

Creazione di una regola di evento mediante la console

La procedura seguente descrive come creare una regola di evento utilizzando la console.

  1. Apri la console Amazon EventBridge all'indirizzo https://console.aws.amazon.com/events/.

  2. Utilizzando i seguenti valori, crea una regola EventBridge che monitori gli eventi di ricerca o gli eventi di anteprima di accesso:

    • Per Rule type (Tipo di regola), scegli Rule with an event pattern (Regola con un modello di eventi).

    • In Event source (Origine eventi), scegli Other (Altro).

    • In Event pattern (Modello di eventi), scegli Custom patterns (JSON editor) (Modelli personalizzati [editor JSON]) e incolla uno dei seguenti esempi di modelli di eventi nell'area di testo:

      • Per creare una regola basata su un evento di Sistema di analisi degli accessi IAM, utilizza il seguente esempio di modello:

        { "source": [ "aws.access-analyzer" ] }
      • Per creare una regola basata su un evento relativo agli esiti degli accessi esterni, interni o non utilizzati, usa il seguente schema di esempio:

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Access Analyzer Finding", "Internal Access Finding", "Unused Access Finding for IAM entities" ] }
      • Per creare una regola basata su un evento relativo ai risultati degli accessi esterni, utilizza il seguente esempio di modello:

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Access Analyzer Finding" ] }
      • Per creare una regola basata solo su un evento relativo agli esiti degli accessi interni, usa il seguente schema di esempio:

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Internal Access Finding" ] }
      • Per creare una regola basata solo su un evento relativo ai risultati degli accessi inutilizzati, utilizza il seguente esempio di modello:

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Unused Access Finding for IAM entities" ] }
      • Per creare una regola basata su un evento di anteprima di accesso, utilizza il seguente esempio di modello:

        { "source": [ "aws.access-analyzer" ], "detail-type": [ "Access Preview State Change" ] }
    • Per Tipi di destinazione scegli Servizio AWS, mentre per Seleziona una destinazione scegli una destinazione come un argomento Amazon SNS o una funzione AWS Lambda. La destinazione viene attivata quando viene ricevuto un evento che corrisponde al modello di evento definito nella regola.

    Per ulteriori informazioni sulla creazione di regole, consulta la sezione Creazione di regole EventBridge che reagiscono agli eventi nella Guida per l'utente di Amazon EventBridge.

Creazione di una regola evento mediante la CLI

  1. Utilizza le seguenti indicazioni per creare una regola per Amazon EventBridge utilizzando la AWS CLI. Sostituire il nome della regola TestRule con il nome della propria regola.

    aws events put-rule --name TestRule --event-pattern "{\"source\":[\"aws.access-analyzer\"]}"
  2. È possibile personalizzare la regola per attivare operazioni di destinazione solo per un sottoinsieme di risultati generati, ad esempio risultati con attributi specifici. Nell'esempio seguente viene illustrato come creare una regola che attiva un'operazione di destinazione solo per i risultati con stato Attivo.

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

    Nell'esempio seguente viene illustrato come creare una regola che attiva un'operazione di destinazione solo per le anteprime di accesso con stato da Creating a Completed.

    aws events put-rule --name TestRule --event-pattern "{\"source\":[\"aws.access-analyzer\"],\"detail-type\":[\"Access Preview State Change\"],\"detail\":{\"status\":[\"COMPLETED\"]}}"
  3. Per definire una funzione Lambda come destinazione per la regola creata, utilizza il seguente comando di esempio. Sostituire la regione e il nome della funzione nell'ARN come appropriato per l'ambiente in uso.

    aws events put-targets --rule TestRule --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:MyFunction
  4. Aggiungere le autorizzazioni necessarie per richiamare la destinazione della regola. Nell'esempio seguente viene illustrato come concedere autorizzazioni a una funzione Lambda seguendo gli esempi precedenti.

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