Azure MySQL - シングル/フレキシブルデータベース
Keeperを使用したAzure MySQLシングル/フレキシブルデータベースの管理者/通常ユーザーのローテーション
最終更新
Keeperを使用したAzure MySQLシングル/フレキシブルデータベースの管理者/通常ユーザーのローテーション
最終更新
このガイドでは、Keeperローテーションを使用して、Azure環境でAzure MySQLデータベースのユーザーアカウントと管理者アカウントのパスワードをローテーションする方法について説明します。Azure MySQLはAzureのマネージドリソースで、MySQLの管理者のクレデンシャルがPAMデータベースレコードタイプで定義され、MySQLユーザーの設定がPAMユーザーレコードタイプで定義されています。
Azure Managed MySQLデータベースでは、Azure SDKを使用してデータベース管理者アカウントのパスワードをローテーションします。通常のデータベースユーザーのパスワードをローテーションするために、Keeperは指定された管理者クレデンシャルを使用してDBインスタンスに接続し、パスワードの変更に必要なSQLステートメントを実行します。Azureネットワークでのローテーションプロセスの大まかな概要は、こちらのページをご参照ください。
Azureは、フレキシブル以外のMySQLマネージドサービスを2024年に廃止する予定です。フレキシブルという用語も削除されるはずです。参照: Azure Database for MySQLシングルサーバーはどうなりますか。
このガイドでは、以下の作業がすでに実行されていることを前提としています。
Keeperローテーションがご利用のロールに対して有効になっていること
Keeperシークレットマネージャーアプリケーションが作成済みであること
Keeperローテーションゲートウェイがすでにインストールされて動作しており、Azure MySQLサーバーデータベースと通信できること
Azure環境がKeeperのドキュメントに従って設定されていること
PAMデータベースレコードには、管理者のクレデンシャルと、AzureのMySQLサーバーに接続するために必要な設定が含まれています。Keeperローテーションは、これらの指定された設定を使用して、Azure MySQLサーバーインスタンスの通常のデータベースユーザーアカウントのパスワードをローテーションします。指定されたこれらの管理者のクレデンシャルには、データベースユーザーアカウントのクレデンシャルを正常に変更するための十分なデータベースアクセス権も必要です。
以下は、PAMデータベースレコードの必須フィールドとなります。
タイトル
Keeperのレコードタイトル、例:Azure MySQL Admin
ホスト名またはIPアドレス
データベースサーバー名、例: testdb-sql.mysql.database.azure.com
ポート
デフォルトポートはポートマッピングを参照
例: mysql=3306
SSLの使用
データベースにSSLが設定されている場合は、接続する前にSSL検証を実行することを確認します
ログイン
ローテーションを実行する管理者アカウントのユーザー名。DBユーザーテーブルの管理者アカウントのHost値が%以外の場合は、USERNAME@HOST
のようにユーザー名にHost値を追加します
パスワード
管理者アカウントのパスワード
データベースID
Azureデータベースサーバーの名前(testdb-sql
)
データベースタイプ
mysql
またはmysql-flexible
プロバイダグループ
Azureリソースグループ名
プロバイダリージョン
Azureリソースリージョン(East US
)
注意:プロバイダグループ、プロバイダリージョン、データベースIDを追加すると、Azure SDKを使用してPAMデータベースレコードを管理できるようになります。
管理者のクレデンシャルを含むこのPAMデータベースレコードは、前提条件で作成したKSMアプリケーションで共有される共有フォルダに格納されている必要があります。この特権アカウントへのアクセスが必要なのはKSMアプリケーションのみであり、どのユーザーとも共有する必要はありません。
Azure環境のPAM設定が作成済みの場合は、マシンユーザーのローテーションに必要なその他のリソースクレデンシャルを既存のPAM設定に追加します。
新しいPAM設定を作成する場合は、Keeperボルトにログインし、左側のメニューから[Secrets Manager]、[PAM設定]タブの順に選択して、[新規設定]をクリックします。 以下の表に、PAM設定レコードの必須フィールドをすべて一覧で表示します。
タイトル
設定名、例:Azure DB Configuration
環境
選択:Azure Network
ゲートウェイ
Keeperシークレットマネージャーアプリケーションで設定され、前提条件のAzure MySQLデータベースにネットワークでアクセスできるゲートウェイを選択します
アプリケーションフォルダ
手順1のPAMデータベースレコードを含む共有フォルダを選択します
管理者クレデンシャルレコード
手順1で作成したPAMデータベースレコードを選択します これは、管理者のクレデンシャルが格納された、ディレクトリユーザーアカウントのクレデンシャルをローテーションするための十分な権限を持つレコードです
Azure ID
このAzureインスタンスの一意のID。これは参考用のため、何を指定してもよいですが、短くすることをお勧めします
例:Azure-Prod
クライアントID
アプリケーションの登録時にAzure ADによってアプリに割り当てられた一意のアプリケーション(クライアント)ID
クライアントシークレット
Azureアプリケーションのクライアントのクレデンシャルシークレット
サブスクリプションID
Azureサービスを使用するためのサブスクリプション(従量課金制)を識別するUUID
テナントID
Azure Active DirectoryのUUID
PAMネットワーク設定レコードの設定可能なすべてのフィールドの詳細は、こちらのページをご参照ください。
Keeperローテーションは、PAMデータベースレコードのクレデンシャルを使用して、Azure環境のPAMユーザーレコードをローテーションします。PAMユーザーのクレデンシャルは、前提条件で作成したKSMアプリケーションで共有される共有フォルダに格納されている必要があります。
以下の表に、PAMユーザーレコードの必須フィールドをすべて一覧で表示します。
タイトル
Keeperのレコードタイトル(Azure DB User1
)
ログイン
ローテーションするアカウントの大文字と小文字の区別があるユーザー名。DBユーザーテーブルのユーザーのHost値が%以外の場合は、USERNAME@SERVERNAME
のようにユーザー名にHost値を追加します
パスワード
アカウントパスワードはオプションです。空白の場合はローテーションで設定されます
手順3で設定したPAMユーザーのレコードを選択し、そのレコードを編集して、「パスワードローテーションの設定(Password Rotation Settings)」を開きます。
適切なスケジュールとパスワードの複雑さを選択します。
[ローテーション設定]では、以前に設定したPAM設定を使用する必要があります。
[リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベースクレデンシャルを選択する必要があります。
保存すると、ローテーションボタンが有効になり、必要に応じて、または選択したスケジュールでローテーションできるようになります。
PAMユーザーのレコードに対するedit
権限を持つユーザーならだれでも、そのレコードのローテーションを設定できます。
ローテーション設定画面に適切な管理者クレデンシャルが表示されていない場合は、Secrets Manager > [PAM設定]に移動し、必要なリソースクレデンシャルを追加します。
手順1で設定したPAMデータベースのレコードを選択し、そのレコードを編集して[パスワードローテーション設定]を開きます。
適切なスケジュールとパスワードの複雑さを選択します。
[ローテーション設定]では、以前に設定したPAM設定を使用する必要があります。
[リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベースクレデンシャルを選択する必要があります。
保存すると、ローテーションボタンが有効になり、必要に応じて、または選択したスケジュールでローテーションできるようになります。
ローテーション設定画面に適切な管理者クレデンシャルが表示されていない場合は、Secrets Manager > [PAM設定]に移動し、必要なリソースクレデンシャルを追加します。