Obtención de las claves de firma para validar los tokens de OIDC - Amazon EKS

Obtención de las claves de firma para validar los tokens de OIDC

Kubernetes emite un ProjectedServiceAccountToken para cada Kubernetes de Service Account. Este token es un token OIDC, que, además, es un tipo de JSON web token (JWT). Amazon EKS aloja un punto de conexión OIDC público por cada clúster que contiene las claves de firma para el token así los sistemas externos pueden validarlo.

Para validar un ProjectedServiceAccountToken, necesita buscar las claves de firma pública OIDC, también conocidas como JSON Web Key Set (JWKS). Utilice estas claves en su aplicación para validar el token. Por ejemplo, puede usar la biblioteca Python PyJWT para validar los tokens con estas claves. Para más información sobre ProjectedServiceAccountToken, consulte Información general de IAM, Kubernetes y OpenID Connect (OIDC).

Requisitos previos

  • Un proveedor de AWS Identity and Access Management (IAM) de OpenID Connect (OIDC) existente para su clúster. Para determinar si ya tiene un proveedor o para crear uno, consulte Creación de un proveedor de OIDC de IAM para su clúster.

  • AWS CLI: una herramienta de línea de comandos para trabajar con servicios de AWS, incluido Amazon EKS. Para obtener más información, consulte Instalación en la Guía del usuario de AWS Command Line Interface. Después de instalar la AWS CLI, recomendamos que también la configure. Para obtener más información, consulte Configuración rápida con aws configure en la Guía del usuario de AWS Command Line Interface.

Procedimiento

  1. Recupere la URL de OIDC del clúster de Amazon EKS mediante la 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 la clave de firma pública con curl o una herramienta similar. El resultado es un Conjunto de claves web JSON (JWKS).

    importante

    Amazon EKS limita las llamadas al punto de conexión OIDC. Debe almacenar en caché la clave de firma pública. Respete el encabezado cache-control incluido en la respuesta.

    importante

    Amazon EKS rota la clave de firma OIDC cada siete días.

    $ 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"}]}