type
status
date
slug
summary
tags
category
icon
password
 
 

理論

AWS Systems Manager Parameter Store と Secrets Manager の違い

項目
AWS Systems Manager Parameter Store
AWS Secrets Manager
主な用途
設定データや機密情報の管理
データベースやAPIキーなど、機密情報の管理
ローテーション機能
手動またはカスタム実装が必要
自動ローテーション機能を標準で提供
コスト
無料プランあり(基本機能は無料)
有料(機能が豊富な分、コストがかかる)
統合性
SSMエージェントを通じてEC2やLambdaなどと連携が簡単
機密情報を簡単に取得するAPIやSDKを提供
暗号化
AWS KMSで暗号化可能
デフォルトでKMS暗号化
ターゲットユースケース
環境変数や設定データ、簡易なパスワードの管理
データベース認証情報や重要なキーの安全な保存
アクセス制御
IAMで可能
IAMで可能

簡単な違いまとめ

  • Parameter Store: 設定データや簡単なパスワードの管理。コストを抑えたい場合に適している。
  • Secrets Manager: 機密情報の管理がメイン。ローテーションが必要な場合や強力なセキュリティが必要なケースに最適。
 
AWS Secrets Manager には自動ローテーション機能が標準で提供されています。これにより、保存されているシークレット(例えば、データベースのパスワードなど)を定期的に自動で変更することができます。

自動ローテーションの仕組み

  • Secrets Manager はシークレットを保存するだけでなく、それを定期的に変更(ローテーション)する機能も持っています。
  • ローテーションの際には、AWS Lambda 関数を使用してパスワードを更新し、その変更をアプリケーションやサービスに反映させます。
  • ローテーションの頻度(例えば90日ごと)や、ローテーション処理を行うためのLambda関数も設定することができます。

自動ローテーションの設定手順

  1. シークレットの作成: AWS Secrets Managerでシークレット(例えば、RDSのデータベースのパスワード)を作成します。
  1. ローテーションの有効化: 作成したシークレットに対して、ローテーションを有効化します。この際、Lambda関数を指定して、どのようにパスワードをローテーションするかを設定します。
  1. ローテーションのスケジュール設定: ローテーションの頻度を設定します(例:90日ごと)。
  1. Lambda関数によるパスワード更新: Lambda関数が実行されることで、シークレットが自動的に更新され、新しいパスワードが適用されます。
notion image
 

実践

Secrets Managerにシークレットを保存

マネージメントコンソールより新規にシークレットを作成し、対象のRDSを指定し、「ユーザ名」と「パスワード」を保存します。
notion image
RDSの「ユーザ名」と「パスワード」を入力します。
notion image
notion image
対象のRDSインスタンスを選択します。
今回は、わかりやすいように、まず「自動ローテーション無効」で作成します。
notion image
 

自動ローテーションを有効にする

作成したシークレットの「ローテーションの編集」から、自動ローテーションを有効にします。

ローテーションスケジュールの設定

ローテーションウィンドウでの指定には、cronおよびrate式をサポートしています。
今回は下記の内容で設定し、「毎日7:00:00 UTC」にローテーションされるように設定します。
項目
設定値
スケジュール式
cron(0 7 * * ? *)
ウィンドウ期間
1h
すぐにローテーション
OFF
上記を設定します。
notion image
 

<注意点>

  • Secrets ManagerのタイムゾーンはUTCです。
  • cron式のminute、およびyearは0しか設定できません。
  • これはローテーションウィンドウが正時に開始されるため、および1年を超える設定ができないためです。
  • すぐにローテーションはネットワーク次第で失敗してしまいますので[OFF]にしておくのがオススメです。

ローテーション関数の設定

ローテーション関数は、あらかじめ用意されているローテーション関数のテンプレートに基づいたローテーション関数を自動作成するか、作成済みの自作のローテーション関数が利用可能です。
項目
内容
ローテーション関数を作成
ローテーション関数を自動作成
アカウントからローテーション関数を使用
作成済みローテーション関数を利用
「個別の認証情報を使用してこのシークレットをローテーション」は「いいえ」を選択します。
こちらは後述の「ローテーション戦略」の指定です。今回は一般的な「シングルユーザーのローテーション戦略」をとります。
項目
内容
いいえ
シングルユーザーのローテーション戦略
はい
交代ユーザーのローテーション戦略
設定が完了するとあらかじめ用意されているCloudFormationテンプレートからLambdaにローテーション関数が自動生成されます。
notion image
ここで作成されるlambda関数は、「VPC、サブネット、セキュリティグループ」がシークレット作成時に指定したRDSから引き継がれます
notion image

<注意点>

  • lambda関数のSGからRDSのSGにアクセス許可されていること。
  • プライベートサブネットであればPrivateLinkやNATを経由してSecrets Managerにアクセス可能であること。
  • RDSと同じ場所に作成されることに抵抗がある場合は、作成後に移動しましょう。
  • NATがない環境では、意外とハマりポイントなのでご注意です。
これでローテーションの設定は完了です。
 

一問道場

質問 #26
トピック 1
セキュリティエンジニアは、既存のアプリケーションがAmazon S3内の暗号化ファイルからAmazon RDS for MySQLデータベースの認証情報を取得していることを確認しました。次のアプリケーションバージョンでは、セキュリティを向上させるために以下の設計変更を実装したいと考えています:
  • データベースは、強力でランダムに生成されたパスワードを使用し、AWSが管理する安全なサービスに保存されなければならない。
  • アプリケーションリソースはAWS CloudFormationを使用してデプロイされなければならない。
  • データベースの認証情報は90日ごとにローテーションされなければならない。
ソリューションアーキテクトは、アプリケーションをデプロイするためのCloudFormationテンプレートを作成します。
セキュリティエンジニアの要件を満たし、運用上の負担を最小限に抑えるCloudFormationテンプレートに指定するリソースはどれですか?
A.
AWS Secrets Managerを使用してデータベースパスワードをシークレットリソースとして生成します。
AWS Lambda関数リソースを作成してデータベースパスワードをローテーションします。
Secrets ManagerのRotationScheduleリソースを指定して、データベースパスワードを90日ごとにローテーションします。
B.
AWS Systems Manager Parameter Storeを使用してデータベースパスワードをSecureStringパラメータタイプとして生成します。
AWS Lambda関数リソースを作成してデータベースパスワードをローテーションします。
Parameter StoreのRotationScheduleリソースを指定して、データベースパスワードを90日ごとにローテーションします。
C.
AWS Secrets Managerを使用してデータベースパスワードをシークレットリソースとして生成します。
AWS Lambda関数リソースを作成してデータベースパスワードをローテーションします。
Amazon EventBridgeのスケジュールされたルールリソースを作成して、90日ごとにLambda関数のパスワードローテーションをトリガーします。
D.
AWS Systems Manager Parameter Storeを使用してデータベースパスワードをSecureStringパラメータタイプとして生成します。
AWS AppSync DataSourceリソースを指定して、データベースパスワードを自動的に90日ごとにローテーションします。
 
解説
この問題は、セキュリティ要件を満たしながら、最小限の運用負荷でデータベースのクレデンシャルをローテーションする方法を求めています。以下に各選択肢の解説を行います。

A. AWS Secrets Manager と RotationSchedule の組み合わせ

  • Secrets Manager は、AWS が提供するフルマネージドなシークレット管理サービスです。強力なランダムなパスワードの生成、保存、管理、ローテーションをサポートします。
  • RotationSchedule リソースを使用することで、Secrets Manager が自動的にパスワードをローテーションします。AWSはLambda関数を利用して、パスワードを自動的にローテーションします。
  • この方法は、運用負荷が非常に少なく、Secrets Managerが自動でパスワードの管理とローテーションを行うため、セキュリティ要件を満たし、非常に効率的です。

B. AWS Systems Manager Parameter Store と RotationSchedule の組み合わせ

  • Systems Manager Parameter Store は、シークレット管理のために使えるもう1つのサービスですが、Secrets Managerよりもシンプルな機能を提供します。
  • SecureString パラメータタイプを使用して、暗号化されたパラメータを保存しますが、RotationScheduleは直接サポートしていません。このオプションでは、パスワードのローテーションを実行するためにAWS Lambda関数を手動で作成する必要があり、そのため運用負荷が増加します。
  • Parameter Store を使った場合、Secrets Managerのような自動ローテーション機能がないため、運用負荷が高くなります。

C. AWS Secrets Manager と EventBridge によるスケジュール管理

  • AWS Lambda を使ってパスワードをローテーションし、EventBridge を利用して90日ごとにLambda関数をトリガーする設定を行います。
  • EventBridge によるスケジュールトリガーは可能ですが、Secrets Manager に組み込まれている RotationSchedule 機能を使えば、同じ結果をより簡単に得ることができます。したがって、運用負荷は高くなり、無駄な手間がかかる可能性があります。

D. AWS Systems Manager Parameter Store と AWS AppSync

  • AppSync はGraphQLベースのデータ操作を提供するサービスであり、パラメータのローテーションには通常使用しません。Parameter Storeのパラメータを自動的にローテーションするためには、通常AWS Lambdaを使用しますが、AppSyncはその役割には適していません。
  • この方法は、運用負荷が高く、不適切なリソースの選択であり、正しい選択肢ではありません。

結論

最も効率的で運用負荷が少ないのは 選択肢A です。AWS Secrets ManagerRotationSchedule を利用すれば、パスワードの生成、保存、ローテーションがすべて自動で行われるため、セキュリティ要件を満たしつつ、管理が簡単になります。
 
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
027-AWS SAP AWS 「理論・実践・一問道場」REST API と HTTP API025-AWS SAP AWS 「理論・実践・一問道場」 EC2 キャパシティ予約
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
02-生成AIパスポート試験対策:第2章「生成AI」
2025-2-1
01-生成AIパスポート試験対策:第1章「人口知能」
2025-2-1
究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
2025-1-27
不要再傻傻的直接买NISA啦
2025-1-27
Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
2025-1-24
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
2025-1-22
公告
🎉欢迎访问我的博客🎉
- 感谢您的支持 --
本站点于2024/09/01建立
👏主要分享IT相关主题👏
系统管理:
Redhat…
容器和编排:
Kubernetes、Openshift…
云计算:
AWS、IBM…
AI入门
以及技术笔记和考证经验
定期更新,欢迎互动。
感谢访问!
快速浏览相关标签