Orchestrator
2022.4
False
Bannerhintergrundbild
Orchestrator-Anleitung
Letzte Aktualisierung 19. Apr. 2024

HashiCorp Vault-Integration

HashiCorp Vault ist ein Plugin, das Sie als Anmeldeinformationsspeicher mit dem Orchestrator verwenden können.

Es sind zwei Plugins enthalten:

  • HashiCorp Vault – ein Lese-Schreib-Plugin (Geheimschlüssel werden über den Orchestrator erstellt)
  • HashiCorp Vault (schreibgeschützt) – ein schreibgeschütztes Plugin (Sie müssen die Geheimschlüssel im Tresor direkt bereitstellen)

Voraussetzungen

  • Sie müssen eine der unterstützten Authentifizierungsmethoden konfigurieren:

  • Sie müssen eine der unterstützten Geheimnis-Engines konfigurieren:

    • KeyValueV1 – sowohl für das HashiCorp Vault-Plugin als auch für das HashiCorp Vault-Plugin (schreibgeschützt) verfügbar
    • KeyValueV2 – sowohl für das HashiCorp Vault-Plugin als auch für das HashiCorp Vault-Plugin (schreibgeschützt) verfügbar
    • ActiveDirectory – nur für das HashiCorp Vault-Plugin (schreibgeschützt) verfügbar
  • Die gewählte Authentifizierungsmethode muss über eine Richtlinie verfügen, die die folgenden Fähigkeiten auf dem Pfad zulässt, auf dem Sie Ihre Geheimnisse speichern wollen:

    • Für das HashiCorp Vault-Plugin (schreibgeschützt): read
    • Für HashiCorp Vault-Plugin: create, read, update, delete und optional delete im Metadatenpfad, wenn Sie die Geheimnis-Engine KeyValueV2 verwenden

Konfigurieren der Integration

Im Folgenden wird anhand eines Beispiels gezeigt, wie eine Entwicklungsversion von HashiCorp Vault, die in einem Docker-Container ausgeführt wird, so konfiguriert wird, dass sie als Anmeldeinformationsspeicher mit dem Orchestrator verwendet werden kann. Die Beispiele sollten an Ihre eigene Umgebung angepasst werden. Weitere Informationen finden Sie in der offiziellen Dokumentation zu HashiCorp Vault.

Konfigurieren der Authentifizierung

Zum Erstellen und Lesen von Geheimnissen müssen Sie zunächst die Authentifizierungsmethode konfigurieren, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie eine Shell innerhalb des Containers:
    docker exec -it dev-vault shdocker exec -it dev-vault sh
  2. Melden Sie sich als Root an. Stellen Sie sicher, dass das Root-Token in den Protokollen angezeigt wird, um damit eine Umgebungsvariable zu setzen, indem Sie den folgenden Befehl ausführen:
    export VAULT_TOKEN=s.hA7RJ5lBqSnKUPd8nrQBaK1fexport VAULT_TOKEN=s.hA7RJ5lBqSnKUPd8nrQBaK1f
  3. Überprüfen Sie den Vault-Status, indem Sie den folgenden Befehl ausführen:
    vault statusvault status
  4. Fügen Sie ein Dummy-Geheimnis für den Orchestrator in den KV-Speicher ein:
    vault kv put secret/applications/orchestrator/testSecret supersecretpassword=123456vault kv put secret/applications/orchestrator/testSecret supersecretpassword=123456
  5. Gewähren Sie dem Orchestrator Zugriff auf den neu erstellten secret/applications/orchestrator-Pfad. Dazu müssen Sie zuerst eine Richtlinie zum Lesen und Schreiben in diesem Pfad und allen seinen Unterpfaden erstellen, indem Sie den folgenden Befehl ausführen:
    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
    Hinweis:
    Wenn Sie eine KeyValueV2-Geheimnis-Engine verwenden, werden die Geheimnisse am Pfad <mount>/data/<secret-path> geschrieben und abgerufen, im Gegensatz zu <mount>/<secret-path> in KeyValueV1. Die CLI-Befehle werden nicht geändert (d. h. Sie geben keine Daten in Ihrem Pfad an).
    Die Richtlinien werden dadurch jedoch geändert, da Funktionen auf den echten Pfad angewendet werden. Im vorherigen Beispiel ist der Pfad secret/data/applications/orchestrator/*, da wir mit einer KeyValueV2 Geheimnis-Engine arbeiten. Würde ein KeyValueV2 verwendet, wäre der Pfad secret/applications/orchestrator/*.

    Die Funktion zum Löschen im Metadatenpfad ist nur erforderlich, wenn Sie sicherstellen möchten, dass der Orchestrator beim Überprüfen der Konnektivität keine Testschlüssel hinterlässt. Wenn diese Fähigkeit nicht gewährt wird, wird ein Schlüssel erstellt und bei der Erstellung des Anmeldeinformationsspeichers im Orchestrator zurückgelassen.

  6. Aktivieren Sie die Authentifizierung mit der userpass-Authentifizierungsmethode, erstellen Sie dann einen Benutzer für den Orchestrator und weisen Sie die zuvor erstellte Richtlinie zu:
    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
    Hinweis: Der Orchestrator unterstützt mehrere Authentifizierungsmodi. In der Dokumentation zu HashiCorp Vault finden Sie weitere Informationen zu deren Konfiguration.
  7. Überprüfen Sie, ob Sie alles richtig konfiguriert haben, indem Sie sich anmelden und versuchen, das zuvor erstellte Geheimnis zu lesen:
    vault login -method=userpass username=orchestrator password=123456vault login -method=userpass username=orchestrator password=123456

    Ausgabe dieses Befehls:

    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. Nehmen Sie dieses Token und setzen Sie es anstelle des Stammtokens. Dann versuchen Sie, das Testgeheimnis zu lesen:
    export VAULT_TOKEN=s.nwombWQH3gGPDhJumRzxKqgI
    vault kv get secret/applications/orchestrator/testSecretexport VAULT_TOKEN=s.nwombWQH3gGPDhJumRzxKqgI
    vault kv get secret/applications/orchestrator/testSecret

Ausgabe dieses Befehls:

====== 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
Hinweis:

Sie können auch den appRole-Orchestrator aktivieren, indem Sie den folgenden Befehl ausführen:

/ # 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

Sie verfügen jetzt über eine Rollen-ID und eine Geheimnis-ID zum Konfigurieren im Orchestrator.

Konfigurieren der Active Directory Geheimnis-Engine

Führen Sie die folgenden Schritte aus, um die Active Directory Geheimnis-Engine zu konfigurieren:

  1. Aktivieren Sie die Active Directory Geheimnis-Engine, indem Sie den folgenden Befehl ausführen:
    vault secrets enable advault secrets enable ad
  2. Konfigurieren Sie die Anmeldeinformationen, die HashiCorp Vault für die Kommunikation mit Active Directory verwendet, um Kennwörter zu generieren:
    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. Konfigurieren Sie eine Rolle, die einen Namen im HashiCorp Vault einem Konto in Active Directory zuweist. Wenn Anwendungen Kennwörter anfordern, werden die Einstellungen für die Kennwortrotation von dieser Rolle verwaltet.
    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. Gewähren Sie orchestrator Zugriff auf seine Anmeldeinformationen bei ad/creds/orchestrator mithilfe einer Authentifizierungsmethode, z. B. 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

Verwenden von HashiCorp Vault (schreibgeschützt)

Wenn Sie das HashiCorp Vault-Plugin (schreibgeschützt) verwenden, ist der Vault-Administrator für die korrekte Bereitstellung der Geheimnisse verantwortlich, die der Orchestrator verwenden wird. Das Format, in dem diese Geheimnisse bereitgestellt werden müssen, unterscheidet sich zwischen den verschiedenen Geheimnistypen (Asset- oder Roboterkennwort) und den verschiedenen Geheimnis-Engines.

Anweisungen zum Bereitstellen der Geheimnisse finden Sie unter:

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.