Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

449
Visualizações
¿Cómo leer los parámetros de SSM cuando se usa AWS Codebuild?

Actualmente estoy usando codebuild con éxito para tareas de compilación simples (en una configuración sin vpc).

Pero ahora estoy tratando de ejecutar una tarea de compilación que lee un valor de parámetro de SSM, y está fallando porque no puede cargar ninguna credencial, la causa aparente es:

 com.amazonaws.auth.InstanceProfileCredentialsProvider@5754b242: Unable to load credentials from service endpoint

El rol de servicio de IAM que asigné al proyecto de creación de código tiene el permiso ssm:GetParameters para el parámetro que intento leer (y si ese fuera el problema, esperaría ver un mensaje unauthorized , en lugar de unable to load credentials ).

Estoy usando el SDK de Java para realizar la llamada GetParameter de SSM, que he confirmado que funciona para leer los parámetros de SSM cuando se ejecuta desde una instancia de EC2, por lo que estoy bastante seguro de que el problema aquí es Codebuild.

Para diagnosticar aún más el problema, intenté agregar un comando de compilación para hacer un curl en la dirección de metadatos de la instancia de AWS:

 curl 169.254.169.254/latest/meta-data/iam/info

En lugar de devolver los metadatos de la instancia como lo haría desde un entorno EC2 normal, simplemente se agota el tiempo de espera.

Entonces, parece que la raíz del problema es que el entorno de creación de código no funciona con la dirección de búsqueda de metadatos de AWS, lo que hace que la cadena de proveedores de AWS no pueda buscar las credenciales.

¿Cómo puedo leer mis parámetros de SSM desde la creación de código (sin codificar o usar variables de entorno para las credenciales de SDK)?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

¿Puedo preguntarle por qué no utiliza el enfoque integrado de AWS CodeBuild ? Puede obtener parámetros de SSM a través de la especificación de compilación de su proyecto de AWS CodeBuild . La llamada adicional a través del SDK de Java está obsoleta en este caso.

 version: 0.2 env: parameter-store: key: "value" key: "value" phases: build: commands: - command - command

almacén de parámetros: obligatorio si se especifica env y desea recuperar variables de entorno personalizadas almacenadas en el almacén de parámetros de Amazon EC2 Systems Manager. Contiene una asignación de escalares clave/valor, donde cada asignación representa una única variable de entorno personalizada almacenada en el almacén de parámetros de Amazon EC2 Systems Manager. key es el nombre que usará más adelante en sus comandos de compilación para hacer referencia a esta variable de entorno personalizada, y value es el nombre de la variable de entorno personalizada almacenada en el almacén de parámetros de Amazon EC2 Systems Manager.

Para obtener más información, consulte la Referencia de especificación de compilación para AWS CodeBuild

over 4 years ago · Santiago Trujillo Relatório

0

La respuesta de MaiKaY es la mejor solución al problema de "cómo obtener valores de parámetros SSM en su compilación" (es mejor que la especificación de compilación esté vinculada al nombre del parámetro SSM en lugar del código o los scripts de compilación).

Pero en caso de que alguien más se tope con esta pregunta mientras se enfrenta al mismo problema, el problema estaba en el código subyacente de la pregunta inicial, algo relacionado con la respuesta de Clare Liguori .

Estaba usando un SDK de AWS reciente, pero no lo estaba usando de la manera correcta. Estaba usando un constructor simple de la clase AWSSimpleSystemsManagementClient , que rara vez es lo correcto.
La mejor manera de construir su cliente es usar la clase AWSSimpleSystemsManagementClientBuilder , como:

 AWSSimpleSystemsManagementClientBuilder.standard().build()
over 4 years ago · Santiago Trujillo Relatório

0

Agregando a la respuesta de MaiKaY , asegúrese de que el parámetro en el almacén de parámetros ssm esté en formato de cadena segura y NO en cadena . Luché con esto durante días y finalmente agregué variables mediante Codebuild console que se almacena automáticamente en secureString

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda