Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Utilizzo del controllo degli accessi basato su ruoli

Modalità Focus
Utilizzo del controllo degli accessi basato su ruoli - Amazon Cognito

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à.

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à.

I pool di identità di Amazon Cognito assegnano agli utenti autenticati una serie di credenziali temporanee con privilegi limitati per accedere alle tue risorse. AWS Le autorizzazioni di ciascun utente vengono controllate attraverso i ruoli IAM che hai creato. Puoi definire le regole per scegliere il ruolo di ogni utente sulla base delle richieste nel token ID dell'utente. Puoi definire un ruolo di default per gli utenti autenticati. Puoi inoltre definire un ruolo IAM separato con autorizzazioni limitate per gli utenti guest non autenticati.

Creazione dei ruoli per la mappatura dei ruoli

È importante aggiungere la policy di attendibilità appropriata per ogni ruolo, in modo che possa essere assunta da Amazon Cognito solo per gli utenti autenticati nel pool di identità. Di seguito viene riportato un esempio di suddetta policy di attendibilità:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-corner-cafe-123456790ab" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }

Questa policy consente agli utenti federati di cognito-identity.amazonaws.com (approvatore del token OpenID Connect) di assumere questo ruolo. Inoltre la policy limita l'aud del token, in questo caso l'ID dei pool di identità, in base al pool di identità. Infine, la policy specifica che uno dei membri dell'array dell'attestazione amr con più valori del token emesso dall'operazione API GetOpenIdToken Amazon Cognito ha il valore authenticated.

Concessione delle autorizzazioni per il passaggio di ruoli

Per consentire a un utente di impostare ruoli con autorizzazioni superiori rispetto alle autorizzazioni dell'utente esistenti su un pool di identità, concedere loro l'autorizzazione iam:PassRole per trasferire il ruolo all'API set-identity-pool-roles. Ad esempio, se l'utente non è in grado di scrivere su Amazon S3 ma il ruolo IAM che l'utente imposta nel pool di identità concede l'autorizzazione per scrivere su Amazon S3, l'utente può impostare questo ruolo solo se a quest'ultimo viene concessa l'autorizzazione iam:PassRole. Il seguente esempio di policy mostra come concedere l'autorizzazione iam:PassRole.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myS3WriteAccessRole" ] } ] }

In questo esempio di policy viene concessa l'autorizzazione iam:PassRole al ruolo myS3WriteAccessRole. Il ruolo viene specificato usando l'Amazon Resource Name (ARN) del ruolo. È necessario, inoltre, collegare questa policy all'utente. Per ulteriori informazioni, consulta la sezione relativa all'utilizzo di policy gestite.

Nota

Le funzioni Lambda usano una policy basata sulle risorse collegata direttamente alla funzione Lambda stessa. Quando crei una regola che invoca una funzione Lambda, non trasferisci un ruolo; pertanto, l'utente che crea la regola non richiede l'autorizzazione iam:PassRole. Per ulteriori informazioni sull'autorizzazione della funzione Lambda, consulta Gestione delle autorizzazioni: uso di una policy della funzione Lambda.

Utilizzo dei token per l'assegnazione dei ruoli agli utenti

Per gli utenti che effettuano l'accesso tramite il bacino d'utenza Amazon Cognito, i ruoli possono essere trasferiti nel token ID assegnato dal bacino d'utenza. I ruoli vengono visualizzati nelle seguenti attestazioni nel token ID:

  • L'attestazione cognito:preferred_role è il ruolo ARN.

  • L'cognito:rolesattestazione è una stringa separata da virgole contenente un set di ruoli consentiti. ARNs

Le attestazioni sono impostate come segue:

  • L'attestazione cognito:preferred_role è impostata sul ruolo del gruppo con il valore Precedence migliore (più basso). Se viene consentito un solo ruolo, cognito:preferred_role è impostato su tale ruolo. Se sono presenti più ruoli e nessun ruolo singolo ha la migliore precedenza, l'attestazione non è stata impostata.

  • L'attestazione cognito:roles è impostata se è presente almeno un ruolo.

Quando si utilizzano i token per l'assegnazione dei ruoli, se sono presenti più ruoli che possono essere assegnati all'utente, i pool di identità di Amazon Cognito (identità federate) selezionano il ruolo come segue:

  • Utilizza il GetCredentialsForIdentityCustomRoleArnparametro se è impostato e corrisponde a un ruolo nel claim. cognito:roles Se questo parametro non corrisponde a un ruolo in cognito:roles, nega l'accesso.

  • Se l'attestazione cognito:preferred_role è impostata, utilizzala.

  • Se l'cognito:preferred_roleattestazione non è impostata, viene impostata e non CustomRoleArn è specificata nella chiamata aGetCredentialsForIdentity, quindi l'impostazione della risoluzione dei ruoli nella console o nel AmbiguousRoleResolution campo (nel RoleMappings parametro dell'SetIdentityPoolRolesAPI) viene utilizzata per determinare il ruolo da assegnare. cognito:roles

Utilizzo di una mappatura basata su regole per assegnare i ruoli agli utenti

Le regole ti permettono di eseguire la mappatura delle attestazioni del token di un provider di identità per i ruoli IAM.

Ogni regola specifica l'attestazione di un token (ad esempio un attributo utente nel token ID di un bacino d'utenza di Amazon Cognito), il tipo di corrispondenza, un valore e un ruolo IAM. Il tipo di corrispondenza può essere Equals, NotEqual, StartsWith, o Contains. Se un utente dispone di un valore corrispondente all'attestazione, tale utente può assumere quel ruolo nel momento in cui ottiene le credenziali. Ad esempio, puoi creare una regola che assegna un determinato ruolo IAM agli utenti con un valore di attributo personalizzato custom:dept di Sales.

Nota

Nelle impostazioni delle regole, gli attributi personalizzati richiedono il prefisso custom: per distinguersi dagli attributi standard.

Le regole vengono valutate in ordine e viene utilizzato il ruolo IAM per la prima regola corrispondente, a meno che non sia specificato CustomRoleArn per sovrascrivere l'ordine. Per ulteriori informazioni sugli attributi utente nei bacini d'utenza di Amazon Cognito, consulta Utilizzo degli attributi utente.

Puoi impostare più regole per un provider di autenticazione nella console del pool di identità (identità federate). Le regole vengono applicate in ordine. Puoi trascinare le regole per modificarne l'ordine. La prima regola corrispondente ha la priorità. Se il tipo di corrispondenza è NotEqual e l'attestazione non esiste, la regola non viene valutata. Se nessuna delle regole corrisponde, l'impostazione Risoluzione del ruolo viene applicata su Utilizza ruolo autenticato predefinito o Nega richiesta.

Nell'API e nella CLI, puoi specificare il ruolo da assegnare quando nessuna regola corrisponde nel AmbiguousRoleResolution campo del RoleMappingtipo, che è specificato nel RoleMappings parametro dell'SetIdentityPoolRolesAPI.

Per aggiungere una mappatura basata su regole a un provider di identità nella console Amazon Cognito, aggiungi o aggiorna un IdP e seleziona Scegli ruolo con regole in Selezione ruolo. Da lì, puoi aggiungere regole che mappano le dichiarazioni del provider ai ruoli IAM.

Puoi configurare una mappatura basata su regole per i provider di identità nell'API AWS CLI o con il RulesConfiguration campo del tipo. RoleMapping È possibile specificare questo campo nel RoleMappings parametro dell'API. SetIdentityPoolRoles

Ad esempio, il AWS CLI comando seguente aggiunge una regola che assegna il ruolo arn:aws:iam::123456789012:role/Sacramento_team_S3_admin agli utenti nella tua sede di Sacramento che sono stati autenticati da OIDC IdP: arn:aws:iam::123456789012:oidc-provider/myOIDCIdP

aws cognito-identity set-identity-pool-roles --region us-east-1 --cli-input-json file://role-mapping.json

Contenuto di role-mapping.json:

{ "IdentityPoolId": "us-east-1:12345678-corner-cafe-123456790ab", "Roles": { "authenticated": "arn:aws:iam::123456789012:role/myS3WriteAccessRole", "unauthenticated": "arn:aws:iam::123456789012:role/myS3ReadAccessRole" }, "RoleMappings": { "arn:aws:iam::123456789012:oidc-provider/myOIDCIdP": { "Type": "Rules", "AmbiguousRoleResolution": "AuthenticatedRole", "RulesConfiguration": { "Rules": [ { "Claim": "locale", "MatchType": "Equals", "Value": "Sacramento", "RoleARN": "arn:aws:iam::123456789012:role/Sacramento_team_S3_admin" } ] } } } }

Per ogni bacino d'utenza o un altro provider di autenticazione configurato per un pool di identità, puoi creare fino a 25 regole. Questo limite non è regolabile. Per ulteriori informazioni, consulta la sezione Quote in Amazon Cognito.

Attestazioni dei token da utilizzare nella mappatura basata su regole

Amazon Cognito

Un token ID di Amazon Cognito è rappresentato come un token Web JSON (JWT). Il token contiene attestazioni relative all'identità dell'utente autenticato, ad esempio name family_name, e phone_number. Per ulteriori informazioni sulle attestazioni standard, consulta la specifica OpenID Connect. Oltre alle attestazioni standard, di seguito sono riportate le attestazioni aggiuntive specifiche di Amazon Cognito:

  • cognito:groups

  • cognito:roles

  • cognito:preferred_role

Amazon

Le seguenti attestazioni, insieme ai valori possibili per dette attestazioni, possono essere utilizzate con Login with Amazon:

  • iss: www.amazon.com

  • aud: Id app

  • sub: sub dal token di Login with Amazon

Facebook

Le seguenti attestazioni, insieme ai valori possibili per dette attestazioni, possono essere utilizzate con Facebook:

  • iss: graph.facebook.com

  • aud: Id app

  • sub: sub dal token di Facebook

Google

Un token di Google contiene attestazioni standard della specifica OpenID Connect. Tutte le attestazioni nel token di OpenID sono disponibili per la mappatura basata su regole. Consulta il sito OpenID Connect di Google per scoprire quali attestazioni sono disponibili nel token di Google.

Apple

Un token Apple contiene attestazioni standard della specifica OpenID Connect. Consulta Authenticating Users with Sign in with Apple (Autenticazione degli utenti con Accedi con Apple) nella documentazione di Apple per ulteriori informazioni sulle attestazioni disponibili tramite token Apple. Il token di Apple non sempre contiene email.

OpenID

Tutte le attestazioni nel token di Open Id sono disponibili per la mappatura basata su regole. Per ulteriori informazioni sulle attestazioni standard, consulta la specifica OpenID Connect. Consulta la documentazione relativa al provider di OpenID per scoprire le altre attestazioni aggiuntive disponibili.

SAML

Le attestazioni vengono ricavate analizzando l'asserzione SAML ricevuta. Tutte le attestazioni disponibili nell'asserzione SAML possono essere utilizzate nella mappatura basata su regole.

Best practice per il controllo accessi basato sui ruoli

Importante

Se l'attestazione che si sta mappando a un ruolo può essere modificata dall'utente finale, qualsiasi utente finale può assumere il ruolo e impostare la policy di conseguenza. Esegui la mappatura solo delle attestazioni che non possono essere direttamente impostate dall'utente finale ai ruoli con autorizzazioni elevate. In un bacino d'utenza di Amazon Cognito puoi impostare le autorizzazioni di lettura e di scrittura per app per ogni attributo utente.

Importante

Se imposti i ruoli per i gruppi in un bacino d'utenza di Amazon Cognito, tali ruoli vengono trasmessi tramite il token ID dell'utente. Per utilizzare questi ruoli, è necessario impostare anche Choose role from token (Scegli ruolo dal token) per la selezione del ruolo autenticato per il pool di identità.

È possibile utilizzare l'impostazione della risoluzione dei ruoli nella console e il RoleMappings parametro dell'SetIdentityPoolRolesAPI per specificare qual è il comportamento predefinito quando non è possibile determinare il ruolo corretto dal token.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.