Orchestrator
2022.10
False
Imagen de fondo del banner
Guía del usuario de Orchestrator
Última actualización 19 de abr. de 2024

Integración de HashiCorp Vault

HashiCorp Vault es un complemento que puedes utilizar como almacén de credenciales con Orchestrator.

Se incluyen dos complementos:

  • HashiCorp Vault: complemento de lectura y escritura (los secretos se crean a través de Orchestrator).
  • HashiCorp Vault (solo lectura): complemento de solo lectura (debes aprovisionar los secretos en Vault directamente).

Requisitos previos

  • Debes configurar uno de los métodos de autenticación admitidos:

  • Debes configurar uno de los motores de secretos admitidos:

    • KeyValueV1: disponible para los complementos HashiCorp Vault y HashiCorp Vault (solo lectura).
    • KeyValueV2: disponible para los complementos HashiCorp Vault y HashiCorp Vault (solo lectura).
    • ActiveDirectory: disponible solo para el complemento HashiCorp Vault (solo lectura).
  • El método de autenticación elegido debe tener una política que permita las siguientes capacidades en la ruta donde tienes previsto almacenar tus secretos:

    • Para el complemento HashiCorp Vault (solo lectura): read
    • Para el complemento HashiCorp Vault: create, read, update, delete y de manera opcional delete en la ruta de metadatos, si se utiliza el motor de secretos KeyValueV2

Configurar la Integración

El siguiente es un ejemplo de cómo configurar una versión de desarrollo de HashiCorp Vault, que se ejecuta en un contenedor Docker, para utilizarse como almacén de credenciales con Orchestrator. Los ejemplos deben adaptarse a tu propio entorno. Consulta la documentación oficial de HashiCorp Vault para obtener más información.

Configurar autenticación

Para empezar a crear y leer secretos, primero hay que configurar el método de autenticación realizando los siguientes pasos:

  1. Abre un shell del contenedor:
    docker exec -it dev-vault shdocker exec -it dev-vault sh
  2. Inicia sesión como raíz. Asegúrate de que tienes el token raíz que aparece en los registros para establecer una variable de entorno con él ejecutando el siguiente comando:
    export VAULT_TOKEN=s.hA7RJ5lBqSnKUPd8nrQBaK1fexport VAULT_TOKEN=s.hA7RJ5lBqSnKUPd8nrQBaK1f
  3. Comprueba el estado de Vault ejecutando el siguiente comando:
    vault statusvault status
  4. Añade un secreto ficticio para Orchestrator en el almacén KV:
    vault kv put secret/applications/orchestrator/testSecret supersecretpassword=123456vault kv put secret/applications/orchestrator/testSecret supersecretpassword=123456
  5. Concede a Orchestrator acceso a la ruta secret/applications/orchestrator recién creada. Para ello, primero debes crear una política para leer y escribir en esta ruta y en todas sus subrutas ejecutando el siguiente comando:
    cat <<EOF | vault policy write orchestrator-policy -
    path "secret/data/applications/orchestrator/*" {
      capabilities = ["create", "read", "update", "delete"]
    }
    path "secret/metadata/applications/orchestrator/*" {
      capabilities = ["delete"]
    }
    EOFcat <<EOF | vault policy write orchestrator-policy -
    path "secret/data/applications/orchestrator/*" {
      capabilities = ["create", "read", "update", "delete"]
    }
    path "secret/metadata/applications/orchestrator/*" {
      capabilities = ["delete"]
    }
    EOF
    Nota:
    Cuando se utiliza un motor de secretos KeyValueV2, los secretos se escriben y se obtienen en la ruta <mount>/data/<secret-path>, a diferencia de <mount>/<secret-path> en KeyValueV1. No cambia ninguno de los comandos de CLI (es decir, no especifica datos en su ruta).
    Sin embargo, sí cambia las políticas, ya que las capacidades se aplican a la ruta real. En el ejemplo anterior, la ruta es secret/data/applications/orchestrator/* ya que se está utilizando un motor de secretos KeyValueV2. Si se utilizara un KeyValueV1, la ruta habría sido secret/applications/orchestrator/*.

    La capacidad de eliminar en la ruta de metadatos solo es necesaria si deseas asegurarte de que Orchestrator no deja atrás claves de prueba al verificar la conectividad. Si no se concede esta capacidad, se creará una clave que se dejará al crear el almacén de credenciales en Orchestrator.

  6. Habilita la autenticación utilizando el método de autenticación userpass, luego crea un usuario para Orchestrator y asigna la política previamente creada:
    vault auth enable userpass
    vault write auth/userpass/users/orchestrator password=123456 policies=orchestrator-policyvault auth enable userpass
    vault write auth/userpass/users/orchestrator password=123456 policies=orchestrator-policy
    Nota: Orchestrator admite varios modos de autenticación. Consulta la documentación de HashiCorp Vault para saber cómo configurarlos.
  7. Comprueba que has configurado todo correctamente iniciando sesión e intentando leer el secreto que creaste anteriormente:
    vault login -method=userpass username=orchestrator password=123456vault login -method=userpass username=orchestrator password=123456

    Salida de este comando:

    WARNING! The VAULT_TOKEN environment variable is set! This takes precedence
    over the value set by this command. To use the value set by this command,
    unset the VAULT_TOKEN environment variable or set it to the token displayed
    below.
    Success! You are now authenticated. The token information displayed below
    is already stored in the token helper. You do NOT need to run "vault login"
    again. Future Vault requests will automatically use this token.
    Key                    Value
    ---                    -----
    token                  s.nwombWQH3gGPDhJumRzxKqgI
    token_accessor         aGJL6Pzc6fRRuP8d8tTjS2Kj
    token_duration         768h
    token_renewable        true
    token_policies         ["default" "orchestrator-policy"]
    identity_policies      []
    policies               ["default" "orchestrator-policy"]
    token_meta_username    orchestratorWARNING! The VAULT_TOKEN environment variable is set! This takes precedence
    over the value set by this command. To use the value set by this command,
    unset the VAULT_TOKEN environment variable or set it to the token displayed
    below.
    Success! You are now authenticated. The token information displayed below
    is already stored in the token helper. You do NOT need to run "vault login"
    again. Future Vault requests will automatically use this token.
    Key                    Value
    ---                    -----
    token                  s.nwombWQH3gGPDhJumRzxKqgI
    token_accessor         aGJL6Pzc6fRRuP8d8tTjS2Kj
    token_duration         768h
    token_renewable        true
    token_policies         ["default" "orchestrator-policy"]
    identity_policies      []
    policies               ["default" "orchestrator-policy"]
    token_meta_username    orchestratorWARNING! The VAULT_TOKEN environment variable is set! This takes precedence
    over the value set by this command. To use the value set by this command,
    unset the VAULT_TOKEN environment variable or set it to the token displayed
    below.
    Success! You are now authenticated. The token information displayed below
    is already stored in the token helper. You do NOT need to run "vault login"
    again. Future Vault requests will automatically use this token.
    Key                    Value
    ---                    -----
    token                  s.nwombWQH3gGPDhJumRzxKqgI
    token_accessor         aGJL6Pzc6fRRuP8d8tTjS2Kj
    token_duration         768h
    token_renewable        true
    token_policies         ["default" "orchestrator-policy"]
    identity_policies      []
    policies               ["default" "orchestrator-policy"]
    token_meta_username    orchestratorWARNING! The VAULT_TOKEN environment variable is set! This takes precedence
    over the value set by this command. To use the value set by this command,
    unset the VAULT_TOKEN environment variable or set it to the token displayed
    below.
    Success! You are now authenticated. The token information displayed below
    is already stored in the token helper. You do NOT need to run "vault login"
    again. Future Vault requests will automatically use this token.
    Key                    Value
    ---                    -----
    token                  s.nwombWQH3gGPDhJumRzxKqgI
    token_accessor         aGJL6Pzc6fRRuP8d8tTjS2Kj
    token_duration         768h
    token_renewable        true
    token_policies         ["default" "orchestrator-policy"]
    identity_policies      []
    policies               ["default" "orchestrator-policy"]
    token_meta_username    orchestrator
  8. Selecciona este token y ponlo en lugar del token raíz, luego intenta leer el secreto de la prueba:
    export VAULT_TOKEN=s.nwombWQH3gGPDhJumRzxKqgI
    vault kv get secret/applications/orchestrator/testSecretexport VAULT_TOKEN=s.nwombWQH3gGPDhJumRzxKqgI
    vault kv get secret/applications/orchestrator/testSecret

Salida de este comando:

====== Metadata ======
Key              Value
---              -----
created_time     2020-10-12T06:24:41.7827631Z
deletion_time    n/a
destroyed        false
version          1
=========== Data ===========
Key                    Value
---                    -----
supersecretpassword    123456====== Metadata ======
Key              Value
---              -----
created_time     2020-10-12T06:24:41.7827631Z
deletion_time    n/a
destroyed        false
version          1
=========== Data ===========
Key                    Value
---                    -----
supersecretpassword    123456====== Metadata ======
Key              Value
---              -----
created_time     2020-10-12T06:24:41.7827631Z
deletion_time    n/a
destroyed        false
version          1
=========== Data ===========
Key                    Value
---                    -----
supersecretpassword    123456====== Metadata ======
Key              Value
---              -----
created_time     2020-10-12T06:24:41.7827631Z
deletion_time    n/a
destroyed        false
version          1
=========== Data ===========
Key                    Value
---                    -----
supersecretpassword    123456
Nota:

También puedes habilitar appRole Orchestrator ejecutando el siguiente comando:

/# vault auth enable approle
/# vault write auth/approle/role/orchestrator policies=orchestrator-policy
/# vault read auth/approle/role/orchestrator/role-id
/# vault write -f auth/approle/role/orchestrator/secret-id/# vault auth enable approle
/# vault write auth/approle/role/orchestrator policies=orchestrator-policy
/# vault read auth/approle/role/orchestrator/role-id
/# vault write -f auth/approle/role/orchestrator/secret-id

Ahora tendrás un ID de rol y un ID secreto para configurar en Orchestrator.

Configurar el motor de secretos de Active Directory

Para configurar el motor de secretos de Active Directory, realiza los pasos siguientes:

  1. Habilita el motor de secretos de Active Directory ejecutando el siguiente comando:
    vault secrets enable advault secrets enable ad
  2. Configura las credenciales que HashiCorp Vault utiliza para comunicarse con Active Directory para generar contraseñas:
    vault write ad/config \
        binddn=$USERNAME \
        bindpass=$PASSWORD \
        url=ldaps://138.91.247.105 \
        userdn='dc=example,dc=com'vault write ad/config \
        binddn=$USERNAME \
        bindpass=$PASSWORD \
        url=ldaps://138.91.247.105 \
        userdn='dc=example,dc=com'
  3. Configura un rol que asigne un nombre en HashiCorp Vault a una cuenta en Active Directory. Cuando las aplicaciones solicitan contraseñas, este rol gestionará la configuración de la rotación de contraseñas.
    vault write ad/roles/orchestrator service_account_name="my-application@example.com"vault write ad/roles/orchestrator service_account_name="my-application@example.com"
  4. Concede a orchestrator acceso a sus credenciales en ad/creds/orchestrator utilizando un método de autenticación como AppRole.
    cat <<EOF | vault policy write orchestrator-policy -
    path "ad/creds/orchestrator" {
      capabilities = ["read"]
    }
    EOFcat <<EOF | vault policy write orchestrator-policy -
    path "ad/creds/orchestrator" {
      capabilities = ["read"]
    }
    EOF

Usar HashiCorp Vault (solo lectura)

Cuando se utiliza el complemento HashiCorp Vault (solo lectura), el administrador de Vault es responsable de aprovisionar correctamente los secretos que utilizará Orchestrator. El formato en el que estos secretos deben aprovisionarse difiere entre los tipos de secreto (activo frente a contraseña de robot) y entre los motores de secretos.

Para obtener instrucciones sobre cómo aprovisionar los secretos, consulta lo siguiente:

Was this page helpful?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.