MySQLプラグイン

Keeper Commanderを使用したMySQLデータベースのローテーションと接続

Keeper Secrets Managerの新しいパスワードローテーション機能がリリースされました。パスワードローテーションのどのような事例でもこの新機能の使用を推奨します。詳細については以下をご参照ください。

前提条件

PyMySQLのインストール

pip3 install -Iv PyMySQL==0.10.1

MySQL CommanderプラグインにはPyMySQLプラグインバージョン0.10.1が必要で、それより新しいバージョンはサポートされていません。

ローテーション用の記録を準備

MySQLのユーザー名とパスワードを格納する記録を作成

KeeperボルトのUIまたはKeeper Commanderを使用して記録を作成します。

Commanderのローテーションは、すべての記録タイプをサポートしています。 記録には「ログイン」フィールドが必要です。

記録のホストとポートを設定

タイプ指定されていない記録を使用する場合は、ホストとポートをカスタムフィールドに設定できます。以下をご参照ください。

Commanderは、ポート番号が3306の記録、またはホスト名が「mysql//」で始まる記録に対してmysqlプラグインを自動的に使用します

ログインとパスワードの値を現在のデータベースユーザーの値に設定します

オプションのカスタムフィールド

ラベルコメント

cmdr:plugin

mysql

MySQLローテーションを使用するようにCommanderに指示します これは、記録に設定するか、またはローテーションコマンドに指定する必要があります

cmdr:host

MySQL serverのホスト名。記録のホストフィールドで設定されていない場合は、ここで設定できます

cmdr:rules

「大文字の数, 小文字の数, 数字の数, 記号の数」

(たとえば、4,6,3,8)

パスワード生成ルール

cmdr:port

MySQLのポート。 省略した場合は3306と見なされます 記録のホストフィールドで設定されていない場合は、ここで設定できます

cmdr:user_host

ユーザーホスト。省略した場合は「%」と見なされます

パスワードのローテーション

UID記録の取得

記録の情報のポップアップでUIDを検索

ローテーションを実行

MySQLのパスワードをローテーションするには、Commanderでrotateコマンドを使用します。 コマンドに記録タイトルもしくはUIDを渡します (複数の記録を1度にローテーションさせるには、正規表現で--matchを使用します)

rotate "MySQL Example" --plugin mssql

プラグインは、こちらに示すようにコマンドに指定することも、記録のフィールドに追加することも、ポート番号や"mysql://"で始まるホストに基づいて自動的に割り当てることもできます (上記のオプションを参照)。 記録にプラグインタイプを追加すると、プラグインの異なる複数の記録を1度にローテーションできます。

出力

ローテーションが完了すると、新しいパスワードが記録のパスワードフィールドに格納されます

Keeper Commanderのconnectコマンドとの連携

カスタムフィールド名カスタムフィールド値

connect:xxx:env:MYSQL_PWD

${password}

connect:xxx

mysql -u${login} -h${cmdr:host}

xxxは、コマンドラインで接続する際に参照できる「分りやすい名前」を示します。

このユースケースのKeeper ボルトの記録のスクリーンショットを以下に示します。

connectコマンドの詳細については、こちらのページをご参照ください。

最終更新