はじめに
先日AWSで以下アナウンスが有りました。
こちらによってRDS作成時にパスワードのローテーション管理含めてAWS Secrets Managerに設定できるようになりました。
以前はLambdaとSecretsManagerをつかってのパスワードのローテーションをする必要があったため、大分楽になった印象です。
前提
基本設定できるタイミングは Amazon RDS と Amazon Auroraでは大きく相違は無いのですが、
以下タイミングで設定できます。
- DB インスタンスを作成する
- マルチ AZ DB クラスターを作成する
- DB インスタンスを変更する
- マルチ AZ DB クラスターを変更する
- Amazon S3 から DB インスタンスを復元する
- DB クラスターを作成する
- DB クラスターを変更する
- Amazon S3 から DB クラスターを復元する (Aurora MySQL のみ)
実演
それでは実際に試してみます。
今回はAurora MySQLで実際に作ってみます。
今回は基本デフォルトで作成することにします。
「Manage master credentials in AWS Secrets Manager」のチェックボックスを入れることで管理することが出来ます。
ただし、設定後KMSキーは変更することが出来ないため注意が必要です。
しばらくしてクラスターの設定画面を見ると作成されていました。
Secrets Managerを確認したところ値が入っていました。
こちらを用いてAuroraに接続してみます。
$ user=$(aws secretsmanager get-secret-value --secret-id rds\!cluster-******-********** | jq -r .SecretString | jq -r .username)
$ password=$(aws secretsmanager get-secret-value --secret-id rds\!cluster-******-********** | jq -r .SecretString | jq -r .password)
$ mysql -u $user -p$password -h database-1.********
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.7.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
こちらで接続確認が取れました!
Auroraクラスターを削除後、SecretsManagerも削除されていることを確認しました。
まとめ
これまでLambda+SecretsManagerで設定していたものが、チェックボックスひとつで設定できるようになりました。
ぜひ設定をしてみてはいかがでしょうか?
この記事がお役に立てば嬉しいです。
宣伝
自分の所属チームでメンバーを募集しています。
興味があればぜひご応募お待ちしております!
DMMの3,500万会員基盤システムをGo x AWSでリプレイスしませんか?
参考文献