私は Vault のチュートリアルとドキュメントに従って MySQL を設定してきましたが、大きな壁にぶつかってしまいました。
ドキュメンテーション:https://www.vaultproject.io/docs/secrets/databases/mysql-maria.html
mysql_secure_installation を使用して CentOS 7 に MySQL (8 と 5.6 を試しました) をインストールして構成しましたが、リモート ログインは無効にしませんでした。Vault サーバーと MySQL が同じサーバー上で実行されているにもかかわらずです。
次のようにログインするとmysql -u root -p
、問題なくログインできます。しかし、次のコマンドを実行すると:
plugin_name=mysql-database-plugin \
connection_url="{{username}}:{{password}}@tcp(127.0.0.1:3306)/" \
allowed_roles="mysqlrole" \
username="root" \
password="password-here"
失敗します:
URL: PUT http://127.0.0.1:8200/v1/database/config/my-mysql-database
Code: 400. Errors:
* error creating database object: error verifying connection: Error 1045: Access denied for user 'root'@'localhost' (using password: YES)
私は次のようなことを試しました:
GRANT all privileges on *.* to 'root'@'%' identified by 'your-password'
ログインテストをしてみましたmysql -u root -p -P 3306 -h 127.0.0.1
(うまくいきました)
リモートでログインしてみましたが、うまくいきました。何かがルートを保護している場合に備えて、非ルート ユーザーを作成してみましたが、これもうまくいきませんでした。Vault コマンド以外はすべて機能しますが、この問題の原因となる Vault のさらなる構成に関する参照が見つかりません。
Vault 側で何かが欠けているのでしょうか?
答え1
私の場合はMySql設定でした。
私がやったことは、my.cnfの「skip_name_resolve」をコメントアウトしたことです。
MySql を再起動すれば完了です!