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á.
Acesse o Amazon Cognito usando um endpoint de interface ()AWS PrivateLink
Você pode usar AWS PrivateLink para criar uma conexão privada entre sua VPC e o Amazon Cognito. Você pode acessar o Amazon Cognito como se estivesse em sua VPC, sem o uso de um gateway de internet, dispositivo NAT, conexão VPN ou conexão. Direct Connect As instâncias na sua VPC não precisam de endereços IP públicos para acessar o Amazon Cognito.
Estabeleça essa conectividade privada criando um endpoint de interface, habilitado pelo AWS PrivateLink. Criaremos um endpoint de interface de rede em cada sub-rede que você habilitar para o endpoint de interface. Essas são interfaces de rede gerenciadas pelo solicitante que servem como ponto de entrada para o tráfego destinado ao Amazon Cognito.
Para saber mais, consulte Acessar os Serviços da AWS pelo AWS PrivateLink no Guia do AWS PrivateLink .
Importante
Atualmente, os seguintes tipos de autenticação não são compatíveis com AWS PrivateLink:
-
Autorização máquina a máquina (M2M) com o fluxo de credenciais do cliente OAuth 2.0
-
Faça login com login gerenciado e a interface de usuário hospedada clássica.
Fluxos de autenticação para AWS PrivateLink integração
A tabela a seguir descreve os fluxos de autenticação disponíveis para os clientes e as políticas do IAM que você pode aplicar para controlá-los. VPCs As políticas que você pode avaliar nas solicitações para grupos de usuários são políticas de controle de recursos (RCPs), políticas de VPC endpoint e políticas baseadas em identidade.
| Recurso | Fluxo de autenticação | Políticas avaliadas quando o cliente transita por um VPC endpoint | Políticas avaliadas quando a origem do cliente é pública |
|---|---|---|---|
| Grupo de usuários | Login gerenciado e login clássico com interface de usuário hospedada | Nenhum (sem acesso) 1 | Nenhum 2 |
| Grupo de usuários | Machine-to-machine autorização | Nenhum (sem acesso) 1 | Nenhum 2 |
| Grupo de usuários | Solicitações não autenticadas do SDK e da API REST | RCPs, políticas de VPC endpoint 3 | RCPs |
| Grupo de usuários | Solicitações autenticadas SigV4 da API REST e do SDK | RCPs, políticas de endpoint de VPC, políticas baseadas em identidade 3 | RCPs, políticas baseadas em identidade |
| Grupo de identidades | Solicitações não autenticadas do SDK e da API REST (fluxos básicos e aprimorados) | RCPs, políticas de VPC endpoint | RCPs |
| Grupo de identidades | Solicitações autenticadas SigV4 do SDK e da API REST (fluxo autenticado pelo desenvolvedor) | RCPs, políticas baseadas em identidade | RCPs, políticas baseadas em identidade |
1 Os VPC endpoints não aceitam solicitações de domínios de grupos de usuários. Se o cliente tiver uma rota para a Internet, o NAT será aplicado, tornando pública a origem.
2 A existência de um domínio de grupo de usuários impede a conclusão de qualquer solicitação de grupo de usuários que transite por um VPC endpoint. Qualquer cliente pode usar caminhos de transporte público somente para o domínio do grupo de usuários e os endpoints do serviço de API, tornando o VPC endpoint inutilizável para o grupo de usuários. Grupos de usuários com domínios atribuídos são incompatíveis com o. AWS PrivateLink
3 O grupo de usuários não deve ter um domínio atribuído.
Modos operacionais para AWS PrivateLink
Os seguintes exemplos de modelos de implementação são compatíveis com o AWS PrivateLink Amazon Cognito.
| Recurso | Implementação | Ações |
|---|---|---|
| Grupo de usuários | Aplicativo SDK ou API REST totalmente privado |
|
| Grupo de usuários | Públicos e privados |
|
| Grupo de usuários | Servidor de autorização OAuth 2.0 privado ou público |
|
| Grupo de identidades | Totalmente privado |
|
| Grupo de identidades | Públicos e privados |
|
Considerações sobre o Amazon Cognito
Antes de configurar um endpoint de interface para o Amazon Cognito, leia as considerações no Guia.AWS PrivateLink O Amazon Cognito oferece suporte para fazer chamadas para todas as ações da API do Amazon Cognito por meio do endpoint da interface. Para obter mais informações sobre essas operações, consulte a Referência da API de grupos de usuários do Amazon Cognito e a Referência da API de Identidades Federadas do Amazon Cognito.
AWS PrivateLink para o Amazon Cognito está disponível somente em regiões comerciais AWS .
Grupos de usuários e AWS PrivateLink
Você pode fazer solicitações para todas as operações de API de grupos de usuários por meio do endpoint da interface, mas não para operações que seu aplicativo solicita do servidor de autorização do grupo de usuários OAuth 2.0, por exemplo, concessões de credenciais de cliente e login gerenciado.
A API de grupos de cognito-idp usuários tem operações de API não autenticadas, autenticadas e autorizadas por token. Você pode conceder permissões para operações autenticadas nas políticas de controle de recursos e endpoints da VPC. Você também pode conceder permissões para operações não autenticadas e autorizadas por token, ao contrário das políticas baseadas em identidade. Os tipos de políticas de controle de recursos e endpoints de VPC são capazes de avaliar, negar ou permitir solicitações de operações que, de outra forma, seriam públicas.
As solicitações para endpoints de domínio também são públicas, mas você não pode avaliá-las nas políticas. O DNS privado da VPC não encaminha solicitações de domínios de grupos de usuários para o seu VPC endpoint. Você só pode fazer solicitações de serviços de domínio por meio de caminhos públicos da Internet. Para obter mais informações, consulte Efeitos das políticas nas operações do grupo de usuários.
Operações compatíveis
Os sistemas em uma VPC podem enviar solicitações para as ações da API do grupo de usuários, mas não para os endpoints do domínio do grupo de usuários. Os fluxos de trabalho do OpenID Connect (OIDC) e OAuth 2.0 que usam endpoints de domínio, por exemplo machine-to-machine(M2M), login federado e concessões de código de autorização, não podem ser acessados por meio de VPC endpoints. As políticas de VPC endpoint não afetam esses fluxos de trabalho HTTP e não podem processá-los. As solicitações para endpoints de domínio de dentro de uma VPC sempre falham no endpoint da interface, mas continuam disponíveis por meio de DNS público e roteamento quando você configura endpoints de VPC para seus grupos de usuários.
Para evitar a atribuição de domínios de sistemas em uma VPC, o Amazon Cognito bloqueia CreateUserPoolDomain solicitações no endpoint da interface. Isso evita a adição de domínios aos seus grupos de usuários de sistemas que estão em uma VPC. Para evitar a adição de um domínio de todos os sistemas, aplique uma política de controle de recursos (RCP), como o exemplo a seguir, ao seu Conta da AWS. Essa política bloqueia a CreateUserPoolDomain ação contra o grupo de usuários especificado.
{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Effect": "Deny", "Action": [ "cognito-idp:CreateUserPoolDomain" ], "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" } ] }
Seu grupo de usuários pode ter um domínio e, em todos os casos, esse domínio não está disponível por meio do AWS PrivateLink. Todas as solicitações de API de grupos de usuários baseadas em SDK para terminais cognito-idp de serviço aceitam solicitações por meio de AWS PrivateLink, com exceção de. CreateUserPoolDomain Os endpoints do serviço de API do grupo de usuários e os endpoints do domínio permanecem sempre acessíveis por meio de caminhos públicos da Internet. Para abordar o acesso de fontes públicas, implemente a AWS WAF
web ACLs.
Efeitos das políticas nas operações do grupo de usuários
Todas as operações de API do grupo de usuários, mesmo aquelas que normalmente são públicas e não autenticadas, podem ser controladas nas políticas de endpoint da VPC e nas políticas de controle de recursos (). RCPs Você também pode aplicar restrições ao acesso ao grupo de usuários em políticas baseadas em identidade com chaves de condição da VPC. Somente solicitações que incluam informações de autenticação no formato SigV4 podem ser controladas em políticas baseadas em identidade. O login gerenciado e as operações clássicas de interface de usuário hospedada são uma categoria separada e não estão qualificadas para o trânsito de VPC ou para a aplicação de qualquer tipo de política em suas ações.
Operações não autenticadas
As operações do Amazon Cognito para aplicativos do lado do cliente não são autenticadas com o SigV4. As operações de exemplo estão na política de exemplo emCriar uma política de endpoint para o endpoint de interface. Exemplos adicionais de operações não autenticadas são e. GetUser AssociateSoftwareToken Quando você adiciona essas operações às políticas baseadas em identidade, elas não têm efeito. No entanto, você pode permitir ou restringir o acesso a essas ações nas políticas de endpoint da VPC e. RCPs
As operações não autenticadas não estão associadas a um diretor do IAM. Sua política de VPC endpoint ou RCP deve permitir que todos os diretores realizem essas ações.
Operações autenticadas
As operações de API para administração de grupos de usuários e autenticação do lado do servidor são autenticadas com SigV4. Para operações autenticadas, você pode restringir os principais com políticas de endpoint que você aplica ao endpoint da VPC, políticas de controle de recursos em sua organização e em políticas baseadas em identidade que você aplica aos diretores. As políticas baseadas em identidade e controle de recursos reconhecem a VPC com chaves de condição baseadas em rede, como e. aws:SourceVpc aws:SourceVpce
Para obter mais informações sobre classes administrativas, do lado do servidor e do lado do cliente, de operações de API para grupos de usuários, consulte. Modelos de autorização para autenticação de API e SDK
Grupos de identidades e AWS PrivateLink
Os grupos de identidade do Amazon Cognito oferecem suporte a todas as operações de API por meio de. AWS PrivateLink
Tópicos
Operações compatíveis
Todas as operações de API de grupos de identidades são suportadas por meio do endpoint da interface. Os grupos de identidades não têm endpoints de domínio e não estão sujeitos às mesmas limitações. No entanto, os grupos de identidades têm considerações específicas para controles de acesso baseados em rede devido à sua integração com o. AWS STS
Limitações do contexto de rede com AWS STS integração
Os grupos de identidades usam AWS STS AssumeRoleWithWebIdentity operações para fornecer AWS credenciais temporárias. Quando os grupos de identidades AWS STS entram AWS PrivateLink no fluxo de autenticação aprimorado, as chaves de contexto de redeaws:SourceIp, comoaws:SourceVpc, e, aws:SourceVpce contêm valores da infraestrutura de serviços dos grupos de identidades, não do contexto de rede do seu aplicativo.
Se suas políticas de confiança ou políticas de controle de recursos (RCPs) da função do IAM usarem chaves de condição baseadas em rede para restringir o acesso, as operações de grupos de identidades poderão ser negadas inesperadamente. Para resolver essa limitação, você pode usar uma das seguintes abordagens:
Etiquetas principais para identificação de serviços
Marque as funções do IAM usadas com grupos de identidades e modifique suas políticas para permitir operações quando o diretor tiver a tag apropriada. Primeiro, adicione uma tag à sua função no grupo de identidades:
aws iam tag-role \ -\-role-nameMyIdentityPoolRole\ -\-tags Key=CognitoServiceCall,Value=true
Em seguida, modifique suas políticas baseadas em rede para permitir diretores marcados. Por exemplo, em um RCP:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "sts:AssumeRoleWithWebIdentity", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": ["allowed-ip-ranges"] }, "StringNotEqualsIfExists": { "aws:ResourceTag/CognitoServiceCall": "true" } } } ] }
Chaves de contexto específicas do serviço
Os grupos de identidades fornecem chaves de contexto específicas do serviço para autorização em nível de recurso nas políticas de endpoint de VPC e. RCPs Com essas chaves de contexto, você pode habilitar um controle de acesso refinado e distinguir entre usuários autenticados e não autenticados nas políticas.
Chaves de contexto específicas do serviço disponíveis para operações não SIGv4, como,,, GetIdGetCredentialsForIdentityGetOpenIdTokenUnlinkIdentity
-
cognito-identity-unauth:IdentityPoolArn- Filtra o acesso pelo ARN do pool de identidades para usuários não autenticados -
cognito-identity-unauth:AccountId- Filtra o acesso pelo Conta da AWS ID para usuários não autenticados -
cognito-identity-auth:IdentityPoolArn- Filtra o acesso pelo ARN do pool de identidades para usuários autenticados -
cognito-identity-auth:AccountId- Filtra o acesso pelo Conta da AWS ID para usuários autenticados
Chaves de contexto específicas de serviço disponíveis para operações SigV4, como e DeleteIdentitiesDescribeIdentity
-
cognito-identity:IdentityPoolArn- Filtra o acesso pelo ARN do pool de identidades
Você pode usar essas chaves de contexto nas políticas de endpoint da VPC para restringir o acesso com base no status da autenticação, conforme demonstrado no exemplo a seguir:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "cognito-identity:GetId", "cognito-identity:GetCredentialsForIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "cognito-identity-unauth:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }
Controle do acesso com políticas de controle de recursos
O Amazon Cognito oferece suporte ao controle do acesso aos seus recursos com políticas de controle de recursos ()RCPs. Com chaves de condição baseadas em rede, RCPs pode definir as redes e ações que são permitidas para AWS PrivateLink acessar seus grupos de usuários e grupos de identidades. As Action instruções contidas RCPs podem controlar o acesso às operações de API do grupo de usuários autenticadas e não autenticadas.
Por exemplo, o exemplo de política a seguir impede o acesso a todos os grupos de usuários de uma VPC específica.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCognitoAccessOutsideVPC", "Effect": "Deny", "Principal": "*", "Action": "cognito-idp:*", "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-02d6770f46ef1653b" } } } ] }
Crie um endpoint de interface para o Amazon Cognito
Você pode criar um endpoint de interface para o Amazon Cognito usando o console da Amazon VPC ou o (). AWS Command Line Interface AWS CLI Para obter mais informações, consulte Criar um endpoint de interface no Guia do usuário do AWS PrivateLink .
Crie um endpoint de interface para grupos de usuários do Amazon Cognito usando o seguinte nome de serviço:
com.amazonaws.region.cognito-idp
Crie um endpoint de interface para grupos de identidade do Amazon Cognito usando o seguinte nome de serviço:
com.amazonaws.region.cognito-identity
Se você habilitar o DNS privado para o endpoint da interface, poderá fazer solicitações de API para o Amazon Cognito usando seu nome de DNS regional padrão. Por exemplo, cognito-idp.us-east-1.amazonaws.com para grupos de usuários e grupos cognito-identity.us-east-1.amazonaws.com de identidades.
Criar uma política de endpoint para o endpoint de interface
Uma política de endpoint é um recurso do IAM que pode ser anexado ao endpoint de interface. A política de endpoint padrão permite acesso total ao Amazon Cognito por meio do endpoint da interface. Para controlar o acesso permitido ao Amazon Cognito a partir da sua VPC, anexe uma política de endpoint personalizada ao endpoint da interface.
Uma política de endpoint especifica as seguintes informações:
-
As entidades principais que podem realizar ações (Contas da AWS, usuários do IAM e perfis do IAM).
-
As ações que podem ser realizadas.
-
Os recursos nos quais as ações podem ser executadas.
-
As condições que devem ser satisfeitas antes que a solicitação seja permitida ou negada.
Para obter mais informações, consulte Controlar o acesso aos serviços usando políticas de endpoint no Guia do AWS PrivateLink .
Exemplo: política de VPC endpoint para ações de grupos de usuários
Veja a seguir um exemplo de uma política de endpoint personalizada para grupos de usuários. Quando você anexa essa política ao seu endpoint de interface, ela concede acesso às ações do grupo de usuários listadas para todos os principais em todos os recursos.
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::123456789012:assumed-role/MyWebAppRole/MyWebAppSession" }, "Effect": "Allow", "Action": [ "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword" ], "Resource":"arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" }, { "Effect": "Allow", "Action": [ "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:ForgotPassword", "cognito-idp:ConfirmForgotPassword" ], "Resource":"arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" } ] }
Exemplo: política de VPC endpoint para ações de grupos de identidades
Veja a seguir um exemplo de uma política de endpoint personalizada para grupos de identidades. Essa política usa chaves de contexto específicas do serviço para restringir o acesso a usuários autenticados de um grupo de identidades específico.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "cognito-identity:GetId", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdToken" ], "Resource": "*", "Condition": { "StringEquals": { "cognito-identity-auth:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }
Crie uma política baseada em identidade para operações AWS PrivateLink
Políticas baseadas em identidade são recursos do IAM que você pode anexar aos AWS diretores. Você pode controlar o acesso ao Amazon Cognito por meio de VPC endpoints com políticas baseadas em identidade para operações autenticadas pelo IAM. Ao contrário das políticas de endpoint, você não pode configurar permissões para operações não autenticadas em políticas baseadas em identidade. As operações autenticadas ou administrativas exigem a autorização do Signature Version 4. Para grupos de usuários, as operações autenticadas incluem solicitações de autenticação do lado do servidor, como solicitações AdminInitiateAuthadministrativas, como. UpdateUserPool Para grupos de identidades, as operações autenticadas incluem solicitações administrativas como DeleteIdentitiese. DescribeIdentity
Uma política baseada em identidade especifica as seguintes informações:
-
As ações que podem ser realizadas.
-
Os recursos nos quais as ações podem ser executadas.
-
As condições que devem ser satisfeitas antes que a solicitação seja permitida ou negada.
Exemplo: política baseada em identidade para autenticação do lado do servidor do grupo de usuários
O exemplo de política a seguir concede acesso às ações do grupo de usuários listadas no grupo de usuários especificado, a partir do endpoint especificado. Aplique essa política à função assumida do IAM para seu aplicativo web.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword" ], "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE", "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }
Exemplo: política baseada em identidade para operações administrativas de grupos de identidades
O exemplo de política a seguir concede acesso às ações administrativas do grupo de identidades do VPC endpoint especificado. Aplique essa política ao diretor do IAM que precisa realizar a administração do grupo de identidades.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-identity:DeleteIdentities", "cognito-identity:DescribeIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" }, "StringEquals": { "cognito-identity:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }