必見の記事

【完全新機能】DB認証情報やOAuthキーを一元管理可能なAWS Secrets Managerが発表されました!

AWS Summit 2018 San Franciscoにおいて、新機能AWS Secrets Managerが発表されました。アプリケーションで利用するDB認証情報やOAuthキーを一元管理できます。この記事では速報でAWS Secrets Managerの概要を紹介します。
2018.04.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

現在開催されている、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を学ぶ時に便利なリソースや、概要、構造、チュートリアルなどをまとめた記事を公開しました。こちらも合わせて御覧ください。

機密情報を一元管理できる「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)でした。