AWS Secrets Manager
1. サービス概要¶
AWS Secrets Manager は、データベース認証情報、API キー、その他の機密情報を安全に保存、ローテーション、管理するためのサービスである。
ユーザーは、アプリケーションコードに機密情報を埋め込むことなく、Secrets Manager からセキュアに機密情報を取得できる。
Secrets Manager は、機密情報の管理を簡素化し、アプリケーションのセキュリティを向上させるための集中管理ソリューションを提供する。
主なユースケースとして、
- データベース認証情報の管理
- API キーの管理
- OAuth トークンの管理
- 証明書の管理
- アプリケーション設定の安全な保存
などが挙げられます。
AWS Secrets Manager は、これらのユースケースに対応するための様々な機能と、AWS の他のサービスとの統合を提供する。
2. 主な特徴と機能¶
2.1 機密情報の保存と管理¶
Secrets Manager は、データベースの認証情報、API キー、その他の機密情報を安全に保存し、管理できる。
機密情報は、暗号化され、アクセス制御が適用される。
2.2 自動ローテーション¶
データベースの認証情報や API キーなどの機密情報を自動的にローテーションできる。
これにより、機密情報の漏洩リスクを低減し、セキュリティを強化できる。
2.3 細粒度なアクセス制御¶
IAM ポリシーを使用して、機密情報へのアクセスを詳細に制御できる。
特定のユーザーやグループに対して、機密情報の閲覧、ローテーション、削除などの権限を付与できる。
2.4 バージョン管理¶
機密情報のバージョンを管理できる。
これにより、過去のバージョンの機密情報を復元したり、変更履歴を確認したりできる。
2.5 統合されたサービス¶
Secrets Manager は、RDS, EC2, Lambda, ECS, EKS など、AWS の他のサービスと統合されています。
これにより、アプリケーションは Secrets Manager から機密情報を安全に取得できる。
2.6 API アクセス¶
API を通じて、機密情報の取得、更新、削除などの操作を自動化できる。
これにより、CI/CD パイプラインと連携して、機密情報を安全に管理できる。
2.7 拡張性とスケーラビリティ¶
AWS Secrets Manager は、AWS のインフラ上で動作し、需要に応じて自動的にスケーリングする。
これにより、大量の機密情報を管理する場合でも、安定したパフォーマンスを維持できる。
3. アーキテクチャおよび技術要素¶
- ユーザーは、Secrets Manager に機密情報を保存。
- アプリケーションは、Secrets Manager API を通じて機密情報をリクエスト。
- Secrets Manager は、IAM 認証に基づいてアクセスを許可し、機密情報を暗号化された状態で提供。
- 必要に応じて、機密情報を自動的にローテーション。
AWS Secrets Manager は、AWS のインフラ上に構築されており、高い可用性と信頼性を提供する。
機密情報の保存や管理は AWS が行うため、ユーザーはインフラの管理を行う必要はありません。
4. セキュリティと認証・認可¶
AWS Secrets Manager は、機密情報のセキュリティを確保するために、以下の機能を提供する:
- IAM 統合: AWS Identity and Access Management (IAM) を利用して、Secrets Manager へのアクセスを制御する。
- データ暗号化: 機密情報は転送中および保存時に暗号化される。
- VPC エンドポイント: VPC 内から Secrets Manager にアクセスする際に、インターネットを経由せずにアクセスできる。
- アクセス制御: IAM ポリシーを通じて、ユーザーやグループごとに、機密情報の操作権限を詳細に制御できる。
- 監査ログ: CloudTrail を通じて、Secrets Manager の利用状況を監査できる。
これらのセキュリティ対策により、機密情報への不正アクセスを防止し、機密データを安全に保護できる。
5. 料金形態¶
AWS Secrets Manager の料金は主に以下に基づきます:
- シークレット: Secrets Manager に保存されたシークレット数に応じて課金。
- API リクエスト: Secrets Manager API へのリクエスト数に応じて課金。
- ローテーション: 自動ローテーション機能を利用した場合、ローテーション回数に応じて課金。
6. よくあるアーキテクチャ・設計パターン¶
AWS Secrets Manager は、様々なアプリケーションで利用できる。
一般的なパターンは以下の通りです:
- データベース認証情報の管理: アプリケーションがデータベースに接続するための認証情報を Secrets Manager に保存し、ローテーションを自動化。
- API キーの管理: API を利用するための API キーを Secrets Manager に保存し、安全に管理。
- OAuth トークンの管理: OAuth トークンを Secrets Manager に保存し、セキュアにアクセス。
- 証明書の管理: SSL/TLS 証明書を Secrets Manager に保存し、定期的にローテーション。
- アプリケーション設定の安全な保存: アプリケーションの設定値を Secrets Manager に保存し、コードから分離。
7. 設定・デプロイ手順(ハンズオン例)¶
- AWS マネジメントコンソールから AWS Secrets Manager を開き、新しいシークレットを作成。
- 機密情報をキーと値のペアで入力し、ローテーション設定を構成。
- IAM ポリシーを設定し、シークレットへのアクセス権限を付与。
- アプリケーションで、Secrets Manager SDK を使ってシークレットを取得。
- シークレットのローテーションをテスト。
8. 試験で問われやすいポイント¶
8.1 機密情報の保存と管理¶
- 対象: データベースの認証情報、API キーなど。
- 機能: 機密情報を安全に保存し、管理。
- 試験対策: 機密情報の保護方法、利用ケースが問われる。
8.2 自動ローテーション¶
- 機能: データベースの認証情報などを自動的にローテーション。
- 目的: 機密情報の漏洩リスクを低減、セキュリティ強化。
- 試験対策: 自動ローテーションの仕組み、メリットが問われる。
8.3 細粒度なアクセス制御¶
- 利用: IAM ポリシー。
- 目的: 特定のユーザーやグループに対して、機密情報の操作権限を付与。
- 試験対策: IAM ポリシーの設定方法、アクセス制御の範囲が問われる。
8.4 バージョン管理¶
- 機能: 機密情報のバージョンを管理。
- 利用: 過去のバージョンの復元、変更履歴の確認。
- 試験対策: バージョン管理の仕組み、利用ケースが問われる。
8.5 料金体系¶
- 課金対象: 保存されたシークレット数、API リクエスト数、ローテーション回数。
- 最適化: 不要なシークレットの削除、API リクエスト数の削減がコスト削減に有効。
- 試験対策: 料金体系、課金対象が問われる。
8.6 類似・関連サービスとの比較¶
- AWS Systems Manager Parameter Store: 設定データや機密情報を管理するサービス。Secrets Manager は機密情報のローテーション機能を持つ。
- AWS KMS: 暗号化キーの管理に特化したサービス。Secrets Manager は機密情報の管理に特化。
8.7 試験で頻出となる具体的な問われ方と答え¶
- Q: AWS Secrets Manager は何を提供するサービスですか?
- A: データベース認証情報、API キー、その他の機密情報を安全に保存、ローテーション、管理するためのサービスである。
- Q: AWS Secrets Manager では、どのような機密情報を管理できるか?
- A: データベースの認証情報、API キー、OAuth トークン、証明書などを管理できる。
- Q: AWS Secrets Manager で、機密情報をローテーションするメリットは何ですか?
- A: 機密情報の漏洩リスクを低減し、セキュリティを強化できる。
- Q: AWS Secrets Manager へのアクセスは、どのように制御するか?
- A: IAM ポリシーを使用して、機密情報へのアクセスを詳細に制御できる。
- Q: AWS Secrets Manager の料金はどのように計算されるか?
- A: Secrets Manager に保存されたシークレット数、API リクエスト数、自動ローテーション機能の利用回数に基づいて計算される。 s