Hashicorp Vault: сообщение об ошибке «Код: 400. Ошибки» - PullRequest
0 голосов
/ 05 февраля 2020

При использовании агента Vault с файлом секретного идентификатора я получил следующее сообщение об ошибке:

$ ./vault agent --config auth_config.hcl
==> Vault server started! Log data will stream in below:

==> Vault agent configuration:

           Api Address 1: http://127.0.0.1:8300
                     Cgo: disabled
               Log Level: info
                 Version: Vault v1.3.0

2020-02-04T14:08:28.352-0800 [INFO]  auth.handler: starting auth handler
2020-02-04T14:08:28.352-0800 [INFO]  auth.handler: authenticating
2020-02-04T14:08:28.352-0800 [INFO]  sink.server: starting sink server
2020-02-04T14:08:28.352-0800 [INFO]  template.server: starting template server
2020-02-04T14:08:28.352-0800 [INFO]  template.server: no templates found
2020-02-04T14:08:28.352-0800 [INFO]  template.server: template server stopped
2020-02-04T14:08:28.354-0800 [ERROR] auth.handler: error authenticating: error="Error making API request.

URL: PUT http://127.0.0.1:8200/v1/auth/approle/login
Code: 400. Errors:

* invalid secret id" backoff=2.190384035

Я выполнил следующую команду:

vault agent --config auth_config.hcl

Содержимое моего auth_config.hcl file is:

vault {
  address = "http://127.0.0.1:8200"
}

auto_auth {
  method "approle" {
    config {
      role_id_file_path = "./role_id"
      secret_id_file_path = "./secret_id"
      remove_secret_id_file_after_reading = false
    }
  }

}

cache {
  use_auto_auth_token = true
}

listener "tcp" {
  address = "127.0.0.1:8300"
  tls_disable = true
}

Мой секретный идентификатор был создан с помощью следующей команды:

vault write -f auth/approle/role/payments_service/secret-id -format=json | sed -E -n 's/.*"secret_id": "([^"]*).*/\1/p' > secret_id

Почему происходит эта ошибка?

1 Ответ

0 голосов
/ 05 февраля 2020

Я обнаружил, что обычно это происходит потому, что файл секретного идентификатора не был сгенерирован правильно. См. эту ветку Github , например. К сожалению, в моем случае файл был сгенерирован. Файл secret_id, указанный в auth_config.hcl, содержал секретный идентификатор.

В моем случае проблема заключалась в том, что после создания файла secret_id я выполнил команду vault write -f auth/approle/role/payments_service/secret-id во второй раз. Эта новая команда не записывала поверх исходного файла с новым секретным идентификатором. Следствием этой новой команды было то, что она повторно создала новый секретный идентификатор, который аннулировал предыдущий секретный идентификатор, который был записан в файл secret_id.

Мое решение состояло в том, чтобы повторно выполнить команду, которая записала секретный идентификатор в файл, secret_id, а затем немедленно запустите агент хранилища. Проблема решена.

...