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に変わったことが確認できました。
無事にユーザーを交代しながらローテーションできました。
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS Organizationsで組織全体のAWS CloudTrailを有効にしました
Organizationsのサービスメニューから、CloudTrailを選択して …
-
-
Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する
Microsoft Teamsの検証を始めましたので、Slackで自動化している …
-
-
このブログをAWS大阪リージョンへ移行しました
大阪リージョン爆誕!! 朝起きて寝ぼけながらリージョンを見てると。 「大阪リージ …
-
-
WordPress(EC2)の画像のS3へのオフロードをMedia Cloudで
タイトル通りですが、画像をwebサーバー(EC2)からではなく、S3バケットから …
-
-
AWS Elastic Beanstalkによって作成されたS3バケットはDeleteBucketが拒否されていた
ちょっとした検証をしたあとに、Elastic Beanstalkのアプリケーショ …
-
-
RDS自動バックアップの自動クロスリージョンコピー
このブログのRDS for MySQLはAWS Backupで大阪リージョンから …
-
-
AWS Organizations組織でCompute Optimizerを有効にしました
OrganizationsでCompute Optimizerの信頼されたアクセ …
-
-
「関西AWSスタートアップ勉強会」に行ってきました
第2回 関西スタートアップAWS勉強会に行ってきました。 akippa 拠点数コ …
-
-
EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました
EC2 Global Viewという機能がリリースされました。 EC2コンソール …
-
-
VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した
2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …