AWS Secrets Manager交代ユーザーローテーション
AWS Secrets Managerの交代ユーザーローテーションを確認してみました。
確認したユーザーガイドのページはこちらAWS Secrets Manager に交代ユーザーローテーションを設定するです。
目次
検証準備
まずは検証用のRDS MySQLインスタンスをAWS Secrets ManagerのローテーションでLambda関数の管理が必要なくなりました記載の方法でSecrets Managerと同時に作成しました。
操作用のEC2インスタンスにセッションマネージャで接続して、MySQLコマンドでデータベースに接続しました。
データベースユーザーのパスワードはSecrets Managerのコンソールで「シークレットの値を取得する」から取得しました。
1 2 |
mysql -h database-1.c3gngubysyz7.us-east-1.rds.amazonaws.com -u admin -p |
ユーザーガイドのとおり、データベースと1人目のユーザーを作りました。
1 2 3 4 |
CREATE DATABASE myDB; CREATE USER 'appuser'@'%' IDENTIFIED BY 'dbpassword'; GRANT ALL PRIVILEGES ON myDB . * TO 'appuser'@'%'; |
この時点でユーザーを確認すると次でした。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
select user from mysql.user; +------------------+ | user | +------------------+ | admin | | appuser | | mysql.infoschema | | mysql.session | | mysql.sys | | rdsadmin | +------------------+ 6 rows in set (0.00 sec) |
VPCにはAWS Secrets ManagerとRDSのVPCエンドポイントを作成済です。
今のSecrets ManagerのLambda関数ってRDSのエンドポイントも必要なんですね。
AWS Secrets Managerシークレットの作成
新しいシークレットを作成して、ユーザーは先ほど作ったユーザーとデータベースインスタンスを選択しました。
自動ローテーションを有効にして、「個別の認証情報を使用してこのシークレットをローテーション」でRDSマスターユーザーのシークレットを選択しました。
新規で作成されたLambda関数のセキュリティグループをRDSインスタンスの送信元で許可されているセキュリティグループに変更しました。
[すぐにローテーションを実行させる]をクリックしました。
ローテーションが完了してから(Lambda関数の終了をCloudWatchで確認)「シークレットの値を取得する」から取得してみると、appuser_cloneというユーザーになっていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
select user from mysql.user; +------------------+ | user | +------------------+ | admin | | appuser | | appuser_clone | | mysql.infoschema | | mysql.session | | mysql.sys | | rdsadmin | +------------------+ 7 rows in set (0.00 sec) |
MySQLデータベースにもappuser_cloneができていました。
もう一度[すぐにローテーションを実行させる]をクリックすると、appuserに変わったことが確認できました。
無事にユーザーを交代しながらローテーションできました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
EC2:RunInstances APIにリクエストしてEC2インスタンスを起動(署名バージョン4、Postman)
AWSのAPIリクエストってHTTPでもよかったですよね?って思って、確認のため …
-
EC2 Amazon Linux 2 にAmazon LinuxからWordPressを移行
このブログを新しいインスタンスに移行することにしました。 2015年5月にAma …
-
Rocket.ChatにAPIで投稿するテスト(Postman)
トレーニング期間中で一時利用するチャットが欲しいなあと思い、Rocket.Cha …
-
Amazon Data Lifecycle Manager(DLM)が東京リージョンで使えるようになったのでLambdaでAMI自動取得から乗り換えた
EBSのスナップショットを自動で作成してくれるAmazon Data Lifec …
-
AWS Step Functions まずはパラレルでLambdaを並列実行してみました
複数のlambdaの実行制御をLambdaでやってましたが、その部分をStep …
-
AWS SSOのパスワードリマインダーでADのパスワードを変更
AWS Managed Microsoft ADを構築してユーザー追加までで構築 …
-
ハンズオン目的アカウントに設定しているSCPポリシー
AWS Organizationsでハンズオン目的のアカウントに設定しているSC …
-
AWSルートユーザーのパスワード復旧
AWSルートユーザーのパスワード最設定は、メールアドレスだけでいいのですね。 M …
-
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認する
ユーザーガイドのサービスコントロールポリシーの例にはDeny(拒否)ばっかりでA …
-
EC2 VyOSで/etc/resolv.confを設定しました
EC2でVyOSを起動してSSHで接続して確認していたところ、どうもVyOSから …