type
status
date
slug
summary
tags
category
icon
password
书籍
理論
1. AWS Lambda と環境変数のセキュリティ
AWS Lambda 関数は、コード実行をトリガーするサーバーレスサービスですが、環境変数を使用して外部の設定や認証情報を保持することができます。しかし、環境変数は暗号化されていない場合があり、機密情報を保持するには不適切な方法です。特に、ログやデバッグ情報で環境変数が露出する可能性があります。
2. AWS KMS(Key Management Service)
AWS Key Management Service(KMS)は、データの暗号化とキーの管理を行うサービスです。KMS を使用すると、**顧客管理キー(CMK)**を作成し、機密情報を暗号化できます。特に、管理者権限を制限して、特定の IAM ユーザー(例: IT セキュリティチーム)のみにアクセスを許可できます。これにより、暗号化された資格情報の安全な保管とアクセス制御が可能になります。
- KMS のローテーション機能を利用することで、定期的なキーのローテーションが自動化され、セキュリティ強化に役立ちます。
3. AWS Secrets Manager
AWS Secrets Manager は、機密情報の管理専用サービスであり、データベースの認証情報や API キーなどを安全に保存できます。Secrets Manager では以下のような機能を提供しています:
- 自動的な資格情報のローテーション
- KMS で暗号化
- アクセス制御とポリシーを使用して、特定の IAM ユーザーグループやロールにのみアクセスを許可
Secrets Manager は特に機密情報の取り扱いを簡素化し、監査ログや自動ローテーションなどの機能を備えているため、セキュリティと運用効率を向上させることができます。
4. AWS IAM(Identity and Access Management)
AWS IAM は、AWS リソースへのアクセス権限を管理するためのサービスです。IAM を使用して、特定のユーザーやグループに対してアクセスを制御することができます。例えば、IT セキュリティチームのみが特定の KMS キーや Secrets Manager の資格情報にアクセスできるようにすることができます。これにより、最小権限の原則を実現し、アクセス制御を強化することができます。
5. Lambda 関数の役割
Lambda 関数は、IAM ロールを使用して他の AWS サービスにアクセスします。ロールを適切に設定することで、Lambda 関数は Secrets Manager や Systems Manager Parameter Store から暗号化された資格情報を安全に取得することができます。最小権限の原則に従って、Lambda 関数が必要なリソースにのみアクセスできるように設定することが推奨されます。
6. AWS Systems Manager Parameter Store
AWS Systems Manager Parameter Store は、アプリケーション設定や機密情報(資格情報など)を安全に保存するためのサービスです。SecureString パラメータを使用して、AWS KMSで暗号化されたデータを保存できます。Lambda 関数などからこの情報にアクセスするには、適切な IAM ポリシーが必要です。Secrets Manager との違いは、Secrets Managerがより機能が豊富であり、特に資格情報の自動ローテーションや監査機能を提供する点です。
結論
この問題において最も適切な選択肢は、AWS Secrets Managerを使用して機密情報を管理する方法です。Secrets Manager は、自動ローテーションや細かなアクセス制御、監査機能を提供し、セキュリティを向上させつつ運用効率を高めます。また、IAM ロールを活用して、Lambda 関数が必要なデータにのみアクセスできるように設定します。
実践
略
一問道場
質問 #206
トピック 1
ある企業は、AWS Lambda 関数を使用したサーバーレスアーキテクチャを実装しています。これらの関数は、Amazon RDS 上の Microsoft SQL Server DB インスタンスにアクセスする必要があります。この企業には開発環境と本番環境があり、データベースシステムのクローンも存在します。開発者は開発データベースの資格情報にアクセスできますが、本番データベースの資格情報は、IT セキュリティチームの IAM ユーザーグループのメンバーだけがアクセスできるキーで暗号化される必要があります。このキーは定期的にローテーションする必要があります。
本番環境でこれらの要件を満たすために、ソリューションアーキテクトは何をすべきですか?
A. AWS Systems Manager Parameter Store にデータベースの資格情報を SecureString パラメータとして保存し、AWS Key Management Service (AWS KMS) の顧客管理キーで暗号化します。各 Lambda 関数に役割を割り当て、SecureString パラメータへのアクセスを提供します。SecureString パラメータと顧客管理キーへのアクセスを IT セキュリティチームのみがアクセスできるように制限します。
B. データベースの資格情報を AWS Key Management Service (AWS KMS) のデフォルト Lambda キーで暗号化し、資格情報を各 Lambda 関数の環境変数に保存します。Lambda コードで環境変数から資格情報を読み込みます。KMS キーへのアクセスを IT セキュリティチームのみがアクセスできるように制限します。
C. データベースの資格情報を各 Lambda 関数の環境変数に保存し、AWS Key Management Service (AWS KMS) の顧客管理キーで環境変数を暗号化します。顧客管理キーへのアクセスを IT セキュリティチームのみがアクセスできるように制限します。
D. AWS Secrets Manager にデータベースの資格情報を秘密として保存し、AWS Key Management Service (AWS KMS) の顧客管理キーで暗号化します。各 Lambda 関数に役割を割り当て、秘密へのアクセスを提供します。秘密と顧客管理キーへのアクセスを IT セキュリティチームのみがアクセスできるように制限します。
解説
この問題は、本番環境におけるデータベースの資格情報のセキュリティを確保し、アクセス制御とキー管理を適切に実施する方法を問うものです。具体的には、AWS Lambda 関数が Microsoft SQL Server DB インスタンスにアクセスするために、暗号化された資格情報を管理する方法を選ぶ必要があります。
選択肢の解説:
A. AWS Systems Manager Parameter Storeを使用
- AWS Systems Manager Parameter Storeは、資格情報や構成情報を安全に保存するためのサービスです。ここで、SecureString パラメータを使い、AWS KMSによって暗号化されたデータを保存できます。
- 顧客管理キー (CMK) を使用して暗号化し、特定の IAM ユーザーグループ(ITセキュリティチーム)のみがアクセスできるように制限できます。
- Lambda 関数は、必要なパラメータにアクセスするために、適切な IAM ロールを通じてアクセスします。適切なアクセス制御と定期的なキーのローテーションが可能なため、最適な解決策です。
B. AWS KMS のデフォルト Lambda キーを使用
- この選択肢では、データベースの資格情報を AWS KMS のデフォルト Lambda キーで暗号化し、Lambda 関数の 環境変数に保存します。
- Lambda 関数で環境変数から資格情報を読み取りますが、環境変数はセキュリティ上のリスクが高く、特に機密情報を保存するためには適切でない方法です。
- また、KMS のデフォルトキーでは、キー管理の制限が難しいため、セキュリティチームのみにアクセス制限を設けることができません。
C. Lambda 環境変数での暗号化
- Lambda 関数の環境変数に資格情報を保存し、KMS 顧客管理キーで暗号化する方法です。
- 環境変数に機密情報を保存することはセキュリティ上のリスクが高いとされ、推奨されません。例えば、Lambda がログに出力した際に、環境変数が漏洩する可能性があります。
- したがって、この選択肢は不適切です。
D. AWS Secrets Manager を使用
- AWS Secrets Managerは、機密情報を安全に管理するためのサービスです。資格情報は自動的に AWS KMS 顧客管理キーで暗号化され、アクセスが制限された状態で保存されます。
- Lambda 関数は IAM ロールを使用して、Secrets Manager から資格情報を取得します。Secrets Manager では資格情報の自動的なローテーションも可能であり、セキュリティと管理が容易です。
- 秘密の管理には最適なサービスであり、特に本番環境での資格情報管理において推奨される方法です。
正解:
A.とD.のいずれも適切なソリューションですが、よりセキュリティと運用効率を重視するなら、Dの選択肢が最も理想的です。なぜなら、AWS Secrets Managerは資格情報の管理だけでなく、自動ローテーションやアクセス制御も簡単に設定できるため、運用の負荷を軽減し、セキュリティの強化が図れるからです。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/171d7ae8-88e2-80a2-95ed-c9b79086d838
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章