View a markdown version of this page

Registrazione di IAM e AWS STS Chiamate API con AWS CloudTrail - AWS Identity and Access Management

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Registrazione di IAM e AWS STS Chiamate API con AWS CloudTrail

IAM e AWS STS sono integrati con AWS CloudTrail un servizio che fornisce un registro delle azioni intraprese da un utente o ruolo IAM. CloudTrail acquisisce tutte le chiamate API per IAM e AWS STS come eventi, incluse le chiamate dalla console e dalle chiamate API. Se crei un percorso, puoi abilitare la distribuzione continua di CloudTrail eventi a un bucket Amazon S3. Se non configuri un trail, è comunque possibile visualizzare gli eventi più recenti nella console di CloudTrail in Event history (Cronologia eventi). Puoi utilizzarlo CloudTrail per ottenere informazioni sulla richiesta effettuata a IAM o. AWS STS Ad esempio, puoi visualizzare l'indirizzo IP da cui è stata Effettuata la richiesta, l'autore della richiesta e il momento in cui è stata effettuata, nonché dettagli aggiuntivi.

Per saperne di più CloudTrail, consulta la Guida AWS CloudTrail per l'utente.

IAM e AWS STS informazioni in CloudTrail

CloudTrail è abilitato sull'utente al Account AWS momento della creazione dell'account. Quando si verifica un'attività in IAM o AWS STS, tale attività viene registrata in un CloudTrail evento insieme ad altri eventi AWS di servizio nella cronologia degli eventi. Puoi visualizzare, cercare e scaricare gli eventi recenti nel tuo Account AWS. Per ulteriori informazioni, consulta Visualizzazione degli eventi con la cronologia degli CloudTrail eventi.

Per una registrazione continua degli eventi nel tuo Account AWS, compresi gli eventi per IAM e AWS STS, crea un percorso. Un percorso consente di CloudTrail inviare file di log a un bucket Amazon S3. Per impostazione predefinita, quando si crea un trail nella console, il trail sarà valido in tutte le Regioni . Il percorso registra gli eventi provenienti da tutte le regioni della AWS partizione e invia i file di registro al bucket Amazon S3 specificato. Inoltre, puoi configurare altri AWS servizi per analizzare ulteriormente e agire in base ai dati degli eventi raccolti nei log. CloudTrail Per ulteriori informazioni, consulta:

Tutti gli IAM e AWS STS le azioni vengono registrati CloudTrail e documentati nell'IAM API Reference e nell'Servizio di token di sicurezza AWS API Reference.

Registrazione di IAM e AWS STS Richieste API

CloudTrail registra tutte le richieste API autenticate in IAM e nelle operazioni AWS STS API. CloudTrail registra inoltre le richieste non autenticate relative alle AWS STS azioni AssumeRoleWithSAML e registra AssumeRoleWithWebIdentity le informazioni fornite dal provider di identità. Tuttavia, alcune AWS STS richieste non autenticate potrebbero non essere registrate perché non soddisfano l'aspettativa minima di essere sufficientemente valide da essere considerate attendibili come richiesta legittima. CloudTrail non registra AWS STS le richieste negate nell'account di destinazione per i presupposti di ruolo tra più account e le sessioni privilegiate avviate tramite l'API. AssumeRoot

Queste informazioni registrate possono essere utilizzate per mappare le chiamate effettuate da un principale federato OIDC o SAML con un ruolo assunto al chiamante federato esterno di origine. In caso diAssumeRole, è possibile mappare le chiamate al AWS servizio di origine o all'account dell'utente di origine. La userIdentity sezione dei dati JSON nella voce di CloudTrail registro contiene le informazioni necessarie per mappare la AssumeRole* richiesta con un responsabile di sessione specifico. Per ulteriori informazioni, vedere CloudTrail UserIdentity Element nella Guida per l'AWS CloudTrail utente.

AWS CloudTrail i log conterranno informazioni MFA quando l'utente IAM accede con MFA. Se l'utente IAM assume un ruolo IAM, CloudTrail mfaAuthenticated: true accederà anche sessionContext agli attributi per le azioni eseguite utilizzando il ruolo assunto. Tuttavia, la CloudTrail registrazione è separata da ciò che richiede IAM quando le chiamate API vengono effettuate con le credenziali del ruolo assunto. Per ulteriori informazioni, consulta Elemento CloudTrail userIdentity.

Ad esempio, le chiamate a IAM CreateUser e DeleteRole ListGroups ad altre operazioni API vengono tutte registrate. CloudTrail

Esempi di questo tipo di voce di log sono riportati più avanti in questo argomento.

Registrazione delle richieste API su altri AWS services

Le richieste autenticate ad altre operazioni dell'API del AWS servizio vengono registrate CloudTrail e queste voci di registro contengono informazioni su chi ha generato la richiesta.

Ad esempio, supponiamo di effettuare una richiesta per elencare le istanze Amazon EC2 o creare un gruppo di implementazione AWS CodeDeploy . I dettagli sulla persona o sul servizio che ha effettuato la richiesta sono contenuti nella voce di log per quella richiesta. Queste informazioni consentono di determinare se la richiesta è stata effettuata da un utente IAM Utente root dell'account AWS, da un ruolo o da un altro AWS servizio.

Per maggiori dettagli sulle informazioni sull'identità dell'utente nelle voci di CloudTrail registro, consulta UserIdentity Element nella Guida per l'AWS CloudTrail utente.

Registrazione di eventi di accesso dell'utente

CloudTrail registra gli eventi di accesso a strumenti di sviluppo locali come SDK, forum di AWS discussione AWS CLI e. Console di gestione AWS Marketplace AWS CloudTrailregistra i tentativi di accesso riusciti e non riusciti per gli utenti IAM, i principali federati SAML e OIDC e gli user principal federati. AWS STS

Per visualizzare CloudTrail gli eventi di esempio relativi agli accessi degli utenti root riusciti e non riusciti, consulta Example event records for root users nella Guida per l'utente. AWS CloudTrail

Come best practice di sicurezza, AWS non registra il testo del nome utente IAM immesso quando l'errore di accesso è causato da un nome utente errato. Il nome utente viene mascherato dal valore HIDDEN_DUE_TO_SECURITY_REASONS. Per un esempio di questo caso, consultare Esempio di evento di accesso non riuscito a causa di un nome utente non corretto più avanti in questo argomento. Il testo del nome utente viene oscurato perché tali errori potrebbero essere causati da errori utente. La registrazione di questi errori potrebbe esporre informazioni potenzialmente sensibili. Ad esempio:

  • L'utente ha immesso accidentalmente la password nella casella del nome utente.

  • Scegli il link per la pagina di accesso di uno Account AWS, ma poi digiti il numero di account per un altro. Account AWS

  • L'utente ha dimenticato a quale account stava eseguendo l'accesso e ha accidentalmente digitato il nome dell'account e-mail personale, l'identificatore di accesso bancario o un altro ID privato.

Registrazione di eventi di accesso per credenziali temporanee

Quando un principale richiede credenziali temporanee, il tipo di principale determina il modo in cui CloudTrail registra l'evento. Questo può essere complicato quando un principale assume un ruolo in un altro account. Esistono più chiamate API per eseguire operazioni correlate a operazioni multiaccount al ruolo. Innanzitutto, il principale chiama un' AWS STS API per recuperare le credenziali temporanee. Tale operazione viene registrata nell'account chiamante e nell'account in cui viene AWS STS eseguita l'operazione. Quindi l'entità principale utilizza il ruolo per eseguire altre chiamate API nell'account del ruolo assunto.

È possibile utilizzare la chiave di condizione sts:SourceIdentity nella policy di attendibilità del ruolo per richiedere agli utenti di specificare un'identità quando assumono un ruolo. Ad esempio, è possibile richiedere che gli utenti IAM specifichino il proprio nome utente come identità di origine. In questo modo è possibile determinare quale utente ha eseguito un'operazione specifica in AWS. Per ulteriori informazioni, consulta sts:SourceIdentity. Puoi utilizzare sts:RoleSessionName anche per richiedere agli utenti di specificare un nome di sessione quando assumono un ruolo. Questo può aiutarti a distinguere le sessioni di ruolo per un ruolo utilizzato da diversi responsabili durante la revisione dei registri. AWS CloudTrail

La tabella seguente mostra come vengono CloudTrail registrate le diverse informazioni sull'identità utente per ciascuna delle AWS STS API che generano credenziali temporanee.

Tipo di entità principale API STS Identità utente nel CloudTrail registro per l'account del chiamante Identità utente nel CloudTrail registro per l'account del ruolo assunto Identità dell'utente nel CloudTrail registro per le successive chiamate API del ruolo
Utente root dell'account AWS credenziali GetSessionToken Identità utente root L'account proprietario del ruolo è uguale all'account chiamante Identità utente root
Utente root dell'account AWS credenziali AssumeRoot Sessione dell'utente root Numero di account e ID principale (se utente) Sessione dell'utente root
Utente IAM GetSessionToken Identità utente IAM L'account proprietario del ruolo è uguale all'account chiamante Identità utente IAM
Utente IAM GetFederationToken Identità utente IAM L'account proprietario del ruolo è uguale all'account chiamante Identità utente IAM
Utente IAM AssumeRole Identità utente IAM Numero di conto e ID principale (se utente) o principale AWS del servizio Solo identità ruolo (nessun utente)
Utente autenticato esternamente AssumeRoleWithSAML n/a Identità utente SAML Solo identità ruolo (nessun utente)
Utente autenticato esternamente AssumeRoleWithWebIdentity n/a OIDC/Web identità dell'utente Solo identità ruolo (nessun utente)

CloudTrail considera un'azione di sola lettura se non ha alcun effetto mutante su una risorsa. Quando si registra un evento di sola CloudTrail lettura, oscura le informazioni nel registro. responseElements Quando CloudTrail registra un evento che non è di sola lettura, nella voce di registro responseElements viene visualizzato il testo completo. Per le AWS STS API e AssumeRole AssumeRoleWithSAMLAssumeRoleWithWebIdentity, anche se sono registrate in sola lettura, CloudTrail includerà la versione completa responseElements tranne secretAccessKey nel registro per queste API.

La tabella seguente mostra in che modo CloudTrail i registri responseElements e readOnly le informazioni per ciascuna delle AWS STS API generano credenziali temporanee.

API STS Informazioni sugli elementi della risposta Read-only
AssumeRole Incluso true
AssumeRoleWithSAML Incluso true
AssumeRoleWithWebIdentity Incluso true
AssumeRoot Incluso false
GetFederationToken Incluso false
GetSessionToken Incluso false

Esempi di eventi dell'API IAM nel registro CloudTrail

CloudTrail i file di registro contengono eventi formattati utilizzando JSON. Un evento API rappresenta una singola richiesta API e include informazioni sul principale, l'operazione richiesta, gli eventuali parametri e la data e l'ora dell'operazione.

Esempio di evento API IAM nel file di registro CloudTrail

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta effettuata per l'GetUserPolicyazione IAM.

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE:Role-Session-Name", "arn": "arn:aws:sts::111122223333:assumed-role/Role-Name/Role-Session-Name", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-09-09T17:50:16Z", "mfaAuthenticated": "false" } } }, "eventTime": "2024-09-09T17:51:44Z", "eventSource": "iam.amazonaws.com", "eventName": "GetUserPolicy", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.16.96 Python/2.7.8 Linux/10 botocore/1.12.86", "requestParameters": { "userName": "ExampleIAMUserName", "policyName": "ExamplePoliccyName" }, "responseElements": null, "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE", "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "iam.amazonaws.com" } }

Da queste informazioni sull'evento puoi determinare che la richiesta è stata effettuata per ottenere una policy utente denominata ReadOnlyAccess-JaneDoe-201407151307 per l'utente JaneDoe, come specificato nell'elemento requestParameters. Puoi anche consultare che la richiesta è stata effettuata da un utente IAM denominato JaneDoe in data 15 luglio 2014 alle 21:40 UTC. In questo caso, la richiesta ha avuto origine in Console di gestione AWS, come si può vedere dall'userAgentelemento.

Esempio AWS STS Eventi API nel registro CloudTrail

CloudTrail i file di registro contengono eventi formattati utilizzando JSON. Un evento API rappresenta una singola richiesta API e include informazioni sul principale, l'operazione richiesta, gli eventuali parametri e la data e l'ora dell'operazione.

Esempio di account multiplo AWS STS Eventi API nei CloudTrail file di registro

L'utente IAM indicato John nell'account 777788889999 chiama l' AWS STS AssumeRoleazione per assumere il ruolo EC2-dev nell'account 111122223333. Quando si assume il ruolo, l'amministratore dell'account richiede agli utenti di impostare un'identità di origine uguale al proprio nome utente. L'utente passa il valore dell'identità di origine di John.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:user/John", "accountId": "777788889999", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "John" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/EC2-dev", "roleSessionName": "John-EC2-dev", "sourceIdentity": "John", "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "expiration": "Jul 18, 2023, 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:John-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/John-EC2-dev" }, "sourceIdentity": "John" }, "resources": [ { "ARN": "arn:aws:iam::111122223333:role/EC2-dev", "accountId": "111122223333", "type": "AWS::IAM::Role" } ], "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

Il secondo esempio mostra la voce di CloudTrail registro dell'account con ruolo assunto (111122223333) per la stessa richiesta.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "accountId": "777788889999" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/EC2-dev", "roleSessionName": "John-EC2-dev", "sourceIdentity": "John", "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "expiration": "Jul 18, 2014, 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:John-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/John-EC2-dev" }, "sourceIdentity": "John" }, "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" }

Esempio AWS STS evento API di concatenamento dei ruoli nel file di registro CloudTrail

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta effettuata da John Doe nell'account 1111. John in precedenza utilizzava il suo utente John per assumere il ruolo JohnRole1. Per questa richiesta, utilizza le credenziali di tale ruolo per assumere il ruolo JohnRole2. Questo è noto come concatenazione del ruolo. L'identità di origine che ha impostato quando ha assunto il ruolo John1 persiste nella richiesta per assumere JohnRole2. Se John prova a impostare un'identità di origine diversa quando assume il ruolo, la richiesta viene rifiutata. John passa due tag di sessione nella richiesta. Imposta questi due tag come transitivi. La richiesta eredita il tag Department come transitivo perché John lo ha impostato come transitivo quando ha assunto JohnRole1. Per ulteriori informazioni sull'identità di origine, consulta Monitoraggio e controllo delle operazioni intraprese con i ruoli assunti. Per ulteriori informazioni sulle chiavi transitive nelle catene di ruoli, consulta Concatenamento dei ruoli con i tag di sessione.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIN5ATK5U7KEXAMPLE:JohnRole1", "arn": "arn:aws:sts::111111111111:assumed-role/John/JohnRole1", "accountId": "111111111111", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2019-10-02T21:50:54Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIN5ATK5U7KEXAMPLE", "arn": "arn:aws:iam::111111111111:role/JohnRole1", "accountId": "111111111111", "userName": "John" }, "sourceIdentity": "John" } }, "eventTime": "2019-10-02T22:12:29Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "123.145.67.89", "userAgent": "aws-cli/1.16.248 Python/3.4.7 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 botocore/1.12.239", "requestParameters": { "incomingTransitiveTags": { "Department": "Engineering" }, "tags": [ { "value": "johndoe@example.com", "key": "Email" }, { "value": "12345", "key": "CostCenter" } ], "roleArn": "arn:aws:iam::111111111111:role/JohnRole2", "roleSessionName": "Role2WithTags", "sourceIdentity": "John", "transitiveTagKeys": [ "Email", "CostCenter" ], "durationSeconds": 3600 }, "responseElements": { "credentials": { "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "expiration": "Oct 2, 2019, 11:12:29 PM", "sessionToken": "AgoJb3JpZ2luX2VjEB4aCXVzLXdlc3QtMSJHMEXAMPLETOKEN+//rJb8Lo30mFc5MlhFCEbubZvEj0wHB/mDMwIgSEe9gk/Zjr09tZV7F1HDTMhmEXAMPLETOKEN/iEJ/rkqngII9///////////ARABGgw0MjgzMDc4NjM5NjYiDLZjZFKwP4qxQG5sFCryASO4UPz5qE97wPPH1eLMvs7CgSDBSWfonmRTCfokm2FN1+hWUdQQH6adjbbrVLFL8c3jSsBhQ383AvxpwK5YRuDE1AI/+C+WKFZb701eiv9J5La2EXAMPLETOKEN/c7S5Iro1WUJ0q3Cxuo/8HUoSxVhQHM7zF7mWWLhXLEQ52ivL+F6q5dpXu4aTFedpMfnJa8JtkWwG9x1Axj0Ypy2ok8v5unpQGWych1vwdvj6ez1Dm8Xg1+qIzXILiEXAMPLETOKEN/vQGqu8H+nxp3kabcrtOvTFTvxX6vsc8OGwUfHhzAfYGEXAMPLETOKEN/L6v1yMM3B1OwFOrQBno1HEjf1oNI8RnQiMNFdUOtwYj7HUZIOCZmjfN8PPHq77N7GJl9lzvIZKQA0Owcjg+mc78zHCj8y0siY8C96paEXAMPLETOKEN/E3cpksxWdgs91HRzJWScjN2+r2LTGjYhyPqcmFzzo2mCE7mBNEXAMPLETOKEN/oJy+2o83YNW5tOiDmczgDzJZ4UKR84yGYOMfSnF4XcEJrDgAJ3OJFwmTcTQICAlSwLEXAMPLETOKEN" }, "assumedRoleUser": { "assumedRoleId": "AROAIFR7WHDTSOYQYHFUE:Role2WithTags", "arn": "arn:aws:sts::111111111111:assumed-role/test-role/Role2WithTags" }, "sourceIdentity": "John" }, "requestID": "b96b0e4e-e561-11e9-8b3f-7b396EXAMPLE", "eventID": "1917948f-3042-46ec-98e2-62865EXAMPLE", "resources": [ { "ARN": "arn:aws:iam::111111111111:role/JohnRole2", "accountId": "111111111111", "type": "AWS::IAM::Role" } ], "eventType": "AwsApiCall", "recipientAccountId": "111111111111" }

Esempio AWS service AWS STS Evento API nel file di registro CloudTrail

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta effettuata da un AWS servizio che chiama l'API di un altro servizio utilizzando le autorizzazioni di un ruolo di servizio. Mostra la voce di CloudTrail registro per la richiesta effettuata nell'account 777788889999.

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AROAQRSTUVWXYZEXAMPLE:devdsk", "arn": "arn:aws:sts::777788889999:assumed-role/AssumeNothing/devdsk", "accountId": "777788889999", "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2016-11-14T17:25:26Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:role/AssumeNothing", "accountId": "777788889999", "userName": "AssumeNothing" } } }, "eventTime": "2016-11-14T17:25:45Z", "eventSource": "s3.amazonaws.com", "eventName": "DeleteBucket", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.1", "userAgent": "[aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67]", "requestParameters": { "bucketName": "amzn-s3-demo-bucket" }, "responseElements": null, "requestID": "EXAMPLE463D56D4C", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "777788889999" }

Esempio SAML AWS STS Evento API nel CloudTrail file di registro

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta effettuata per l' AWS STS AssumeRoleWithSAMLazione. La richiesta include gli attributi SAML CostCenter e Project che vengono passati tramite l'asserzione SAML come tag di sessione. Tali tag sono impostati come transitivi in modo da garantirne la persistenza negli scenari di concatenazione del ruolo. La richiesta include il parametro API opzionaleDurationSeconds, rappresentato come durationSeconds nel CloudTrail registro, ed è impostata su 1800 secondi. La richiesta include anche l'attributo SAML sourceIdentity, che viene inviato nell'asserzione SAML. Se un utente utilizza le credenziali della sessione del ruolo risultante per assumere un altro ruolo, questa identità di origine persiste.

{ "eventVersion": "1.08", "userIdentity": { "type": "SAMLUser", "principalId": "SampleUkh1i4+ExamplexL/jEvs=:SamlExample", "userName": "SamlExample", "identityProvider": "bdGOnTesti4+ExamplexL/jEvs=" }, "eventTime": "2023-08-28T18:30:58Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithSAML", "awsRegion": "us-east-2", "sourceIPAddress": "AWS Internal", "userAgent": "aws-internal/3 aws-sdk-java/1.12.479 Linux/5.10.186-157.751.amzn2int.x86_64 OpenJDK_64-Bit_Server_VM/17.0.7+11 java/17.0.7 kotlin/1.3.72 vendor/Amazon.com_Inc. cfg/retry-mode/standard", "requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyAssignedRoleSessionName", "sourceIdentity": "MySAMLUser", "principalTags": { "CostCenter": "987654", "Project": "Unicorn", "Department": "Engineering" }, "transitiveTagKeys": [ "CostCenter", "Project" ], "roleArn": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth", "principalArn": "arn:aws:iam::444455556666:saml-provider/Shibboleth", "durationSeconds": 1800 }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "<encoded session token blob>", "expiration": "Aug 28, 2023, 7:00:58 PM" }, "assumedRoleUser": { "assumedRoleId": "AROAD35QRSTUVWEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/SAMLTestRoleShibboleth/MyAssignedRoleSessionName" }, "packedPolicySize": 1, "subject": "SamlExample", "subjectType": "transient", "issuer": "https://server.example.com/idp/shibboleth", "audience": "https://signin.aws.amazon.com/saml", "nameQualifier": "bdGOnTesti4+ExamplexL/jEvs=", "sourceIdentity": "MySAMLUser" }, "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "readOnly": true, "resources": [ { "accountId": "444455556666", "type": "AWS::IAM::Role", "ARN": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth" }, { "accountId": "444455556666", "type": "AWS::IAM::SAMLProvider", "ARN": "arn:aws:iam::444455556666:saml-provider/test-saml-provider" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "444455556666", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.2", "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256", "clientProvidedHostHeader": "sts.us-east-2.amazonaws.com" } }

Esempio: OIDC AWS STS Evento API nel file di registro CloudTrail

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta effettuata per l' AWS STS AssumeRoleWithWebIdentityazione. La richiesta include gli attributi CostCenter e Project che vengono passati tramite il token di un gestore dell'identità digitale OpenID Connect (OIDC) come tag di sessione. Tali tag sono impostati come transitivi in modo da garantirne la persistenza negli scenari di concatenazione del ruolo. La richiesta include l'attributo sourceIdentity dal token del provider di identità. Se un utente utilizza le credenziali della sessione del ruolo risultante per assumere un altro ruolo, questa identità di origine persiste.

La voce di CloudTrail registro contiene anche un additionalEventData campo con un identityProviderConnectionVerificationMethod attributo. Questo attributo indica il metodo AWS utilizzato per verificare la connessione con il provider OIDC. Il valore dell'attributo sarà IAMTrustStore o Thumbprint. Il IAMTrustStore valore indica che la connessione con l'IdP OIDC è AWS stata verificata con successo utilizzando la nostra libreria di autorità di certificazione (CA) affidabili. Il Thumbprint valore indica che è stata AWS utilizzata un'impronta personale del certificato impostata nella configurazione IdP per verificare il certificato del server IdP OIDC.

{ "eventVersion": "1.08", "userIdentity": { "type": "WebIdentityUser", "principalId": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>:<id of application>:<id of user>", "userName": "<id of user>", "identityProvider": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>" }, "eventTime": "2024-07-09T15:41:37Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithWebIdentity", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/2.13.29 Python/3.11.6 Windows/10 exe/AMD64 prompt/off command/sts.assume-role-with-web-identity", "requestParameters": { "roleArn": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "roleSessionName": "<assigned role session name>", "sourceIdentity": "MyWebIdentityUser", "durationSeconds": 3600, "principalTags": { "CostCenter": "24680", "Project": "Pegasus" }, "transitiveTagKeys": [ "CostCenter", "Project" ] }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "<encoded session token blob>", "expiration": "Jul 9, 2024, 4:41:37 PM" }, "subjectFromWebIdentityToken": "<id of user>", "sourceIdentity": "MyWebIdentityUser", "assumedRoleUser": { "assumedRoleId": "AROA123456789EXAMPLE:<assigned role session name>", "arn": "arn:aws:sts::444455556666:assumed-role/FederatedWebIdentityRole/<assigned role session name>" }, "provider": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>", "audience": "<id of application>" }, "additionalEventData": { "identityProviderConnectionVerificationMethod": "IAMTrustStore" }, "requestID": "aEXAMPLE-0b26-40df-8973-c7012EXAMPLE", "eventID": "aEXAMPLE-ee29-4ac0-a0ed-3f5c5EXAMPLE", "readOnly": true, "resources": [ { "accountId": "444455556666", "type": "AWS::IAM::Role", "ARN": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "444455556666", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "sts.us-east-2.amazonaws.com" } }

Esempio AWS STS Evento API che utilizza l'endpoint globale nel file di registro CloudTrail

Per le richieste all'endpoint globale Servizio di token di sicurezza AWS (AWS STS) (https://sts.amazonaws.com), AWS STS include campi di AWS CloudTrail registro aggiuntivi: endpointType e. awsServingRegion Questi campi vengono visualizzati sotto l'additionalEventDataRequestDetailselemento per registrare il tipo di server Regione AWS e di endpoint chiamato. Il campo endpointType può avere un valore di global o regional per indicare il tipo di endpoint globale che ha servito la richiesta. Per ulteriori informazioni sulle modifiche AWS STS globali agli endpoint, vedere. AWS STS Regioni ed endpoint

Nota

AWS CloudTrail i registri delle richieste effettuate all'endpoint AWS STS globale verranno inviati alla regione Stati Uniti orientali (Virginia settentrionale). CloudTrail i registri delle richieste servite dagli endpoint AWS STS regionali continueranno a essere registrati nelle rispettive aree geografiche. CloudTrail

L'esempio seguente mostra una voce di CloudTrail registro per una AWS STS richiesta effettuata all'endpoint globale (https://sts.amazonaws.com) proveniente dalla regione Europa (Stoccolma) - eu-north-1. Il valore del endpointType campo di global indica che la AWS STS richiesta è stata soddisfatta dall'endpoint globale nella regione Europa (Stoccolma).

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:developer", "arn": "arn:aws:sts::777788889999:assumed-role/Admin/developer", "accountId": "777788889999", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::777788889999:role/Admin", "accountId": "777788889999", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2025-02-12T21:44:28Z", "mfaAuthenticated": "false" } } }, "eventTime": "2025-02-12T22:16:48Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/2.15.33 Python/3.11.8 Linux/5.10.233-204.894.amzn2int.x86_64 exe/x86_64.amzn.2 prompt/off command/sts.assume-role", "requestParameters": { "roleArn": "arn:aws:iam::777788889999:role/test-role", "roleSessionName": "test-global-assume-role" }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "<encoded session token blob>", "expiration": "Feb 12, 2025, 11:16:48 PM" }, "assumedRoleUser": { "assumedRoleId": "AROA987654321EXAMPLE:test-global-assume-role", "arn": "arn:aws:sts::777788889999:assumed-role/test-role/test-global-assume-role" } }, "additionalEventData": { "RequestDetails": { "awsServingRegion": "eu-north-1", "endpointType": "global" } }, "requestID": "EXAMPLE7-2497-457a-9586-f21feEXAMPLE", "eventID": "EXAMPLEc-3d26-4c3a-9c94-722a9EXAMPLE", "readOnly": true, "resources": [ { "accountId": "777788889999", "type": "AWS::IAM::Role", "ARN": "arn:aws:iam::777788889999:role/test-role" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "777788889999", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "sts-global.eu-north-1.amazonaws.com" } }

Per fare un confronto, l'esempio seguente mostra una voce di CloudTrail registro per una AWS STS richiesta effettuata all'endpoint regionale (https://sts.us-west-2.amazonaws.com) che è stata servita dall'endpoint regionale nella regione Europa (Stoccolma) - eu-north-1. Il valore del endpointType campo di regional indica che la AWS STS richiesta è stata soddisfatta dall'endpoint globale nella regione Europa (Stoccolma).

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:developer", "arn": "arn:aws:sts::777788889999:assumed-role/Admin/developer", "accountId": "777788889999", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::777788889999:role/Admin", "accountId": "777788889999", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2025-02-12T21:44:28Z", "mfaAuthenticated": "false" } } }, "eventTime": "2025-02-12T22:16:30Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "eu-north-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/2.15.33 Python/3.11.8 Linux/5.10.233-204.894.amzn2int.x86_64 exe/x86_64.amzn.2 prompt/off command/sts.assume-role", "requestParameters": { "roleArn": "arn:aws:iam::777788889999:role/test-role", "roleSessionName": "test-global-assume-role" }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "<encoded session token blob>", "expiration": "Feb 12, 2025, 11:16:30 PM" }, "assumedRoleUser": { "assumedRoleId": "AROA987654321EXAMPLE:test-global-assume-role", "arn": "arn:aws:sts::777788889999:assumed-role/test-role/test-global-assume-role" } }, "additionalEventData": { "RequestDetails": { "endpointType": "regional", "awsServingRegion": "eu-north-1" } }, "requestID": "EXAMPLEd-2116-4cd7-bd72-9f72fEXAMPLE", "eventID": "EXAMPLEd-219a-48ed-bc54-00e3cEXAMPLE", "readOnly": true, "resources": [ { "accountId": "777788889999", "type": "AWS::IAM::Role", "ARN": "arn:aws:iam::777788889999:role/test-role" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "777788889999", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "sts.eu-north-1.amazonaws.com" } }

Esempi di eventi di accesso nel registro CloudTrail

CloudTrail i file di registro contengono eventi formattati utilizzando JSON. Un evento di accesso rappresenta una singola richiesta di accesso e include informazioni sul principale di accesso, la regione e la data e l'ora dell'operazione.

Esempio di evento di successo dell'accesso nel file di registro CloudTrail

L'esempio seguente mostra una voce di CloudTrail registro relativa a un evento di accesso riuscito.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/John", "accountId": "111122223333", "userName": "John" }, "eventTime": "2014-07-16T15:49:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.110", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "requestParameters": null, "responseElements": { "ConsoleLogin": "Success" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/s3/", "MFAUsed": "No" }, "eventID": "3fcfb182-98f8-4744-bd45-10a395ab61cb" }

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta di codice di autorizzazione riuscita.

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROATJHQDX737YZP72NTF:thesjain-Isengard", "arn": "arn:aws:sts::225989345271:assumed-role/Admin/thesjain-Isengard", "accountId": "225989345271", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROATJHQDX737YZP72NTF", "arn": "arn:aws:iam::225989345271:role/Admin", "accountId": "225989345271", "userName": "Admin" }, "attributes": { "creationDate": "2025-11-17T22:50:14Z", "mfaAuthenticated": "false" } } }, "eventTime": "2025-11-17T22:51:32Z", "eventSource": "signin.amazonaws.com", "eventName": "AuthorizeOAuth2Access", "awsRegion": "us-east-1", "sourceIPAddress": "52.94.133.136", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36", "requestParameters": { "scope": "openid", "redirect_uri": "http://127.0.0.1:53037/oauth/callback", "code_challenge_method": "SHA-256", "client_id": "arn:aws:signin:::devtools/same-device" }, "responseElements": null, "additionalEventData": { "success": "true", "x-amzn-vpce-id": "" }, "requestID": "e2854c76-1cba-4360-9fd1-5037b591466b", "eventID": "59e1720d-3deb-44ff-933d-6828be2a860a", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "225989345271", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "us-east-1.signin.aws.amazon.com" } }

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta di creazione di token OAuth2 riuscita.

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROATJHQDX737YZP72NTF:jacobjoj-Isengard", "arn": "arn:aws:sts::225989345271:assumed-role/Admin/jacobjoj-Isengard", "accountId": "225989345271", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROATJHQDX737YZP72NTF", "arn": "arn:aws:iam::225989345271:role/Admin", "accountId": "225989345271", "userName": "Admin" }, "attributes": { "creationDate": "2025-11-18T20:38:10Z", "mfaAuthenticated": "false" } } }, "eventTime": "2025-11-18T20:38:44Z", "eventSource": "signin.amazonaws.com", "eventName": "CreateOAuth2Token", "awsRegion": "us-east-1", "sourceIPAddress": "15.248.6.6", "userAgent": "aws-cli/2.32.0 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,AA,Z,E cfg/retry-mode#standard md/installer#exe sid/35033f4ca1bd md/prompt#off md/command#login", "requestParameters": { "client_id": "arn:aws:signin:::devtools/same-device" }, "responseElements": null, "additionalEventData": { "success": "true", "x-amzn-vpce-id": "" }, "requestID": "94562943-c85b-4dc1-bf72-43b0fd42d6de", "eventID": "0b338fac-6a10-4740-b34d-1bb6923e799e", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "225989345271", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "us-east-1.signin.aws.amazon.com" } }

Per ulteriori dettagli sulle informazioni contenute nei file di CloudTrail registro, vedere CloudTrail Event Reference nella Guida per l'AWS CloudTrail utente.

Esempio di evento di errore di accesso nel CloudTrail file di registro

L'esempio seguente mostra una voce di CloudTrail registro per un evento di accesso non riuscito.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JaneDoe", "accountId": "111122223333", "userName": "JaneDoe" }, "eventTime": "2014-07-08T17:35:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.100", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "Failed authentication", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/sns", "MFAUsed": "No" }, "eventID": "11ea990b-4678-4bcd-8fbe-62509088b7cf" }

Da queste informazioni puoi determinare che il tentativo di accesso è stato effettuato da un utente IAM denominato JaneDoe, come riportato nell'elemento userIdentity. Puoi anche consultare che il tentativo di accesso non è riuscito, come indicato nell'elemento responseElements. Puoi verificare che JaneDoe ha provato ad accedere alla console Amazon SNS alle 17:35 UTC in data 8 luglio 2014.

Esempio di evento di accesso non riuscito a causa di un nome utente non corretto

L'esempio seguente mostra una voce di CloudTrail registro per un evento di accesso non riuscito causato dall'immissione di un nome utente errato da parte dell'utente. AWS maschera il userName testo con HIDDEN_DUE_TO_SECURITY_REASONS per evitare l'esposizione di informazioni potenzialmente sensibili.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "accountId": "123456789012", "accessKeyId": "", "userName": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "eventTime": "2015-03-31T22:20:42Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "No username found in supplied account", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true", "MobileVersion": "No", "MFAUsed": "No" }, "eventID": "a7654656-0417-45c6-9386-ea8231385051", "eventType": "AwsConsoleSignin", "recipientAccountId": "123456789012" }

Comportamento della policy di attendibilità del ruolo IAM

Il 21 settembre 2022, AWS ha apportato modifiche al comportamento della politica di fiducia dei ruoli di IAM per richiedere autorizzazioni esplicite in una politica di fiducia dei ruoli quando un ruolo si assume se stesso. I ruoli IAM nell'elenco dei comportamenti consentiti precedenti hanno un EventData campo aggiuntivo presente come esplicito per gli eventiTrustGrant . AssumeRole Il valore di explicitTrustGrant è false quando un ruolo nella precedente lista consentita si presume di utilizzare il comportamento precedente. Quando un ruolo nella precedente lista consentita assume se stesso ma il comportamento della policy di attendibilità dei ruoli è stato aggiornato per consentire esplicitamente al ruolo di assumere se stesso, il valore di explicitTrustGrant è true.

Solo un numero molto limitato di ruoli IAM è presente nell'elenco dei ruoli consentiti per il comportamento legacy e questo campo è presente nei CloudTrail log di questi ruoli solo quando si assumono autonomamente. Nella maggior parte dei casi, non è necessario che un ruolo IAM si assuma automaticamente. AWS consiglia di aggiornare i processi, il codice o le configurazioni per rimuovere questo comportamento o di aggiornare le politiche di fiducia dei ruoli per consentire esplicitamente questo comportamento. Per ulteriori informazioni, consulta Annuncio di un aggiornamento del comportamento delle policy di attendibilità dei ruoli di IAM.