AWS RDS for SQL Server
Keeperを使用したAWS SQL Serverデータベースの管理者と通常ユーザーのローテーション
概要
本ページでは、Keeperローテーションを使用して、AWS環境でAWS SQL Serverデータベースのユーザーアカウントと管理者アカウントのパスワードをローテーションする方法について取り扱います。RDS for SQL ServerはAWSのマネージドリソースで、SQL Serverの管理者のクレデンシャルがPAMデータベースレコードタイプで定義され、SQL Serverユーザーの設定がPAMユーザーレコードタイプで定義されています。
Amazon RDSでは、AWS SDKを使用してデータベース管理者アカウントのパスワードをローテーションします。通常のデータベースユーザーのパスワードをローテーションするために、Keeperでは指定された管理者クレデンシャルを使用してDBインスタンスに接続し、パスワードの変更に必要なSQLステートメントを実行します。AWS環境でのローテーションプロセスの概要については、こちらのページをご参照ください。
要件
本ページでは、以下を前提としています。
Keeperローテーションがご利用のロールに対して有効になっていること
Keeperシークレットマネージャーアプリケーションが作成済みであること
Keeperローテーションゲートウェイがすでにインストールされて動作しており、AWS SQL Serverデータベースと通信できること
ゲートウェイがLinuxサーバーまたはmacOSサーバーにインストールされている場合は、Microsoft ODBCドライバをインストールします
AWS環境がKeeperのドキュメントに従って設定されていること
1. PAMデータベースレコードを設定
PAMデータベースレコードには、管理者のクレデンシャルと、AWSのSQL Server RDSインスタンスに接続するために必要な設定が含まれています。Keeperローテーションは、これらの設定を使用して、SQL Server RDSインスタンスの通常のデータベースユーザーアカウントのパスワードをローテーションします。これらの管理者のクレデンシャルには、データベースユーザーアカウントのクレデンシャルを正常に変更するのに十分なデータベースアクセス権も必要となります。
以下は、PAMデータベースレコードの必須フィールドとなります。
タイトル
Keeperのレコードタイトル 例:RDS SQL Server Admin
ホスト名またはIPアドレス
RDSエンドポイント (rdsdb.ckivswes.us-east-2.rds.amazonaws.com
)
ポート
RDSポート、デフォルトポートはポートマッピングを参照
すなわち1433
SSLの使用
データベースにSSLが設定されている場合は、接続する前にSSL検証を実行することを確認します
ログイン
ローテーションを実行する管理者アカウントのユーザー名
パスワード
管理者アカウントのパスワード
データベース接続
データベースサーバーに接続するときに使用されるオプションのデータベース。
たとえば、MS SQL Serverはデータベースを必要とするため、デフォルトでmaster
となります
データベースID
AWS DBインスタンスID
データベースタイプ
mssql
プロバイダリージョン
Amazon RDSインスタンスが使用しているリージョン(us-east-2
)
注: プロバイダリージョンとデータベースIDを追加すると、SDKを使用してPAMデータベースレコードを管理できるようになります。
管理者のクレデンシャルを含むこのPAMデータベースレコードは、要件に記載のKSMアプリケーションに共有されている共有フォルダに格納されている必要があります。この特権アカウントへのアクセスが必要なのはKSMアプリケーションのみであり、どのユーザーとも共有する必要はありません。
2. PAM設定を指定
AWS環境のPAM設定が作成済みの場合は、データベースユーザーのローテーションに必要なその他のリソースクレデンシャルを既存のPAM設定に追加します。
新しいPAM設定を作成する場合は、Keeperボルトにログインし、左側のメニューから[Secrets Manager]、[PAM設定]タブの順に選択して、[新規設定]をクリックします。
以下は、PAM設定レコードの必須フィールドとなります。
タイトル
設定名 (AWS RDS Configuration
など)
環境
AWS
を選択します。
ゲートウェイ
Keeperシークレットマネージャーアプリケーションで設定され、SQL Server 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値を追加します。
パスワード
アカウントパスワードはオプションです。空白の場合はローテーションで設定されます。
データベース接続
データベースサーバーに接続するときに使用されるオプションのデータベース。
たとえば、MS SQL Serverはデータベースを必要とするため、デフォルトでmaster
となります。
4. レコードのローテーションを設定 - AWS SQL Serverデータベースユーザー
手順3で設定したPAMユーザーレコードを選択し、そのレコードを編集して[パスワードローテーション設定]を開きます。
適切なスケジュールとパスワードの複雑さを選択します。
[ローテーション設定]では、以前に設定したPAM設定を使用する必要があります。
[リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベースクレデンシャルを選択する必要があります。
保存するとローテーションボタンが有効になり、必要に応じて、または指定したスケジュールでローテーションできるようになります。
PAMユーザーレコードに対する編集権限が付与されているユーザーなら誰でもそのレコードのローテーションを設定できます。
ローテーション設定画面に適切な管理者クレデンシャルが表示されていない場合は、Secrets Manager > [PAM設定]に移動し、必要なリソースクレデンシャルを追加します。
5. レコードのローテーションを設定 - AWS SQL Serverデータベース管理者
手順1で設定したPAMデータベースレコードを選択し、そのレコードを編集して[パスワードローテーション設定]を開きます。
適切なスケジュールとパスワードの複雑さを選択します。
[ローテーション設定]では、以前に設定したPAM設定を使用する必要があります。
[リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベースクレデンシャルを選択する必要があります。
保存するとローテーションボタンが有効になり、必要に応じて、または選択したスケジュールでローテーションできるようになります。
ローテーション設定画面に適切な管理者クレデンシャルが表示されていない場合は、Secrets Manager > [PAM設定]に移動し、必要なリソースクレデンシャルを追加します。
最終更新