Come posso monitorare l'attività dell'account di utenti IAM, ruoli e chiavi di accesso AWS specifici?

5 minuti di lettura
0

Voglio visualizzare e monitorare l'attività dell'account di identità AWS Identity and Access Management (IAM) specifiche.

Breve descrizione

Per visualizzare e monitorare l'attività dell’account di identità IAM specifiche, puoi utilizzare uno dei seguenti servizi e funzionalità AWS:

Soluzione

Utilizzare la cronologia eventi di CloudTrail

Nota: Puoi usare CloudTrail per effettuare ricerche nella cronologia degli eventi degli ultimi 90 giorni.

1.    Apri la console CloudTrail.

2.    Scegli Cronologia eventi.

3.    In Filtro, seleziona il menu a tendina. Quindi, scegli Nome utente.
Nota: Puoi anche filtrare in base alla chiave di accesso AWS.

4.    Nella casella di testo Inserisci nome utente o ruolo , inserisci il "nome intuitivo" dell’utente IAM o il nome della sessione del ruolo assunto.

Nota: Il nome della sessione di ruolo per una sessione specifica è il valore fornito come nome della sessione quando si assume il ruolo. Il valore per il campo "Nome utente" non sarà il nome del ruolo per le chiamate effettuate utilizzando il ruolo IAM.

5.    In Intervallo di tempo, inserisci l’intervallo di tempo desiderato. Quindi, scegli Applica.

6.    In Durata evento, estendi l'evento. Quindi, scegli Visualizza evento.

L'elemento userIdentity contiene dettagli sul tipo di identità IAM che ha effettuato la richiesta e le credenziali fornite.

Esempio di elemento userIdentity che include le credenziali utente IAM utilizzate per effettuare una chiamata API

Nota: Sostituisci Alice con il nome utente che stai cercando. Inserisci il "nome intuitivo" dell'utente IAM o il "nome della sessione di ruolo" del ruolo assunto. Il nome della sessione di ruolo per una sessione specifica è il valore fornito come nome della sessione quando si assume il ruolo. Per le chiamate effettuate utilizzando il ruolo IAM, il valore del campo userName non è il nome del ruolo.

"userIdentity": {
  "type": "IAMUser",
  "principalId": "AIDAJ45Q7YFFAREXAMPLE",
  "arn": "arn:aws:iam::123456789012:user/Alice",
  "accountId": "123456789012",
  "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
  "userName": "Alice"
}

Esempio di elemento userIdentity che include credenziali di sicurezza temporanee

"userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName",
    "arn": "arn:aws:sts::123456789012:assumed-role/RoleToBeAssumed/AssumedRoleSessionName",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "20131102T010628Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAIDPPEZS35WEXAMPLE",
        "arn": "arn:aws:iam::123456789012:role/RoleToBeAssumed",
        "accountId": "123456789012",
        "userName": "RoleToBeAssumed"
      }
   }
}

Nota: La cronologia eventi di CloudTrail utilizza il nome della sessione del ruolo assunto come nome utente per filtrare gli eventi.

La chiamata API utilizza credenziali di sicurezza temporanee ottenute assumendo un ruolo IAM. L'elemento contiene dettagli aggiuntivi sul ruolo assunto per ottenere le credenziali.

Nota: Se non vedi l'attività degli utenti, verifica che il servizio AWS sia supportato e che l'evento API sia registrato da CloudTrail. Per ulteriori informazioni, consulta gli argomenti dei servizi AWS per CloudTrail.

Utilizzare CloudWatch Logs Insights

Nota: Puoi utilizzare CloudWatch Logs Insights per cercare nella cronologia delle API oltre gli ultimi 90 giorni. È necessario creare e configurare un percorso per accedere ad Amazon CloudWatch Logs. Per ulteriori informazioni, consulta Creazione di un trail.

1.    Apri la console CloudWatch.

2.    Scegli Log.

3.    In Gruppi di log, scegli il tuo gruppo di log.

4.    Scegli Cerca gruppo di log.

5.    In Filtro eventi, inserisci una query per cercare le chiamate API di un utente o azioni API specifiche. Quindi, scegli l'icona di aggiornamento.

Query di esempio per cercare le chiamate API di un utente nei log

Nota: Sostituisci Alice con il nome utente che stai cercando. Inserisci il "nome intuitivo" dell'utente IAM o il "nome della sessione di ruolo" del ruolo assunto. Il nome della sessione di ruolo per una sessione specifica è il valore fornito come nome della sessione quando si assume il ruolo. Per le chiamate effettuate utilizzando il ruolo IAM, il valore del campo userName non è il nome del ruolo.

{ $.userIdentity.userName = "Alice" }

Query di esempio per cercare azioni API specifiche nei log

Nota: La seguente query di esempio cerca l'azione API DescribeInstances.

{ ($.eventName = "DescribeInstances") && ($.requestParameters.userName = "Alice"  ) }

Per ulteriori informazioni, consulta la sintassi delle query di CloudWatch Logs Insights.

Utilizzare le query di Athena

Nota: Puoi usare Athena per eseguire query sui log di CloudTrail negli ultimi 90 giorni.

1.    Apri la console Athena.

2.    Scegli Query Editor.

3.    Inserisci una delle seguenti query di esempio in base al tuo caso d'uso. Quindi, scegli Esegui query:

Query di esempio per restituire tutti gli eventi CloudTrail eseguiti da un utente IAM specifico

Importante: Sostituisci athena-table con il nome della tabella Athena che vuoi utilizzare. Sostituisci Alice con l'utente IAM per il quale desideri visualizzare l'attività dell'account.

SELECT *
FROM athena-table
WHERE useridentity.type = 'IAMUser'
AND useridentity.username LIKE 'Alice';

Query di esempio per filtrare tutte le attività API eseguite da un ruolo IAM

Nota: Sostituisci role-name con il nome del tuo ruolo IAM.

SELECT *
FROM athena-table
WHERE useridentity.sessionContext.sessionissuer.arn LIKE '%role-name%'
AND useridentity.sessionContext.sessionissuer.type = 'Role';

Query di esempio per abbinare il ruolo ARN

SELECT *
FROM athena-table
WHERE useridentity.sessionContext.sessionissuer.arn = 'arn:aws:iam::account-id123456789:role/role-name'
AND useridentity.sessionContext.sessionissuer.type = 'Role';

Query di esempio per filtrare tutte le attività utilizzando l'ID della chiave di accesso IAM

SELECT eventTime, eventName, userIdentity.principalId,eventSource
FROM athena-table
WHERE useridentity.accesskeyid like 'AKIAIOSFODNN7EXAMPLE'

Informazioni correlate

Come faccio a usare AWS CloudTrail per tenere traccia delle chiamate API per le mie istanze Amazon EC2?

Come faccio a utilizzare CloudTrail per verificare se sono state apportate modifiche a un gruppo di sicurezza o a una risorsa nel mio account AWS?

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa