As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Permissões e confiança de função
A diferença dessas funções está em seus relacionamentos de confiança. Veja a seguir um exemplo de política de confiança para uma função não autenticada:
{ "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": "unauthenticated" } } } ] }
Essa política concede a usuários federados do cognito-identity.amazonaws.com
(o emissor do token do OpenID Connect) permissão para assumir essa função. Além disso, a política restringe o aud
do token, neste caso o ID do grupo de identidades, de acordo com o grupo de identidades. Por fim, a política especifica que um dos membros da matriz do da declaração amr
de múltiplo valor do token emitido pela operação da API GetOpenIdToken
do Amazon Cognito tem o valor unauthenticated
.
Quando o Amazon Cognito cria um token, ele define o amr
do token como unauthenticated
ou authenticated
. Se amr
for authenticated
, o token incluirá todos os provedores usados durante a autenticação. Isso significa que você pode criar uma função que confie apenas nos usuários que fizeram login por meio do Facebook, alterando a condição amr
tal como mostrado a seguir:
"ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "graph.facebook.com" }
Tenha cuidado ao alterar os relacionamentos de confiança em suas funções ou tentar usar funções entre grupos de identidades. Se você não configurar sua função corretamente para confiar em seu grupo de identidades, ocorrerá uma exceção no STS, semelhante à seguinte:
AccessDenied -- Not authorized to perform sts:AssumeRoleWithWebIdentity
Se você vir essa mensagem, verifique se seu grupo de identidades e o tipo de autenticação têm uma função apropriada.