View a markdown version of this page

Criar um endpoint da VPC para descoberta do OIDC do AWS STS - AWS Identity and Access Management

Criar um endpoint da VPC para descoberta do OIDC do AWS STS

A descoberta do OIDC do AWS Security Token Service (AWS STS) é um par de endpoints públicos que fornecem os metadados e as chaves de verificação necessárias para validar os JSON Web Tokens (JWTs) emitidos pela federação de identidade externa.

Quando você habilita a federação de identidade externa, o AWS STS publica um URL de emissor específico da conta. Esse URL hospeda dois endpoints de descoberta do OpenID Connect (OIDC). As partes confiáveis buscam esses endpoints para obter os metadados e as chaves públicas de que precisam para verificar os JWTs que o GetWebIdentityToken emite:

  • {issuer_url}/.well-known/openid-configuration: o documento de descoberta do OIDC

  • {issuer_url}/.well-known/jwks.json: o JSON Web Key Set (JWKS) que contém as chaves de verificação de assinatura de token

Por padrão, acessar estes endpoints a partir da sua VPC requer um gateway da internet, dispositivo NAT, conexão VPN ou conexão. Em vez disso, para manter este tráfego na rede da AWS, crie um endpoint da VPC de interface para o endpoint de descoberta do STS OIDC.

nota

O endpoint de descoberta do STS OIDC atende somente aos dois endpoints listados acima. Ele não atende nenhuma operação de API do AWS STS. Para chamar GetWebIdentityToken, AssumeRole ou qualquer outra operação do AWS STS de forma privada, use o serviço de endpoint com.amazonaws.region.sts. Consulte Criar um VPC endpoint para o AWS STS.

Como escolher o serviço de endpoint correto

A federação de identidade externa usa dois caminhos de rede distintos. A maioria das workloads que cria e verifica tokens precisa dos dois serviços de endpoint.

Tarefa Serviço de endpoint Autenticação
Criar um JWT (sts:GetWebIdentityToken) com.amazonaws.region.sts AWSSigV4 da
Leia… /.well-known/openid-configuration com.amazonaws.region.sts-oidc Nenhum (unauthenticated)
Leia… /.well-known/jwks.json com.amazonaws.region.sts-oidc Nenhum (unauthenticated)

Você não precisa do endpoint de descoberta do STS OIDC se a única parte que verifica seus tokens for um serviço externo fora da AWS. Este serviço busca o URL do emissor pela internet pública e o tráfego não entra na sua VPC.

Considerações

Considere o seguinte antes de criar um endpoint da VPC de interface para a descoberta do STS OIDC.

  • As Políticas de endpoint da VPC não são compatíveis. Ambas as APIs de descoberta fornecem dados disponíveis publicamente e o endpoint de descoberta STS OIDC não impõe políticas de endpoint da VPC. Use grupos de segurança e posicionamento de sub-rede para controlar quais recursos podem acessar o endpoint.

  • Somente dois caminhos são disponibilizado. O endpoint aceita solicitações HTTPS GET somente para /.well-known/openid-configuration e /.well-known/jwks.json. Todos os outros caminhos e métodos retornam um erro.

Criar um endpoint da VPC de interface para a descoberta do STS OIDC

É possível criar um endpoint da VPC para o endpoint de descoberta do STS OIDC usando a console do Amazon Virtual Private Cloud ou a AWS Command Line Interface. Para obter mais informações, consulte Acessar um serviço da AWS por meio de um endpoint da VPC de interface no Guia do usuário do Amazon VPC.

Crie um endpoint da VPC para a descoberta do STS OIDC usando o seguinte nome de serviço:

  • com.amazonaws.region.sts-oidc

Se habilitar o DNS privado para o endpoint, poderá enviar solicitações para sts-oidc.region.amazonaws.com e elas serão resolvidas para as interfaces de rede do endpoint na sua VPC.

Envio de solicitações por meio do endpoint

Quando uma parte confiável em sua VPC precisa verificar um JWT, ela busca o documento de descoberta do OIDC e o JWKS do URL do emissor. O nome do host do emissor (por exemplo, uuid.tokens.sts.global.api.aws) usa um domínio diferente do endpoint (sts-oidc.region.amazonaws.com), portanto, não é resolvido para o endpoint da VPC por padrão.

Para rotear solicitações do nome de host do emissor pelo endpoint, crie uma zona hospedada privada do Amazon Route 53 para o nome de host do emissor e adicione um registro de alias que aponte para o endpoint da VPC. Depois de criar a zona hospedada, os recursos na VPC resolvem o nome de host do emissor para as interfaces de rede do endpoint. As bibliotecas padrão do OIDC podem então buscar os documentos de descoberta sem alterações no código. Para obter mais informações sobre como criar uma zona hospedada privada, consulte Trabalhar com zonas hospedadas privadas no Guia do desenvolvedor do Amazon Route 53.

nota

O serviço de endpoint é regional, mas um único endpoint atende às solicitações de descoberta para qualquer UUID do emissor na partição. Crie endpoints nas regiões em que seus verificadores são executados; você não precisa de um por conta de emissor.