はじめに
KMSとCloudHSMについて学んで、要点をまとめてみることにした
やってみたこと
- AWSの鍵管理サービスには2種類ある
- KMS
- マルチテナント
- 使った分だけ課金
- CloudHSM
- 専有
- 月額の固定費
- KMS
- 使い分けの基準
- 秒間で100を超えるリクエストがあるならCloudHSM
- 公開鍵暗号化を利用したい場合にはCloudHSM
- 暗号化と復号化に同じ鍵を使うのが共通鍵暗号化方式
- 鍵が漏れると危険
- 暗号化と復号化に別な鍵を使うのが公開鍵暗号化方式
- 平文で送らないように内容は暗号化したい
- 鍵が漏れても期限じゃない
- 暗号化のための鍵はだれでも入手可能に
- ただし、復号化のための鍵は自分しかもっていない状態にする
- 暗号化と復号化に同じ鍵を使うのが共通鍵暗号化方式
- それ以外であればKMS
- KMSの機能
- Encrypt:暗号化
- Decrypt:復号化
- GenerateDataKey:カスタマーデータキーを作成
- マスターキーとデータキー
- データの暗号化をCDK(Customer Data Key)で行う
- CDKの暗号化をCMK(Customer Master Key)で行う
- それによって、例えばS3のデータキーが流出しても、マスターキーが流出しない限りは復号化を防ぐことができるということ
- なぜなら、マスターキーが無いと、データキーを複合できないため
- なので、マスターキーだけに管理リソースを全振りできることになり、セキュリティを高めることができる
最後に
マスターキーの考え方を延伸すると、すべてのAWSアカウントのマスターキーのマスターキーが欲しい。みたいな考え方になる気がするけど合ってる?