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

555
Visualizações
¿Cómo utilizar un nombre de usuario y una contraseña almacenados en AWS Secrets Manager en mi trabajo de Jenkins?

Tengo un canal de Jenkins que ejecuta pruebas Cypress en un contenedor Docker. Las pruebas necesitan un nombre de usuario y una contraseña para iniciar sesión en la aplicación web. Guardé el nombre de usuario y la contraseña en AWS Secrets Manager. Puedo hacer eso cuando ejecuto un comando de shell como un paso de compilación

 USERNAME=$(aws secretsmanager get-secret-value --region us-east-2 --secret-id myID | jq -r .SecretString | jq -r .username) PASSWORD=$(aws secretsmanager get-secret-value --region us-east-2 --secret-id myID | jq -r .SecretString | jq -r .password) docker run -e NO_COLOR=1 -v "$PWD":/workdir -w /workdir --entrypoint=cypress 1.dkr.ecr.us-east-2.amazonaws.com/cypress/included:3.8.3 run --env username="$USERNAME",password="$PASSWORD"

Sin embargo, quiero crear un trabajo de canalización de Jenkins y hacerlo desde JenkinsFile. ¿Cómo puedo leer el nombre de usuario y la contraseña de AWS Secrets Manager en el archivo Jenkins?

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

0

Tienes el paso sh .

 steps { script { username = sh (script: "aws secretsmanager get-secret-value --region us-east-2 --secret-id myID | jq -r .SecretString | jq -r .username", returnStdout: true) password = sh (script: "aws secretsmanager get-secret-value --region us-east-2 --secret-id myID | jq -r .SecretString | jq -r .password", returnStdout: true) } }
over 4 years ago · Santiago Trujillo Relatório

0

También puede usar la API del proveedor de credenciales de Jenkins para lograr esto.

Existen múltiples ventajas al usar la API del proveedor de credenciales en lugar de un paso de guión:

  • Las credenciales en su secuencia de comandos de canalización de Jenkins (el 'qué') están desvinculadas de la lógica que las busca (el 'cómo'), manteniendo sus secuencias de comandos más limpias y portátiles.
  • Puede tener varios proveedores de credenciales cargados si necesita leer las credenciales de varias ubicaciones.
  • Los proveedores de credenciales almacenan en caché metadatos secretos de manera eficiente, al tiempo que garantizan que los valores secretos permanezcan fuera de la memoria hasta el momento en que se necesiten.
  • Jenkins enmascara automáticamente los valores de las credenciales que se imprimen en el registro de compilación, por lo que es más difícil filtrar los valores por accidente.
  • La interfaz de usuario de credenciales de Jenkins y la interfaz de usuario del generador de trabajos le muestran qué credenciales están disponibles, lo que facilita la creación de scripts de trabajo.

Es cierto que existe cierta complejidad inicial en la configuración de un proveedor de credenciales en comparación con un paso de guión. Sin embargo, si está utilizando credenciales en más de 1 o 2 scripts, o si alguna de sus credenciales tendría consecuencias no triviales si se administrara mal o se filtrara (por ejemplo, claves de carga de Artifactory), definitivamente creo que vale la pena asumir ese costo ahora, a cambio para facilitar la gestión y el mantenimiento de las credenciales más adelante.

Ver más información en la documentación de Jenkins .

Ejemplo

Si desea utilizar la API del proveedor de credenciales con los secretos que almacenó en Secrets Manager, debe utilizar el complemento del proveedor de credenciales de AWS Secrets Manager . (Descargo de responsabilidad: soy el mantenedor de ese complemento).

Primero, instalamos el complemento del proveedor de credenciales de AWS Secrets Manager en Jenkins y otorgamos a Jenkins acceso IAM a Secrets Manager.

Luego cargamos un nombre de usuario de Jenkins con una credencial de contraseña llamada 'artifactory' a Secrets Manager, que contiene el nombre de usuario 'joe' (información no confidencial) y la contraseña 'supersecret' (información confidencial).

 aws secretsmanager create-secret \ --name 'artifactory' \ --secret-string 'supersecret' \ --description 'Acme Corp Artifactory user' \ --tags 'Key=jenkins:credentials:username,Value=joe' 'Key=jenkins:credentials:type,Value=usernamePassword'

Luego vinculamos la credencial 'artifactory' en nuestro Jenkinsfile.

 pipeline { agent any environment { ARTIFACTORY = credentials('artifactory') } stages { stage('Foo') { steps { // Three environment variables are now available to use however you want: // // ARTIFACTORY=joe:supersecret // ARTIFACTORY_USR=joe // ARTIFACTORY_PSW=supersecret sh './deploy' } } } }
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