機密管理サービス AWS Secrets Manager について

はじめに

こちらの記事を見ている方はおそらくAWSについての基本的な知識はお持ちだと思うのでAWSについての解説は飛ばしてAWS Secrets Manager サービスについての重点的な解説をしていきます。

AWS Secrets Manager とは

AWS Secrets Manager にシークレットと言う単語が入っているので想像通りAWS Secrets Manager はAWSのセキリュティーを司る機能になります。AWS Secrets Managerでのシークレットが何を指しているかというと、データーベース認証情報やサードパーティーのAPIキー、パスワードなどの皆さんが決めたデータです。
機密情報やログイン情報を扱うデータをAWS Secrets Managerを使えばこれらのシークレット情報へのアクセスを一元的に保存および制御できます 。
データベースの認証情報や、パスワードなどの任意のシークレット情報をAPIコールで簡単に取得できるためのAWSサービスの一つになります。別の拠点やサーバーにいる利用者たちがAWS Secrets Managerを利用してシークレット情報を獲得し、サーバーのセットアップや認証することができます。

AWS Secrets Manager を使うことによるメリットとは

AWS Secrets Manager を使用することのメリットは何でしょうか?別にAWS Secrets Manager のサービスを使用しなくてもログインやサーバーセットアップの認証などは今までも可能でした。このようなAWS Secrets Manager を使用しない方法ではほかのアプリケーションにシークレット情報を管理していました。

しかし、この方法の場合、認証情報を更新する場合がある度に、パスワードをアプリケーションに埋め込んでいる全ての箇所を更新する必要があり利用者にとっての管理コストも、アプリケーションのデーターがバージョン管理ツールから参照可能になってしまうリスクも低いとは言えない状況でした。

このような利用者からの声を元に提供されたサービスがAWS Secrets Managerになります。AWS Secrets Managerを使えばアプリケーションにシークレット情報を保存する必要がなくなることです。不慮の事故や悪意のある操作から起こってしまう情報漏洩の可能性を未然に防いでくれます。

AWS Secrets Managerはどのような機能で構成されてるのか?

まず先ほど解説したようにシークレット情報の管理です。アプリケーションに保存ではなくてAWS Secrets ManagerのAPIを使用しての取得になるので情報漏洩の対策になります。さらにこれらのシークレット情報を確認し古くなり更新が必要になればAWS Secrets ManagerのAPIが更新の補助の役目も果たしてくれます。
シークレット情報は任意のテキストで保存ができます。AWS Secrets Managerが暗号化して管理もしてくれるので安心です。
ほかにはAWS Secrets Managerにあるローテーション機能について解説します。AWS Secrets Manager は、定期的にシークレットを変更して攻撃者がセキュリティで保護されたサービスにアクセスするのをより困難にしていきます。

AWS Secrets Managerはシークレット情報をAWS Secrets Manager内にあるLambda 関数を使い、選択したデータベースまたはサービスと連携するようカスタマイズできるに変更します。

ローテーション方法

どのようにAWS Secrets Managerがローテーションしているのかを簡単に説明していきます。パスワードを1つ使用して一人のユーザーのAWS Secrets Managerを更新するには
シークレット情報のローテーション中に古いシークレット情報でアプリケーション側からアクセスされた場合、サービスへのアクセスが不能となります。AWS Secrets Managerは常に新しいシークレット情報を認識するので自分がアクセスしている途中に別のユーザーに変更されたなら一度アプリケーションを再試行する必要があります。

ユーザーが2人いるパターンのローテーション管理だと既存の2人のユーザーを切り替えることでAWS Secrets Managerのシークレット情報を更新することができます。
こうしておけば、シークレット情報切替時の、ダウンタイムを防ぎ再起動の手間を防げます。このためには、ローテーション設定で作成されたLambda関数に対して、カスタマイズが必要となります。

AWS Secrets Manager の利用方法

AWS Secrets Manager の料金はすごく分かりやすく1つ月額が$0.40 と1$あたり100円だとしても非常に安い料金です。ただPER 10,000 API CALLS という料金もあり1万APIコールすればその都度$0.05 かかるプランもあるので何も考えずにプランを組むのというのは気をつけなければいけません。

まとめ

以上AWS Secrets Manager を簡単に説明しました。シークレット情報をAWS Secrets Manager通して管理し機密情報の管理運用をしていきたいですね。AWS Secrets Manager も2018年にできたサービスなので現在進行形でより良いサービスが提供できるように改良が進められているでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です