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

329
Vistas
Pase el rol de IAM de AWS CodeBuild dentro del contenedor de Docker [no se pueden ubicar las credenciales]

El rol configurado en el proyecto CodeBuild funciona bien con el entorno de tiempo de ejecución, pero no funciona cuando ejecutamos un comando desde dentro del contenedor, dice "no se pueden ubicar las credenciales".
Déjame saber cómo podemos usar el papel fuera de la caja dentro del contenedor.

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

0

Puede utilizar la fuente de credenciales "EcsContainer" para asumir el rol sin problemas sin tener que exportar nuevas credenciales en su buildspec.yml.

credential_source: el proveedor de credenciales que se usará para obtener las credenciales para la llamada inicial de asumir el rol. Este parámetro no se puede proporcionar junto con source_profile. Los valores válidos son:

  • Entorno para extraer las credenciales de origen de las variables de entorno.
  • Ec2InstanceMetadata para usar el rol de instancia EC2 como credenciales de origen.
  • EcsContainer para usar las credenciales del contenedor de ECS como las credenciales de origen.

De: https://docs.aws.amazon.com/cli/latest/topic/config-vars.html

Pasos:

Paso 0: cree un nuevo rol 'arn:aws:iam::0000000000:role/RoleToBeAssumed' y adjunte las políticas requeridas para proporcionar el permiso requerido para los comandos que está ejecutando durante la compilación.

Paso 1: agregue los permisos sts:assumeRole a su rol de servicio de CodeBuild. Aquí hay una política de muestra:

 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "sts:*", "Resource": "arn:aws:iam::0000000000:role/RoleToBeAssumed" } ] }

Paso 2: configure su contenedor de compilación para usar los metadatos de la credencial como fuente para asumir el rol. Aquí hay un ejemplo de especificación de compilación:

 version: 0.2 phases: install: runtime-versions: nodejs: 8 commands: - aws sts get-caller-identity - mkdir ~/.aws/ && touch ~/.aws/config - echo "[profile buildprofile]" > ~/.aws/config - echo "role_arn = arn:aws:iam::0000000000:role/RoleToBeAssumed" >> ~/.aws/config - echo "credential_source = EcsContainer" >> ~/.aws/config - aws sts get-caller-identity --profile buildprofile
over 4 years ago · Santiago Trujillo Denunciar

0

Si necesita ejecutar un contenedor Docker en un entorno de compilación y el contenedor requiere credenciales de AWS, debe transferir las credenciales del entorno de compilación al contenedor.

 docker run -e AWS_DEFAULT_REGION -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI your-image-tag aws s3 ls

https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-versions

over 4 years ago · Santiago Trujillo Denunciar

0

Otra forma es asumir el rol manualmente y exportar los tokens de autenticación. Asegúrese de tener disponible ASSUME_ROLE_ARN como variable de entorno:

 commands: - TEMP_ROLE=`aws sts assume-role --role-arn $ASSUME_ROLE_ARN --role-session-name temp` - export TEMP_ROLE - export AWS_ACCESS_KEY_ID=$(echo "${TEMP_ROLE}" | jq -r '.Credentials.AccessKeyId') - export AWS_SECRET_ACCESS_KEY=$(echo "${TEMP_ROLE}" | jq -r '.Credentials.SecretAccessKey') - export AWS_SESSION_TOKEN=$(echo "${TEMP_ROLE}" | jq -r '.Credentials.SessionToken') - docker push $ECR_IMAGE_URL:$IMAGE_TAG
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