【完全新機能】DB認証情報やOAuthキーを一元管理可能なAWS Secrets Managerが発表されました!
現在開催されている、AWS Summits 2018 | San Franciscoにおいて、AWS Secrets Managerが発表されました。
AWS Secrets Manager: Store, Distribute, and Rotate Credentials Securely | AWS News Blog
2018年4月9日更新 AWS Secrets Managerを学ぶ時に便利なリソースや、概要、構造、チュートリアルなどをまとめた記事を公開しました。こちらも合わせて御覧ください。
__ (祭) ∧ ∧ Y ( ゚Д゚) Φ[_ソ__y_l〉 Secrets Managerダワッショイ |_|_| し'´J
AWS Secrets Managerとは?
AWS Secrets Managerは、機密情報を簡単に保存、取得できるサービス。予め用意されたテンプレートのAWS Lambdaを利用して、機密情報のローテーションの実装も可能です。
1台のマシンで1つのアプリケーションだけを運用するのであれば、APIキーなど機密情報の管理は容易ですが、システムが複雑になりマイクロサービスのような分散型サービスとして成長すると、その機密情報の運用は難しく、その管理のためだけに追加で仕組みを考える必要がありました。
そこで、AWS Secrets Managerというわけですよ。
Twitterクライアントアプリケーションにおける設定例
TwitterのつぶやきをAmazon Auroraに保存するアプリケーションを例にとります。通常なら、データベースアクセスするため、データベース管理者からユーザー名とパスワードを取得し、その情報を環境変数や何らかの方法でアプリケーションに埋め込む必要があります。また、TwitterアクセスのためのAPIクレデンシャルを作成し、それを保存する必要もあります。
AWS Secrets Managerを利用すると、これらの資格情報を自動的に更新、ローテーションすることができます。
コンソールの使用例を紹介します。既に存在するRDSインスタンスを選択し、接続に必要なユーザー名とパスワードを入力します。
次に、機密情報にアクセスするための、説明と名前を入力します。
Secrets Managerでは、パスワードローテーションのためのlambdaファンクションが予め提供されているため、それを利用します。
ソースコードと合わせて設定を確認し、保存します。
機密情報へのアクセスは、API呼び出しで可能です。
import json import boto3 secrets = boto3.client("secretsmanager") rds = json(sm.get_secrets_value("prod/TwitterApp/Database")['SecretString']) print(rds)
パスワード以外のリソースも管理可能
OAuthの資格情報やバイナリデータ、TwitterのOAuthアプリケーションキーの保存も可能です。
東京でも今すぐ利用可能!!
AWS Secrets Managerは、本日から以下のリージョンで利用可能です。
- US East (N. Virginia)
- US East (Ohio)
- US West (N. California)
- US West (Oregon)
- Asia Pacific (Mumbai)
- Asia Pacific (Seoul)
- Asia Pacific (Singapore)
- Asia Pacific (Sydney)
- Asia Pacific (Tokyo)
- Canada (Central)
- EU (Frankfurt)
- EU (Ireland)
- EU (London)
- South America (São Paulo)
AWS Secrets Managerの料金
- 機密情報1つあたり、$0.40/月
- APIコール1万回につき、$0.05
まとめ「AWSホスティングするアプリケーションの作り方が変わるかも」
詳細は、こちらに順次追加されていくと思います。
AWS Secrets Manager | Rotate, Manage, Retrieve Secrets | Amazon Web Services (AWS)
うまく利用すれば、パスワードやその他認証情報を一元管理する手間が大いに省略できそうな、ごつい機能追加です。今後、機能の詳細が出揃えば、ガツガツ触っていこうと思います!
それでは、今日はこのへんで。濱田(@hamako9999)でした。