Registrazione delle chiamate IAM e AWS STS 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 delle chiamate IAM e AWS STS 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 un 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 trail, puoi abilitare la distribuzione continua di CloudTrail eventi a un bucket Amazon S3. Se non configuri un percorso, puoi comunque visualizzare gli eventi più recenti nella CloudTrail console nella cronologia degli eventi. Puoi utilizzarlo CloudTrail per ottenere informazioni sulla richiesta che è stata fatta 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 ulteriori informazioni CloudTrail, consulta la Guida AWS CloudTrail per l'utente.

IAM e AWS STS informazioni in CloudTrail

CloudTrail è abilitato sul tuo Account AWS quando crei l'account. Quando si verifica un'attività in IAM or 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 eventi recenti in Account AWS. Per ulteriori informazioni, consulta Visualizzazione degli eventi con la cronologia degli CloudTrail eventi.

Per una registrazione continua degli eventi del tuo Account AWS, inclusi gli eventi per IAM e AWS STS, crea un percorso. Un trail 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 trail registra gli eventi di tutte le regioni della AWS partizione e consegna i file di log al bucket Amazon S3 specificato. Inoltre, puoi configurare altri AWS servizi per analizzare ulteriormente e agire in base ai dati sugli eventi raccolti nei log. CloudTrail Per ulteriori informazioni, consultare:

Tutti gli IAM e AWS STS le azioni vengono registrati CloudTrail e documentati negli IAM API Reference e API Reference.AWS Security Token Service

Registrazione delle richieste IAM e API AWS STS

CloudTrail registra tutte le richieste API autenticate su IAM e AWS STS sulle operazioni API. CloudTrail registra inoltre le richieste non autenticate alle AWS STS azioni AssumeRoleWithSAML e AssumeRoleWithWebIdentity registra 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 una richiesta legittima.

È possibile utilizzare le informazioni registrate per mappare le chiamate effettuate da un utente federato con un ruolo assunto al chiamante federato esterno di origine. Nel 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 utente federato specifico. Per ulteriori informazioni, consulta CloudTrail UserIdentity Element nella Guida per l'AWS CloudTrail utente.

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

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

Registrazione di richieste API ad altri servizi AWS

Le richieste autenticate ad altre operazioni dell'API di AWS servizio vengono registrate da 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 ulteriori dettagli sulle informazioni sull'identità dell'utente nelle voci di CloudTrail registro, vedere UserIdentity Element nella Guida per l'AWS CloudTrail utente.

Registrazione di eventi di accesso dell'utente

CloudTrail registra gli eventi di accesso ai AWS Management Console, ai forum di AWS discussione e. Marketplace AWS CloudTrailregistra i tentativi di accesso riusciti e non riusciti per gli utenti IAM e gli utenti federati.

Per visualizzare CloudTrail gli eventi di esempio relativi agli accessi riusciti e non riusciti degli utenti root, consulta Example event records for root users nella User Guide.AWS CloudTrail

Come procedura consigliata in materia 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 digita il numero di account per un'altra. 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 principale determina la modalità di CloudTrail registrazione dell'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 tra le sessioni di ruolo per un ruolo utilizzato da diversi responsabili durante la revisione dei registri. AWS CloudTrail

La tabella seguente mostra come CloudTrail registra 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 dell'account del chiamante Identità dell'utente nel CloudTrail registro dell'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 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 si tratta di un 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 Identità utente OIDC/Web 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, il dato completo responseElements viene visualizzato nella voce di registro. Tuttavia, per le AWS STS APIAssumeRole, e AssumeRoleWithSAMLAssumeRoleWithWebIdentity, anche se sono registrate come di sola lettura, CloudTrail includerà il dato completo responseElements nel registro di queste API.

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

API STS Informazioni sugli elementi di risposta Sola lettura
AssumeRole Incluse true
AssumeRoleWithSAML Incluso true
AssumeRoleWithWebIdentity Incluso true
GetFederationToken Incluso false
GetSessionToken Incluso false

Esempi di eventi dell'API IAM nel CloudTrail registro

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.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/JaneDoe", "accountId": "444455556666", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "JaneDoe", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-07-15T21:39:40Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-07-15T21:40:14Z", "eventSource": "iam.amazonaws.com", "eventName": "GetUserPolicy", "awsRegion": "us-east-2", "sourceIPAddress": "signin.amazonaws.com", "userAgent": "signin.amazonaws.com", "requestParameters": { "userName": "JaneDoe", "policyName": "ReadOnlyAccess-JaneDoe-201407151307" }, "responseElements": null, "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE", "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE" }

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 AWS Management Console, come si può vedere dall'userAgentelemento.

Esempi di eventi AWS STS 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.

Esempi di eventi AWS STS API tra account nei file di registro CloudTrail

L'utente IAM indicato JohnDoe nell'account 777788889999 richiama 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 JohnDoe.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:user/JohnDoe", "accountId": "777788889999", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "JohnDoe" }, "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": "JohnDoe-EC2-dev", "sourceIdentity": "JohnDoe", "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:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-EC2-dev" }, "sourceIdentity": "JohnDoe" }, "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 del 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": "JohnDoe-EC2-dev", "sourceIdentity": "JohnDoe", "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:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-EC2-dev" }, "sourceIdentity": "JohnDoe" }, "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" }

Esempio di evento API di concatenamento dei AWS STS 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 JohnDoe 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 JohnDoe1 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/JohnDoe/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": "JohnDoe" }, "sourceIdentity": "JohnDoe" } }, "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": "JohnDoe", "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": "JohnDoe" }, "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 di evento AWS STS API di servizio nel file di registro CloudTrail

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta effettuata da un AWS servizio che chiama un'altra API di 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": "my-test-bucket-cross-account" }, "responseElements": null, "requestID": "EXAMPLE463D56D4C", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "777788889999" }

Esempio di evento AWS STS API SAML nel file di registro CloudTrail

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 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 di evento AWS STS API OIDC nel CloudTrail file di registro

L'esempio seguente mostra una voce di CloudTrail registro per una richiesta effettuata per l'azione AWS STS AssumeRoleWithWebIdentity. La richiesta include gli attributi CostCenter e Project che vengono passati tramite il token di un provider di identità 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.

{ "eventVersion": "1.05", "userIdentity": { "type": "WebIdentityUser", "principalId": "accounts.google.com:<id-of-application>.apps.googleusercontent.com:<id-of-user>", "userName": "<id of user>", "identityProvider": "accounts.google.com" }, "eventTime": "2016-03-23T01:39:51Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithWebIdentity", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5", "requestParameters": { "sourceIdentity": "MyWebIdentityUser", "durationSeconds": 3600, "roleArn": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "roleSessionName": "MyAssignedRoleSessionName" "principalTags": { "CostCenter": "24680", "Project": "Pegasus" }, "transitiveTagKeys": [ "CostCenter", "Project" ], }, "responseElements": { "provider": "accounts.google.com", "subjectFromWebIdentityToken": "<id of user>", "sourceIdentity": "MyWebIdentityUser", "audience": "<id of application>.apps.googleusercontent.com", "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "expiration": "Mar 23, 2016, 2:39:51 AM", "sessionToken": "<encoded session token blob>" }, "assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/FederatedWebIdentityRole/MyAssignedRoleSessionName" } }, "resources": [ { "ARN": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "accountId": "444455556666", "type": "AWS::IAM::Role" } ], "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE", "eventID": "bEXAMPLE-0b30-4246-b28c-e3da3EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "444455556666" }

Esempio di eventi di accesso nel log 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 accesso riuscito nel file di registro CloudTrail

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

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JohnDoe", "accountId": "111122223333", "userName": "JohnDoe" }, "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" }

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

Esempio 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 relativa a un evento di accesso non riuscito causato dall'immissione di un nome utente errato da parte dell'utente. AWS maschera il userName testo con lo scopo HIDDEN_DUE_TO_SECURITY_REASONS di impedire la divulgazione 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" }

IAM role trust policy, comportamento

Il 21 settembre 2022, AWS ha apportato modifiche al comportamento della policy di trust dei ruoli IAM per richiedere una politica esplicita di autorizzazioni in un ruolo quando un ruolo si assume da solo. I ruoli IAM nella precedente lista dei comportamenti consentiti hanno un additionalEventData campo presente explicitTrustGrant per AssumeRole gli eventi. Il valore di explicitTrustGrant è falso quando un ruolo nella precedente lista consentita si presume di utilizzare il comportamento legacy. Quando un ruolo nella precedente lista consentita assume se stesso ma il comportamento della politica di fiducia 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 assumono se stessi. Nella maggior parte dei casi, non è necessario che un ruolo IAM assuma se stesso. AWS consiglia di aggiornare i processi, il codice o le configurazioni per rimuovere questo comportamento o di aggiornare le policy di fiducia dei ruoli per consentire esplicitamente questo comportamento. Per ulteriori informazioni, consulta Annuncio di un aggiornamento del comportamento delle policy di fiducia dei ruoli di IAM.