Como o Amazon Cognito funciona com o IAM
Antes de usar o IAM para gerenciar o acesso ao Amazon Cognito, saiba quais atributos do IAM estão disponíveis para uso com o Amazon Cognito.
| Recurso do IAM | Suporte ao Amazon Cognito |
|---|---|
|
Sim |
|
|
Não |
|
|
Sim |
|
|
Sim |
|
|
Sim |
|
|
Não |
|
|
Parcial |
|
|
Sim |
|
|
Não |
|
|
Sim |
|
|
Sim |
Para obter uma visualização de alto nível de como o Amazon Cognito e outros serviços da AWS funcionam com a maioria dos atributos do IAM, consulte Serviços da AWS compatíveis com o IAM no Guia do usuário do IAM.
Políticas baseadas em identidade do Amazon Cognito
Compatível com políticas baseadas em identidade: sim
As políticas baseadas em identidade são documentos de políticas de permissões JSON que você pode anexar a uma identidade, como usuário do IAM, grupo de usuários ou perfil. Essas políticas controlam quais ações os usuários e perfis podem realizar, em quais recursos e em que condições. Para saber como criar uma política baseada em identidade, consulte Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente no Guia do Usuário do IAM.
Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte Referência de elemento de política JSON do IAM no Guia do usuário do IAM.
Exemplos de políticas baseadas em identidade para o Amazon Cognito
Para ver exemplos de políticas baseadas em identidade do Amazon Cognito, consulte Exemplos de políticas baseadas em identidade para o Amazon Cognito.
Políticas baseadas em recursos no Amazon Cognito
Compatibilidade com políticas baseadas em recursos: não
Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. São exemplos de políticas baseadas em recursos as políticas de confiança de perfil do IAM e as políticas de bucket do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. Para o atributo ao qual a política está anexada, a política define quais ações uma entidade principal especificado pode executar nesse atributo e em que condições. Você deve especificar uma entidade principal em uma política baseada em recursos. As entidades principais podem incluir contas, usuários, perfis, usuários federados ou Serviços da AWS.
Para permitir o acesso entre contas, você pode especificar uma conta inteira ou as entidades do IAM em outra conta como a entidade principal em uma política baseada em recursos. Consulte mais informações em Acesso a recursos entre contas no IAM no Guia do usuário do IAM.
Ações de políticas para o Amazon Cognito
Compatível com ações de políticas: sim
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento Action de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.
Para ver uma lista das ações do Amazon Cognito, consulte Ações definidas pelo Amazon Cognito na Referência de autorização do serviço.
As ações de políticas no Amazon Cognito usam o seguinte prefixo antes da ação:
cognito-identity
Para especificar várias ações em uma única declaração, separe-as com vírgulas.
"Action": [ "cognito-identity:action1", "cognito-identity:action2" ]
APIs assinadas vs. APIs não assinadas
Ao assinar solicitações de API do Amazon Cognito com credenciais da AWS, você pode restringi-las em uma política do AWS Identity and Access Management (IAM). As solicitações de API que devem ser assinadas com credenciais da AWS incluem login do lado do servidor com AdminInitiateAuth e ações que criam, visualizam ou modificam recursos do Amazon Cognito, como UpdateUserPool. Para ter mais informações sobre solicitações de API assinadas, consulte Assinar solicitações de API da AWS.
Como o Amazon Cognito é um produto de identidade de consumidor para aplicações a serem disponibilizadas ao público, você tem acesso às APIs não assinadas a seguir. Sua aplicação faz essas solicitações de API aos seus usuários e usuários em potencial. Algumas APIs não exigem autorização prévia, como a InitiateAuth, destinada a iniciar uma nova sessão de autenticação. Algumas APIs usam tokens de acesso ou chaves de sessão para autorização, como a VerifySoftwareToken, destinada a concluir a configuração de MFA para um usuário que tenha uma sessão autenticada. Uma API de grupos de usuários do Amazon Cognito autorizada, não assinada, aceita um parâmetro Session ou AccessToken na sintaxe da solicitação, conforme exibido na Referência de API do Amazon Cognito. Uma API não assinada do Amazon Cognito Identity aceita um parâmetro IdentityId, conforme exibido na Referência de API de identidades federadas do Amazon Cognito.
Para ter mais informações sobre os modelos de autorização e funções de operações da API de grupos de usuários do Amazon Cognito, consulte Lista de operações de API agrupadas por modelo de autorização.
Operações da API de bancos de identidades do Amazon Cognito
-
GetId -
GetOpenIdToken -
GetCredentialsForIdentity -
UnlinkIdentity
Operações da API de grupos de usuários do Amazon Cognito
-
AssociateSoftwareToken -
ChangePassword -
ConfirmDevice -
ConfirmForgotPassword -
ConfirmSignUp -
DeleteUser -
DeleteUserAttributes -
ForgetDevice -
ForgotPassword -
GetDevice -
GetUser -
GetUserAttributeVerificationCode -
GlobalSignOut -
InitiateAuth -
ListDevices -
ResendConfirmationCode -
RespondToAuthChallenge -
RevokeToken -
SetUserMFAPreference -
SetUserSettings -
SignUp -
UpdateAuthEventFeedback -
UpdateDeviceStatus -
UpdateUserAttributes -
VerifySoftwareToken -
VerifyUserAttribute
Para ver exemplos de políticas baseadas em identidade do Amazon Cognito, consulte Exemplos de políticas baseadas em identidade para o Amazon Cognito.
Recursos de políticas para o Amazon Cognito
Compatível com recursos de políticas: sim
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento de política JSON Resource especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Para ações que não são compatíveis com permissões no nível do recurso, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.
"Resource": "*"
Nomes do recurso da Amazon (ARNs)
ARNs para identidades federadas do Amazon Cognito
Nos grupos de identidades do Amazon Cognito (identidades federadas), é possível restringir o acesso de um usuário do IAM a um determinado grupo de identidades usando o formato de nome do recurso da Amazon (ARN), como no exemplo a seguir. Para mais informações sobre ARNs, consulte Identificadores do IAM.
arn:aws:cognito-identity:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID
ARNS para o Amazon Cognito Sync
Na sincronização do Amazon Cognito, os clientes também podem restringir o acesso por ID de grupo de identidades, ID de identidade e nome do conjunto de dados.
Para as APIs que operam em um grupo de identidades, o formato do ARN do grupo de identidades é o mesmo que para as identidades federadas do Amazon Cognito, exceto pelo fato de que o nome do serviço é cognito-sync em vez de cognito-identity:
arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID
Para as APIs que operam em uma única identidade, como o RegisterDevice, é possível consultar a identidade individual pelo seguinte formato de ARN:
arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID/identity/IDENTITY_ID
Para as APIs que operam em conjuntos de dados, como UpdateRecords e ListRecords, é possível consultar o conjunto de dados específico usando o seguinte formato de ARN:
arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID/identity/IDENTITY_ID/dataset/DATASET_NAME
ARNs para grupos de usuários do Amazon Cognito
Para seus grupos de usuários do Amazon Cognito, é possível restringir o acesso de um usuário a um grupo de usuários específico, usando o seguinte formato de ARN:
arn:aws:cognito-idp:REGION:ACCOUNT_ID:userpool/USER_POOL_ID
Para ver uma lista dos tipos de recursos do Amazon Cognito e seus ARNs, consulte Recursos definidos pelo Amazon Cognito na Referência de autorização do serviço. Para saber com quais ações você pode especificar o ARN de cada recurso, consulte Ações definidas pelo Amazon Cognito.
Para ver exemplos de políticas baseadas em identidade do Amazon Cognito, consulte Exemplos de políticas baseadas em identidade para o Amazon Cognito.
Chaves de condição de política do Amazon Cognito
Compatível com chaves de condição de política específicas de serviço: sim
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento Condition especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem agentes de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição globais da AWS, consulte Chaves de contexto de condição globais da AWS no Guia do usuário do IAM.
Para ver uma lista de chaves de condição do Amazon Cognito, consulte Chaves de condição do Amazon Cognito na Referência de autorização do serviço. Para saber com quais ações e recursos você pode usar a chave de condição, consulte Ações definidas pelo Amazon Cognito.
Para ver exemplos de políticas baseadas em identidade do Amazon Cognito, consulte Exemplos de políticas baseadas em identidade para o Amazon Cognito.
Listas de controle de acesso (ACLs) no Amazon Cognito
Compatível com ACLs: não
As listas de controle de acesso (ACLs) controlam quais entidades principais (membros, usuários ou perfis da conta) têm permissões para acessar um recurso. As ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.
Controle de acesso por atributo (ABAC) com o Amazon Cognito
Compatível com ABAC (tags em políticas): parcial
O controle de acesso por atributo (ABAC) é uma estratégia de autorização que define permissões com base em atributos chamados de tags. Você pode anexar tags a entidades do IAM e recursos da AWS e, em seguida, projetar políticas de ABAC para permitir operações quando a tag da entidade principal corresponder à tag no recurso.
Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as aws:ResourceTag/, key-nameaws:RequestTag/ ou chaves de condição key-nameaws:TagKeys.
Se um serviço for compatível com as três chaves de condição para cada tipo de recurso, o valor será Sim para o serviço. Se um serviço for compatível com as três chaves de condição somente para alguns tipos de recursos, o valor será Parcial
Para obter mais informações sobre o ABAC, consulte Definir permissões com autorização do ABAC no Guia do usuário do IAM. Para visualizar um tutorial com etapas para configurar o ABAC, consulte Usar controle de acesso baseado em atributos (ABAC) no Guia do usuário do IAM.
Usar credenciais temporárias com o Amazon Cognito
Compatível com credenciais temporárias: sim
As credenciais temporárias dão acesso de curto prazo aos recursos da AWS e são criadas automaticamente quando você usa a federação ou alterna os perfis. A AWS recomenda a você gerar credenciais temporárias dinamicamente, em vez de usar chaves de acesso de longo prazo. Para obter mais informações, consulte Credenciais de segurança temporárias no IAM e Serviços da AWS que funcionam com o IAM no Guia do usuário do IAM.
Permissões de entidade principal entre serviços para o Amazon Cognito
Compatível com o recurso de encaminhamento de sessões de acesso (FAS): Não
As Sessões de Acesso Direto (FAS) usam as permissões da entidade principal chamando um AWS service (Serviço da AWS), bem como o AWS service (Serviço da AWS) solicitante, para fazer solicitações a serviços downstream. Para obter detalhes da política ao fazer solicitações de FAS, consulte Sessões de acesso direto.
Perfis de serviço para o Amazon Cognito
Compatível com perfis de serviço: sim
O perfil de serviço é um perfil do IAM que um serviço assume para executar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para obter mais informações, consulte Criar um perfil para delegar permissões a um AWS service (Serviço da AWS) no Guia do Usuário do IAM.
Para obter detalhes sobre os perfis de serviço do Amazon Cognito, consulte Ativar a sincronização por push e Como implementar a sincronização por push.
Atenção
A alteração das permissões de um perfil de serviço pode interromper a funcionalidade do Amazon Cognito. Edite perfis de serviço somente quando o Amazon Cognito fornecer orientação para isso.
Como usar perfis vinculados ao serviço para o Amazon Cognito
Compatibilidade com perfis vinculados a serviços: sim
Um perfil vinculado a serviço é um tipo de perfil de serviço vinculado a um AWS service (Serviço da AWS). O serviço pode presumir o perfil de executar uma ação em seu nome. Perfis vinculadas ao serviço aparecem em sua Conta da AWS e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não editar as permissões para perfis vinculados a serviço.
Para obter detalhes sobre como criar ou gerenciar perfis vinculadas ao serviço do Amazon Cognito, consulte Como usar funções vinculadas a serviço para o Amazon Cognito.