MySQLプラグイン

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

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

前提条件

PyMySQLのインストール

pip3 install -Iv PyMySQL==0.10.1

ローテーション用のレコードを準備

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

KeeperボルトのUIまたはKeeperコマンダーを使用してレコードを作成します。

Keeperボルトでのレコードの作成

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

レコードのホストとポートを設定

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

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

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

コマンダーは、ログインとパスワードを使用してMySQLアカウントにログインします

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

ラベル
コメント

cmdr:plugin

mysql

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

cmdr:host

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

cmdr:rules

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

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

パスワード生成ルール

cmdr:port

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

cmdr:user_host

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

ボルトのUIにカスタムフィールドを追加

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

UIDレコードの取得

レコードの情報のポップアップでUIDを検索

UIDレコードをクリックしてクリップボードにコピー

ローテーションを実行

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

rotate "MySQL Example" --plugin mssql

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

出力

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

Keeperコマンダーのconnectコマンドとの連携

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

connect:xxx:env:MYSQL_PWD

${password}

connect:xxx

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

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

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

コマンダーの「connect」コマンドと使用するKeeperのレコードの設定

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

最終更新