AWS kmsについて
kmsとは
暗号鍵の生成、管理、運用のためのサービス。
可用性、物理的セキュリティ、ハードウェアの管理はAWSが担当するマネージドサービス。
S3やEBS,RDSで使用可能。SDKを使用することでローカルのデータも暗号化できる。
鍵の使用履歴はCloudTrailに記録される。
用語
1.CMK(Customer Master Key)
最上位の暗号鍵。最大4KBのデータを暗号化できる。
2.Envelope Encryption
マスターキーを直接暗号化に利用せず、マスターキーで暗号化した暗号キーで暗号化・複合化すること。
3.CDK(Customer Data Key)
実際にデータを暗号化する時に利用する暗号鍵。
KMSで生成されCMKで暗号化された状態で保管される。
利用時のみCMKで複合化し、アプリケーションやサービスで利用する。
4.Encryption Context
暗号化する際にKMSに渡せるKey/Valueペア。
設定した場合、複合化のために必要になる。
5.Client-Side Encryption
ユーザーアプリケーションでのデータ暗号化にSDKによってKMSを利用すること。
6.Server-Side Encryption
AWSサービスがデータを受信した時にサービス側でデータを暗号化すること。
AWSの各種サービスとインテグレーションされている。
ベストプラクティス
1.認証と許可
IAMポリシーとキーポリシーのデザイン。鍵を利用するにはMFAを必須にするなど。
2.CloudTrail
3.パフォーマンスとサービスの制限
1秒あたりのAPIオペレーションのリクエスト数に制限あり。
4.インフラストラクチャのセキュリティ
本番環境ではCMKの利用を検討する。
データの重要性によってによって鍵を使い分ける。
5.インシデント対応の明確化と自動化
不正アクセスがあった際の鍵の無効化など。
CMKは削除すると復旧できないので、削除ではなく無効化する。