Obter as chaves de assinatura para validar os tokens OIDC - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Obter as chaves de assinatura para validar os tokens OIDC

O Kubernetes emite um ProjectedServiceAccountToken para cada Service Account do Kubernetes. Este token é um token OIDC, que também é um tipo de JSON web token (JWT). O Amazon EKS hospeda um endpoint público OIDC em cada cluster que contém as chaves de assinatura para o token de modo que sistemas externos possam validá-lo.

Para validar um ProjectedServiceAccountToken, você precisa buscar as chaves públicas de assinatura OIDC, também chamadas de JSON Web Key Set (JWKS). Use essas chaves em sua aplicação para validar o token. Por exemplo, você pode usar a biblioteca PyJWT Python para validar tokens usando essas chaves. Para obter mais informações sobre o ProjectedServiceAccountToken, consulte o Informações básicas do IAM, Kubernetes e OpenID Connect (OIDC).

Pré-requisitos
  • Um provedor OpenID Connect (OIDC) do AWS Identity and Access Management (IAM) existente para o cluster. Para determinar se você tem ou para criar uma, consulte Criar um provedor OIDC do IAM para o cluster.

  • AWS CLI – Uma ferramenta de linha de comando para trabalhar com os serviços AWS, incluindo o Amazon EKS. Para obter mais informações, consulte Installing, updating, and uninstalling the AWS CLI (Instalar, atualizar e desinstalar a ) no Manual do usuário da AWS Command Line Interface. Depois de instalar a AWS CLI, recomendamos que você também a configure. Para obter mais informações, consulte Quick configuration with aws configure (Configuração rápida com ) no Manual do usuário do AWS Command Line Interface.

Buscar chaves públicas de assinatura OIDC (AWS CLI)
  1. Recupere o URL do OIDC do seu cluster do Amazon EKS usando a AWS CLI.

    $ aws eks describe-cluster --name my-cluster --query 'cluster.identity.oidc.issuer' "https://oidc.eks.us-west-2.amazonaws.com/id/8EBDXXXX00BAE"
  2. Recupere a chave de assinatura pública usando o curl ou uma ferramenta similar. O resultado é um JSON Web Key Set (JWKS).

    Importante

    O Amazon EKS controla a utilização das chamadas para o endpoint do OIDC. Você deve armazenar em cache a chave pública de assinatura. Respeite o cabeçalho cache-control incluído na resposta.

    Importante

    O Amazon EKS alterna a chave de assinatura OIDC a cada sete dias.

    $ curl https://oidc.eks.us-west-2.amazonaws.com/id/8EBDXXXX00BAE/keys {"keys":[{"kty":"RSA","kid":"2284XXXX4a40","use":"sig","alg":"RS256","n":"wklbXXXXMVfQ","e":"AQAB"}]}