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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS Lambda(Python3.7)でPandocを実行する
昨日まで(AWS Batch) 昨日までは、Pandocを実行して、S3バケット …
-
-
AWSアカウント ルートユーザーのMFAが使えなくなったので復旧
AWSのルートユーザーどころか、MFAが使えるログインすべてが使えなくなって焦り …
-
-
[事前準備] JAWS-UG 関西IoT専門支部「マクニカkibo + AWS IoTハンズオン」
来る12/19(土)の JAWS-UG 関西IoT専門支部第一回勉強会「マクニカ …
-
-
S3バケットのリクエスタ支払い
S3バケットのリクエスタ支払いを試しました。 バケットの設定 検証用のS3バケッ …
-
-
ALBにWAFを関連付けて特定のヘッダー以外はブロックする
おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …
-
-
Rocket.ChatにAPIで投稿するテスト(Postman)
トレーニング期間中で一時利用するチャットが欲しいなあと思い、Rocket.Cha …
-
-
Backlogの課題チケット更新内容をMicrosoft Teamsに通知する(AWS Lambda Python)
BacklogにSlack連携が追加されました。 ですが、私の所属している会社で …
-
-
よくあるサーバーレスアーキテクチャで質問フォーム
この記事はServerless2 Advent Calendar 2018に参加 …
-
-
kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)
Google Calendar Twilio Reminder Googleカレ …
-
-
Amazon VPCにオンプレミス検証環境想定プライベートDNSサーバー(BIND)をEC2で起動する
オンプレミス想定の検証で使うために、Amazon VPCにプライベート向けDNS …


