AWS KMS(Key Management Service)
データの暗号化に利用する暗号化キーの作成・管理を行うためのマネージドサービス。AZをまたいだ冗長化により高可用性を担保することし、CMK(マスターキー)の耐久性は99.999999999%(イレブンナイン)
特徴
- IAMと連携して鍵のアクセス管理を実施
- CMKの無効化・有効化・削除を実施し、1年ごとの自動キーローテーションすることが可能
- 外部から持ち込んで管理できる
- CloudTrailと統合されており、全てのキーの使用ログを表示
- EBSと統合することで低レイテンシーとスループットを高め、リアルタイムでの暗号化/復号化が可能
- リージョンごとに設定し利用する
鍵の種類
名前 | 内容 |
---|---|
CMK(カスタマーマスターキー) | 暗号化を実行する上で最初に作成されるマスターキーで紛失するとデータにアクセスできなくなる。暗号化キーを暗号化し、ローテーションされる。 |
暗号化キー(カスタマーデータキー) | 実際のデータの暗号化に利用されるキー。KMSで生成されてCMKで暗号化される |
エンベロープ暗号化 | CMKで暗号化せずに、暗号化キーを利用して暗号化する暗号化方式。データが4KB以上の場合に利用する |
Customer managed keys | KMSで作成したキー。ユーザーが所有、管理を行う。ユーザー自身が暗号化キーを運用する |
AWS managed keys | KMSがキーの作成、管理を行う。CloudTrailによって監査を行える。管理やアクセス許可の変更はできない |
AWS owned keys | デフォルトの暗号化タイプで、AWSが所有、管理を行う。表示、管理、監視することはできない。料金発生なし |
キーローテーション
有効にすることで新しい暗号化マテリアル(素材)を毎年生成する。古い暗号化マテリアルは全て永続的に保存・復号化可能。
新しいKMSキーを作成して1つのKMSキーを別のものと置き換える手動ローテーションも可能
マルチリージョンキー
複数のリージョンで同じキーのように相互で使用できる。1つのリージョンで暗号化し。再暗号化やKMSへのクロスリージョン呼び出しを行うことなく異なるリージョンで復号が可能。
Cloud HSM
不正使用防止策がとられている専用ハードウェアモジュール。国際標準に遵守した暗号化キー管理を実施。
- AWSが提供する業界標準「FIPS140-2 Level3」のセキュリティに準拠した暗号化ハードウェア
- 複数AZに分散したCloudHSMクラスターを利用
- 暗号化キーの管理はユーザーが実施。SSE-Cを強化
![HSM](https://d1.awsstatic.com/whiteboard-graphics/products/CloudHSM/product-page-diagram_AWS-
CloudHSM_HIW_jp.023bae592aefc5ea501c34b63922af07af990547.png)
ユースケース
-
webサーバのSSL/TLS処理をオフロードする
SSL/TLSパブリックキー証明書を使用して、各クライアントとのHTTPSセッションを確立する際webサーバにとって多くの計算を必要とする。計算の一部をオフロードすることで、webサーバの計算負荷が軽減されサーバーのプライベートキーをHSMに保存することでセキュリティが強化される -
発信元の認証機関(CA)の秘密キーを保護する
-
Oracle データベースの透過的なデータ暗号化 (TDE) を有効にする
AWS Encryption SDK
業界標準とベストプラクティスに従って、誰もが簡単にデータの暗号化と復号を行うことができるように設計されたクライアント側の暗号化ライブラリ。Apache 2.0ライセンスに基づいて、無償で提供される。
利用することで、暗号化の制限を超過しないようなリクエスト処理の仕組みを構成して修正することも可能
参考