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でS3 Select
RDSスナップショットをS3にエクスポートした、Parquetフォーマットのデー …
-
-
AWSアカウントの解約
アカウント作成メニュー確認のために作成したAWSアカウントを解約しました。 使っ …
-
-
EFSをEC2(Amazon Linux 2)からマウントする
Amazon Elastic File Systemが東京リージョンに来たことも …
-
-
S3リクエストメトリクスをプレフィックスを指定して有効化
検証でどのリクエストがどれぐらい発生しているのか、さっと知りたくなったので、特定 …
-
-
AWS Storage Gatewayボリュームゲートウェイを作成してWindowsから使用
ボリュームゲートウェイの作成 Storage Gateway作成メニューからボリ …
-
-
Amazon S3バケットでMFA Deleteを有効にする
バージョニングが有効なバケットでバージョン削除でMFA Deleteを有効にして …
-
-
Backlogの実績工数をAmazon QuickSightで可視化してわかったこと
今年に入ってから、Backlogで個人タスクを登録しだして、予定工数、実績工数を …
-
-
API Gateway Lambdaプロキシ統合で渡されるリクエストを確認しました
API Gatewayの統合リクエストでLambdaを指定するときにプロキシ統合 …
-
-
Systems Manager デフォルトのホスト管理設定(Default Host Management Configuration)を確認しました
2023/2/17のアップデートAWS Systems Manager をアカウ …
-
-
API Gateway 作成済REST APIの定義をSwaggerの形式でエクスポート
SAMで似たようなAPIを作りたくて、エクスポートしました。 Swaggerは、 …


