皆さま、はじめまして。2025新人のkhaleedと申します。
新人研修も終盤に差し掛かっており、配属後の業務についていけるか日々不安を感じながらも、学びの機会を大切に過ごしています。
本業はセキュリティ関連の部署に携わる予定ですが、自己研鑽の一環としてAWS(Amazon Web Services) にも触れてみています。AWSには非常に多くのサービスがあり、調べれば調べるほど奥が深く、「これは一体どんな場面で使うんだろう?」と疑問に思うことも少なくありません。
そこで今回は、機密情報を安全に管理できる「AWS Secrets Manager」について、自分なりに調べた内容をまとめてみました。まだ勉強中の身ではありますが、同じようにAWSを学び始めた方にとって少しでも参考になれば幸いです。
AWS Secrets Managerとは
今回、勉強しようと思った背景は、DBにおいて認証情報を自動でローテーションしてくれるサービスとして、AWS Secrets Managerが紹介されていたことです。
Managerっていうからには、何かを自動化してくれるマネージドサービスなのかな?
SecretsをManageするんだから、機密情報を守ってくれる的な。といったイメージを勉強前はもっていました。
概要
AWS Secrets Managerとは、各種AWSサービスやオンプレミスへのアクセスに必要な機密情報を管理してくれるサービスです。
具体的には、
- 認証情報(ID、パスワード)
- APIキー
- OAuthトークン(動的な認証情報)
etc…
といった機密情報を管理、取得、ローテーションしてくれます。また、誰がどの機密情報にアクセスしたかのログも取得することができます。
続いて、認証情報の自動ローテーションについても追加で調査しました。
AWS Secrets Managerを用いた認証情報の自動ローテーション
今回は例として、データベースの認証情報をローテーションする例を考えます。
1. 認証情報を登録
まず、接続対象となるDB、DBユーザー名、DBパスワードなど各種認証情報を登録します。
2. 自動ローテーションを有効化
続いて自動ローテーションを有効化します。この時、ローテーション期間も設定することができます。
ローテーションの期限になると、後述するLambda関数が呼び出され、自動的に認証情報が変更されます。
3. Lambda関数を登録
最後に、このシークレットにLambda関数をアタッチします。
Lambda関数なんて難しくて書けないよ!という方も、指定すればAWS側が自動で関数を作成してくれるみたいです。
実際にやってみた
文字面だけだとほんとにできるのか不安だったので、実際にやってみました。
認証情報を登録
自動ローテーションを有効化 & Lambda関数登録
結果
ローテーション後↓
パスワードがしっかり変更されているのが分かります。
勉強してみて
機密情報を自動でローテーションしてくれるのは、アクセス管理の手間が省けて便利そう。
これからも手を動かして検証できたら嬉しいです。