Esempio di utilizzo di attributi per la policy di 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à.

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", . . }

È possibile eseguire la mappatura di questi attributi per i tag e si può fare riferimento ad essi nelle policy di autorizzazioni IAM come tag principal. 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" } } } ] }