LoginSignup
0
0

RDSマネージドローテーションキーでカスタムユーザーの値に変更できるのか

Last updated at Posted at 2023-09-21

SecretsManagerを利用している際に、各サービスでマネージドなローテーションキーを提供していることを確認しました。
今回はこのシークレット情報を変更できるのか検証してみました。

マネージドローテーションとは?

RDS作成/変更時にRDSのコンソール上で設定可能なSecretsManagerになります。
特徴としては、ローテーション用の間数が不要であり、SecretsManagerの値が以下画像のように「rds!」から始まるものになります。
image.png

ローテーション構成はいかのようになります。上記でも記載しましたがローテーション間数へのリンクもないので、間数なしでローテーションできることも大きな特徴になります。
image.png

RDS以外のサービスでも、マネージドローテーションキーを提供しているため、詳しくは以下を参考に。

検証前 予想

検証前の予想なのですが、上記ドキュメントを見ても「マスターユーザーパスワード」の記載が多く、更にはCLIでもオプション--rotate-master-user-password--manage-master-user-passwordなどのオプションがあるので、一見するとマスターユーザー以外は設定できないんじゃないかと見られます。
さらにはマネジメントコンソール上でも以下のような内容が記述されているため、おそらくは設定できないものかと。

このシークレットは Amazon RDS (rds) によって作成されました。
このシークレットは Amazon RDS (rds) によって管理されるため、シークレット値を変更することはできません。ただし、シークレットは他の方法で変更できる場合があります。

但し、シークレットを確認するとusernameとpasswordがシークレットキーとして置いているのでここのキー値だけを見ているのなら、カスタムユーザー値に書き換えればワンチャンいけるんじゃないかという予想です。

検証

以下のリンクに則ってDBユーザーnew_master_user1を作成します。

MariaDB [(none)]> CREATE USER 'new_master_user1'@'%' IDENTIFIED BY 'password';

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_master_user1'@'%' WITH GRANT OPTION;

その後、以下のように「rds!」から始まるシークレットに先ほど作成したユーザー情報に記載を変更しました。 

image.png

保存ボタンを押下すると以下のようにエラー。どうやら手動での変更は受け付けてないそうです。
image.png

そのため、カスタムユーザーのシークレット情報のローテーションを設定したいというのなら、従来のようにSecretsManagerから作成してローテする必要があるかと。。

終わりに

今回は短いですが、RDS上で指定しているユーザーでのみ、マネージドローテーションは提供できない。更には別ユーザーに変更できないと言ったことがわかりました。

色々手を動かしてみて初めてわかることもある。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0