Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

257
Vistas
Asuma el rol de AWS desde la cuenta de servicio en AWS EKS

Configuración actual: la aplicación python se ejecuta como un contenedor Docker en el clúster de AWS EKS. Las claves de AWS se proporcionan como secretos en el clúster de kubernetes para que el código de python pueda leer, inicializar la sesión de boto3 y trabajar con el depósito de S3.

Cómo me gustaría cambiarlo: asumir el rol de una cuenta de servicio bajo la cual se ejecuta el contenedor Docker en el clúster de AWS EKS y luego inicializar la sesión boto3 con estas credenciales y trabajar con el depósito S3. No quiero proporcionar claves de AWS en cada servicio, ya que tengo muchos de ellos.

¿Hay alguna forma de implementar la configuración deseada?

Gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Token web simplificado de Kubernetes versión 1.12 OIDC JSON, Amazon EKS ahora aloja un punto de enlace de descubrimiento OIDC público por clúster que contiene las claves de firma para los tokens web JSON para que los sistemas externos, como IAM, puedan validar y aceptar los tokens OIDC emitidos por Kubernetes.


La guía de AWS para esto se encuentra en: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

Guía de AWS en github: https://github.com/aws/amazon-eks-pod-identity-webhook/


Los pasos se mencionan a continuación

  1. Obtenga la URL del proveedor de OIDC: aws eks describe-cluster --name cluster_name --query "cluster.identity.oidc.issuer" --output text

  2. Cree el rol con identidad federada y obtenga el ARN para el rol

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/OIDC_PROVIDER" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "OIDC_PROVIDER:sub": "system:serviceaccount:SERVICE_ACCOUNT_NAMESPACE:SERVICE_ACCOUNT_NAME" } } } ] }

Tenga en cuenta que debe mencionar NAMESPACE aquí, asegúrese de tener un espacio de nombres con el nombre SERVICE_ACCOUNT_NAMESPACE.

  1. Crear cuenta de servicio en kubernetes
 apiVersion: v1 kind: ServiceAccount metadata: name: SERVICE_ACCOUNT_NAME annotations: eks.amazonaws.com/role-arn: ARN_OF_ABOVE_IAM_ROLE
  1. Ejecutar un pod usando la cuenta de servicio
 apiVersion: v1 kind: Pod metadata: name: my-pod spec: serviceAccountName: SERVICE_ACCOUNT_NAME ...

Si todo se hace correctamente, podrá asumir el rol en su pod k8s. Intente ejecutar cualquier secuencia de comandos de python en el contenedor docker como,

 import boto3 client = boto3.client('iam') response = client.list_users() for x in response['Users']: print (x['UserName'])

Con el permiso para IAM, esto listaría a los usuarios en la cuenta de AWS.

Referencia:

  • https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html
  • https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  • https://github.com/aws/amazon-eks-pod-identity-webhook/
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda