Utilizzo di attributi per il controllo degli accessi - 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à.

Utilizzo di attributi per il controllo degli accessi

Attributes for access control è l'implementazione dei pool di identità di Amazon Cognito del controllo degli accessi basato sugli attributi (). ABAC Puoi utilizzare IAM le policy per controllare l'accesso alle AWS risorse tramite i pool di identità di Amazon Cognito in base agli attributi degli utenti. Questi attributi possono essere ricavati da provider di identità social e aziendali. Puoi mappare gli attributi all'interno dei token o delle SAML asserzioni di accesso e ID dei provider su tag a cui è possibile fare riferimento nelle politiche di autorizzazione. IAM

Puoi scegliere le mappature predefinite oppure creare le tue mappature personalizzate nei pool di identità di Amazon Cognito. Le mappature predefinite consentono di scrivere IAM politiche basate su un set fisso di attributi utente. Le mappature personalizzate consentono di selezionare un set personalizzato di attributi utente a cui si fa riferimento nelle politiche di autorizzazione. IAM I nomi degli attributi nella console Amazon Cognito sono mappati alla chiave Tag for principal, che sono i tag a cui si fa riferimento nella politica delle autorizzazioni. IAM

Ad esempio, supponiamo che tu sia proprietario di un servizio di streaming multimediale con un abbonamento gratuito e uno pagamento. Puoi archiviare i file multimediali in Amazon S3 e taggarli con tag gratuiti o premium. Puoi utilizzare gli attributi per il controllo dell'accesso per consentire l'accesso a contenuti gratuiti e a pagamento in base al livello di appartenenza dell'utente, che è parte del profilo dell'utente. Puoi mappare l'attributo membership a una chiave di tag per principal da trasmettere alla politica delle autorizzazioni. IAM In questo modo puoi creare una singola policy di autorizzazioni e consentire in modo condizionale l'accesso al contenuto premium in base al valore del livello di appartenenza e del tag nei file di contenuto.

L'uso degli attributi per controllare l'accesso offre molti vantaggi:

  • La gestione delle autorizzazioni è molto più efficiente quando si utilizzano gli attributi per il controllo degli accessi. È possibile creare una policy di autorizzazioni di base che utilizzi attributi utente anziché creare più policy per funzioni di lavori diversi.

  • Non è necessario aggiornare le policy ogni volta che si aggiungono o rimuovono risorse o utenti per l'applicazione. La policy di autorizzazione concede l'accesso solo agli utenti con gli attributi utente corrispondenti. Ad esempio, potrebbe essere necessario controllare l'accesso a determinati bucket S3 in base alla mansione degli utenti. In tal caso, puoi creare una policy di autorizzazioni per consentire l'accesso a questi file solo per gli utenti all'interno della mansione definita. Per ulteriori informazioni, consulta IAMTutorial: Use SAML session tags for ABAC.

  • Gli attributi possono essere passati come tag principali a una policy che consente o nega le autorizzazioni in base ai valori di tali attributi.

Utilizzo degli attributi per il controllo dell'accesso con i pool di identità di Amazon Cognito

Prima di utilizzare gli attributi per il controllo degli accessi, assicurati di soddisfare i seguenti prerequisiti:

Per utilizzare attributi per il controllo degli accessi, la richiesta impostata come origine del set di dati imposta il valore della Chiave tag scelta. Amazon Cognito applica la chiave e il valore del tag alla sessione dell'utente. IAMLe tue politiche possono valutare l'accesso dell'utente in base alla ${aws:PrincipalTag/tagkey} condizione. IAMvaluta il valore del tag dell'utente rispetto alla policy.

È necessario preparare IAM i ruoli di cui si desidera trasmettere le credenziali agli utenti. La policy di attendibilità di questi ruoli deve consentire ad Amazon Cognito di assumere il ruolo per l'utente. Per quanto riguarda gli attributi per il controllo degli accessi, devi inoltre consentire ad Amazon Cognito di applicare i tag principali alla sessione temporanea dell'utente. Concedi il permesso di assumere il ruolo con l'azione AssumeRoleWithWebIdentity. Concedi l'autorizzazione per applicare tag alle sessioni degli utenti con l'azione basata solo sull'autorizzazione sts:TagSession. Per ulteriori informazioni, consulta Passare i tag di sessione in  AWS Security Token Service nella Guida per l'utente di AWS Identity and Access Management . Per una policy di attendibilità che concede le autorizzazioni sts:AssumeRoleWithWebIdentity e sts:TagSession al principale del servizio Amazon Cognitocognito-identity.amazonaws.com, consulta Esempio di utilizzo di attributi per la policy di controllo degli accessi.

Per configurare gli attributi per il controllo degli accessi nella console
  1. Accedi alla console di Amazon Cognito e seleziona Pool di identità. Seleziona un pool di identità.

  2. Seleziona la scheda Accesso utente.

  3. Individua Provider di identità. Scegli il provider di identità da modificare. Se desideri aggiungere un nuovo IdP, seleziona Aggiungi provider di identità.

  4. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, scegli Modifica in Attributi per il controllo degli accessi.

    1. Per non applicare alcun tag principale, scegli Inattivo.

    2. Per applicare i tag principali in base alle richieste sub e aud, scegli Utilizza mappature predefinite.

    3. Per creare un tuo schema personalizzato di attributi dei tag principali, scegli Utilizza mappature personalizzate. Quindi, inserisci una Chiave tag che deve essere originata da ciascuna Richiesta che desideri rappresentare in un tag.

  5. Seleziona Salva modifiche.

Esempio di utilizzo di attributi per la policy di controllo degli accessi

Consideriamo uno scenario in cui un dipendente dell'ufficio legale di un'azienda deve riportare nei bucket tutti i file che appartengono al suo reparto e classificarli con il loro livello di sicurezza. Si supponga che il token che questo dipendente ottiene dal provider di identità contenga le seguenti attestazioni.

Attestazioni

{ . . "sub" : "57e7b692-4f66-480d-98b8-45a6729b4c88", "department" : "legal", "clearance" : "confidential", . . }

Questi attributi possono essere mappati ai tag e referenziati nelle politiche di IAM autorizzazione come tag principali. Adesso puoi possibile gestire l'accesso modificando il profilo utente sul provider di identità. In alternativa, puoi modificare gli attributi sul lato risorsa utilizzando nomi o tag senza modificare la policy stessa.

La seguente policy di autorizzazioni esegue due operazioni:

  • Consente l'accesso all'elenco a tutti i bucket S3 che terminano con un prefisso che corrisponde al nome del reparto dell'utente.

  • Consente l'accesso in lettura ai file in questi bucket, purché il tag di autorizzazione sul file corrisponda all'attributo di autorizzazione dell'utente.

Policy delle autorizzazioni

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:List*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}" }, { "Effect": "Allow", "Action": "s3:GetObject*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/clearance": "${aws:PrincipalTag/clearance}" } } } ] }

La policy di attendibilità determina chi può assumere questo ruolo. La policy di relazione di attendibilità consente l'utilizzo di sts:AssumeRoleWithWebIdentity e sts:TagSession per consentire l'accesso. Aggiunge condizioni per limitare la policy al pool di identità creato e garantisce che sia per un ruolo autenticato.

Policy di trust

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "IDENTITY-POOL-ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }

Disattivazione di attributi per il controllo degli accessi (console)

Segui questa procedura per disattivare gli attributi per il controllo degli accessi.

Per disattivare gli attributi per il controllo degli accessi nella console
  1. Accedi alla console di Amazon Cognito e seleziona Pool di identità. Seleziona un pool di identità.

  2. Seleziona la scheda Accesso utente.

  3. Individua Provider di identità. Scegli il provider di identità da modificare.

  4. Scegli Modifica in Attributi per il controllo degli accessi.

  5. Per non applicare alcun tag principale, scegli Inattivo.

  6. Seleziona Salva modifiche.

Mappature di provider predefinite

Nella tabella seguente sono riportate le informazioni di mappatura predefinite per i provider di autenticazione supportati da Amazon Cognito.

Provider Tipo di token Valori dei tag principal Esempio

Bacino d'utenza di Amazon Cognito

Token ID

aud(client ID) and sub(user ID)

"6jk8ltokc7ac9es6jrtg9q572f", "57e7b692-4f66-480d-98b8-45a6729b4c88"

Facebook

Token di accesso

aud(app_id), sub(user_id)

"492844718097981", "112177216992379"

Google

Token ID

aud(client ID) and sub(user ID)

"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097"

SAML

Asserzioni

"http://schemas.xmlsoap. org/ws/2005/05/identity/claims/nameidentifier" , "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name»

"auth0|5e28d196f8f55a0eaaa95de3", "user123@gmail.com"

Apple

Token ID

aud(client ID) and sub (user ID)

"com.amazonaws.ec2-54-80-172-243.compute-1.client", "001968.a6ca34e9c1e742458a26cf8005854be9.0733"

Amazon

Token di accesso

aud (Client ID on Amzn Dev Ac), user_id(user ID)

«amzn1.application-oa2-client.9d70d9382d3446108aaee3dd763a0fa6", «amzn1.account. AGHNIFJQMFSBG3G6XCPVB35ORQAA»

OIDCFornitori standard

Token ID e token di accesso

aud (as client_id), sub (as user ID)

"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097"

Twitter

Token di accesso

aud (app ID; app Secret), sub (user ID)

“DfwifTtKEX1FiIBRnOTlR0CFK;Xgj5xb8xIrIVCPjXgLIdkW7fXmwcJJrFvnoK9gwZkLexo1y5z1", “1269003884292222976"

DevAuth

Eseguire la mappatura

Non applicabile

"tag1", "tag2"

Nota

L'opzione di mappatura degli attributi predefinita viene popolata automaticamente per Chiave tag per principal e Nomi attributo. Non è possibile modificare le mappature predefinite.