AWS RDS for MySQL

Keeperを使用したAWS SQL Databaseの管理者/通常ユーザーのローテーション

概要

このガイドでは、Keeperローテーションを使用して、AWS環境でAWS MySQLデータベースのユーザーアカウントと管理者アカウントのパスワードをローテーションする方法について説明します。RDS for MySQLはAWSのマネージドリソースで、MySQLの管理者のクレデンシャルがPAMデータベース記録タイプで定義され、MySQLユーザーの設定がPAMユーザーレコードタイプで定義されています。

Amazon RDSでは、AWS SDKを使用してデータベース管理者アカウントのパスワードをローテーションします。通常のデータベースユーザーのパスワードをローテーションするために、Keeperは指定された管理者クレデンシャルを使用してDBインスタンスに接続し、パスワードの変更に必要なSQLステートメントを実行します。AWS環境でのローテーションプロセスの大まかな概要は、こちらのページをご参照ください。

前提条件

このガイドでは、以下の作業がすでに実行されていることを前提としています。

  • Keeperシークレットマネージャーが企業およびロールに対して有効になっていること

  • Keeperローテーションがご利用のロールに対して有効になっていること

  • Keeperシークレットマネージャーアプリケーションが作成済みであること

  • Keeperローテーションゲートウェイがすでにインストールされて動作しており、AWS MySQLデータベースと通信できること

  • AWS環境がKeeperのドキュメントに従って設定されていること

1. PAMデータベースレコードを設定

PAMデータベースレコードには、管理者のクレデンシャルと、AWSのMySQL RDSインスタンスに接続するために必要な設定が含まれています。Keeperローテーションは、これらの指定された設定を使用して、MySQL RDSインスタンスの通常のデータベースユーザーアカウントのパスワードをローテーションします。指定されたこれらの管理者のクレデンシャルには、データベースユーザーアカウントのクレデンシャルを正常に変更するための十分なデータベースアクセス権も必要です。

以下は、PAMデータベースレコードの必須フィールドとなります。

フィールド
説明

タイトル

Keeperのレコードタイトル 例:AWS MySQL Admin

ホスト名またはIPアドレス

RDSエンドポイント(rdsdb.ckivswes.us-east-2.rds.amazonaws.com

ポート

RDSポート、デフォルトポートはポートマッピングを参照 すなわち3306

SSLの使用

データベースにSSLが設定されている場合は、接続する前にSSL検証を実行することを確認します

ログイン

ローテーションを実行する管理者アカウントのユーザー名

パスワード

管理者アカウントのパスワード

データベースID

AWS DBインスタンスID

データベースタイプ

mysql

プロバイダリージョン

Amazon RDSインスタンスが使用しているリージョン(us-east-2

注: プロバイダリージョンとデータベースIDを追加すると、SDKを使用してPAMデータベースレコードを管理できるようになります。

管理者のクレデンシャルを含むこのPAMデータベースレコードは、前提条件で作成したKSMアプリケーションで共有される共有フォルダに格納されている必要があります。この特権アカウントへのアクセスが必要なのはKSMアプリケーションのみであり、どのユーザーとも共有する必要はありません

2. PAMの設定を指定

AWS環境のPAM設定が作成済みの場合は、データベースユーザーのローテーションに必要なその他のリソースクレデンシャルを既存のPAM設定に追加すればよいだけです。

新しいPAM設定を作成する場合は、左側のメニューから[Secrets Manager]、[PAM設定]タブの順に選択して、[新規設定]をクリックします。

以下の表に、PAM設定レコードの必須フィールドをすべて一覧で表示します。

フィールド
説明

タイトル

設定名、例:AWS RDS Configuration

環境

選択:AWS

ゲートウェイ

Keeperシークレットマネージャーアプリケーションで設定され、MySQL RDSインスタンスにネットワークでアクセスできるゲートウェイを選択します

アプリケーションフォルダ

手順1のPAMデータベースレコードを含む共有フォルダを選択します

管理者クレデンシャルレコード

手順1で作成したPAMデータベースレコードを選択します これは、管理者のクレデンシャルが格納された、通常のデータベースユーザーアカウントのクレデンシャルをローテーションするための十分な権限を持つ記録です

AWS ID

AWSのこのインスタンスの一意のID。これは参考用のため、何を指定してもよいですが、短くすることをお勧めします 例:AWS-1

アクセスキーID

EC2ロールポリシー(デフォルト)を使用している場合は、このフィールドをUSE_INSTANCE_ROLEに設定します。使用していない場合は、特定のアクセスキーIDを使用します

シークレットアクセスキー

EC2ロールポリシー(デフォルト)を使用している場合は、このフィールドをUSE_INSTANCE_ROLEに設定します。使用していない場合は、特定のシークレットアクセスキーを使用します

PAMネットワーク設定レコードの設定可能なすべてのフィールドの詳細は、こちらのページをご参照ください。

3. PAMユーザーレコードを設定

Keeperローテーションは、PAMデータベースレコードのクレデンシャルを使用して、AWS環境のPAMユーザーレコードをローテーションします。PAMユーザーのクレデンシャルは、前提条件で作成したKSMアプリケーションで共有される共有フォルダに格納されている必要があります。

以下の表に、PAMユーザーレコードの必須フィールドをすべて一覧で表示します。

フィールド
説明

タイトル

Keeperのレコードタイトル(AWS DB User 1

ログイン

ローテーションするアカウントの大文字と小文字の区別があるユーザー名。DBユーザーテーブルのユーザーのHost値が%以外の場合は、USERNAME@HOSTのようにユーザー名にHost値を追加します

パスワード

アカウントパスワードはオプションです。空白の場合はローテーションで設定されます

4. レコードのローテーションを設定 - AWS MySQLデータベースユーザー

手順3で設定したPAMユーザーのレコードを選択し、そのレコードを編集して[パスワードローテーション設定]を開きます。

  • 適切なスケジュールとパスワードの複雑さを選択します。

  • [ローテーション設定]では、以前に設定したPAM設定を使用する必要があります。

  • [リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベースクレデンシャルを選択する必要があります。

  • 保存すると、ローテーションボタンが有効になり、必要に応じて、または選択したスケジュールでローテーションできるようになります。

PAMユーザーのレコードに対するedit権限を持つユーザーならだれでも、そのレコードのローテーションを設定できます。

ローテーション設定画面に適切な管理者クレデンシャルが表示されていない場合は、Secrets Manager > [PAM設定]に移動し、必要なリソースクレデンシャルを追加します。

5. レコードのローテーションを設定 - AWS MySQLデータベース管理者

手順1で設定したPAMデータベースのレコードを選択し、そのレコードを編集して[パスワードローテーション設定]を開きます。

  • 適切なスケジュールとパスワードの複雑さを選択します。

  • [ローテーション設定]では、以前に設定したPAM設定を使用する必要があります。

  • [リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベースクレデンシャルを選択する必要があります。

  • 保存すると、ローテーションボタンが有効になり、必要に応じて、または選択したスケジュールでローテーションできるようになります。

ローテーション設定画面に適切な管理者クレデンシャルが表示されていない場合は、Secrets Manager > [PAM設定]に移動し、必要なリソースクレデンシャルを追加します。

最終更新