【AWS】AWSのSecrets Managerを使用してみる

IT

はじめに

AWSを使用してて、データベースの接続情報や機密情報をちゃんと安全に格納したい。codecommitで直書きしたくない!

そんな時に、便利なのがこのSecrets Managerというサービスです。

では、Secrets Managerでどんなことができるのかをみていきましょう

Secrets Mangerとは

パスワードやAPIキーなどの機密情報を安全に管理するためのサービスです。

また、secrets Mangerは管理するだけではなく更新や監視などもしてくれるサービスです。

中の人
中の人

使い方

AWSのコンソールからSecrets Managerと検索します。

ページが飛んだら、新しいシークレットを保存するを選択

進んでいくと、設定画面にうつります。

※ここからは事前に、RDSのデータベースを作成しておいてください

※また、AWS CLIの設定をしておいてください

AWS CLIの設定(mac) - Qiita
注意! アクセスキーとシークレットアクセスキーは絶対他人と共有しないこと注意! ここではローカルPC上での設定。EC2上でAWS CLIを使うときはIAM Roleをインスタンスにアタッチすること…

デフォルトで存在している設定に加えて新たに設定を追加してみましょう。

設定

  • シークレットタイプ
    • RDS データベース
  • 認証情報
    • ユーザー名:DBuser
    • データベース名:testdbuser
  • データベース
    • 先ほど作成したものを指定
  • シークレットの名前
    • test/secrets/dbuser
  • ※ ロテーションスケジュールとかはskipでOK!

そこから以下のコマンドをたたいて、値を取得してみましょう。

$ aws secretsmanager get-secret-value --region ${REGION} --secret-id ${SECRETS_ID}

※ ${REGION}と${SECRETS_ID}は実際の値を入力してください。

※${SECRETS_ID}は、secretManagementのarnをコピペしてあげるといけます。

こんな結果がでてくるはず!

{
    "ARN": "arn:aws:secretsmanager:ap-northeast-1:488365250163:secret:test/secrets/manager-jufoWe",
    "Name": "test/secrets/manager",
    "VersionId": "e3836102-3661-42f1-a6b9-8a530c2f762e",
    "SecretString": "{\"username\":\"DBuser\",\"password\":\"testdbuser\",\"engine\":\"postgres\",\"host\":\"database-1.cluster-c9wy6e242j6a.ap-northeast-1.rds.amazonaws.com\",\"port\":5432,\"dbClusterIdentifier\":\"database-1\"}",
    "VersionStages": [
        "AWSCURRENT"
    ],
    "CreatedDate": "2024-10-20T13:58:06.131000+09:00"
}

AWS上に存在する類似のサービス

類似サービスとして、Parameter Storeが存在します。せっかくなのでこちらとの違いを見ていきましょう。

サービス名更新機能料金用途
Secrets Managerあり使用量に応じて課金高度なセキュリティ要件がある場合
Parameter Storeなし基本的に無料(高度な機能は有料)シンプルな設定管理や、コスト重視の場合

料金面に注目すると、Parameter Storeは基本的に無料なのはいいですね。

一方で、セキュリティを固めたい場合はSecrets Managerが有効かもしれません。

そして重要な更新機能。

こちらは、ローテーション機能と言って、シークレットを自動で更新してくれる機能です。認証情報を定期的にローテーション(更新)してくれるのが素晴らしいですね。

参考

イラストで理解するSecrets Manager
AWS Secrets Managerを使おう! - Qiita
#AWS Secrets Managerとはデータベースの認証情報や、パスワードなどの任意のシークレット情報をAPIコールで取得できるためのAWSサービスの一つです。各サーバからこのAPIを叩く…
AWS Secrets Managerによる機密情報の管理|コラム|クラウドソリューション|サービス|法人のお客さま|NTT東日本
AWS Secrets Managerの概要について解説すると共に、AWS Secrets Managerの基本的な使い方を解説します。

コメント

タイトルとURLをコピーしました