KMSの自動キーローテーション機能に関する費用について把握しよう
こんにちはカスタマーソリューション部のこーへいです!
皆さまはKMSの自動キーローテーション機能について知ってますでしょうか、今回は自動キーローテーション機能を利用すると発生する料金について解説してみました。
結論
キーのローテーションが行われる毎(1年に1回)に、月額1ドルが追加されます。
例:自動キーローテーションを有効化したKMSキーを作成し、4年目にかかる費用は月額4ドル。
KMSの自動キーローテーション機能とは
自動キーローテーション機能とは、KMSキーの新しい暗号化マテリアル(マスターキー)を毎年自動的にローテーションし、ユーザーからは透過的に利用できる機能です。
少し表現が難しいので順に説明します。
実はKMSには「データを暗号化するデータキー」と「データキーを暗号化するマスターキー」の2種類があります。
上記についてのより詳細な解説は、10分でわかる!Key Management Serviceの仕組み #cmdevioに詳しいです。
2種類のキーの内、マスターキーを本機能を利用することにより自動キーローテーションしてくれます。
以下の要素より、ユーザーからはローテーションされたマスターキーを透過的に利用することができます。
- キーID、キーARN、リージョン、ポリシー、アクセス許可などのKMSキーのプロパティは、キーがローテーションされても変更されません。
- KMSキーのキーIDまたはキーARNを参照するアプリケーションまたはエイリアスを変更する必要はありません。
- キーマテリアルのローテーションは、どのAWSのサービスでのKMSキーの使用にも影響しません。
- キーローテーションを有効にすると、AWS KMSによって KMSキーが毎年自動的にローテーションされます。更新を覚えている、またはスケジュールする必要はありません。
サポート対象
自動キーローテーションがサポートされるのは、AWS KMS が生成するキーマテリアルを持つ対称暗号化 KMS キー (オリジン = AWS_KMS) のみです。
自動キーローテーションは対称暗号化KMSキーのみサポートされています。
その中でもAWSマネージドキーは自動キーローテーションがデフォルトで有効化されていますが、カスタマーマネージドキーはオプションとして利用できます。
サポートされていないKMSキーにおいては、手動ローテーション(=新しくKMSキーを作成すること)で実現できます。
KMSキーをローテーションする理由
暗号化のベストプラクティスでは、AWS KMS が生成するデータキーなどのデータを直接暗号化するキーの広範な再利用を推奨していません。256 ビットデータキーが数百万のメッセージを暗号化すると、キーが枯渇し、微小なパターンを含む暗号文を生成し始める可能性があり、ずる賢い人物が悪用して、キーの中のビットが発見される可能性があります。このキーの枯渇を回避するには、データキーを 1 回または数回だけ使用することをお勧めします。こうすることによって、キーマテリアルが効果的にローテーションされます。
同じキーを使用し続けることで、パターンを見つけられ他者が復号できる可能性が高まります。そのリスクを下げるためにローテーションが有効となります。
ただ今回対象となっているのは「データキーを暗号化するマスターキー」であり、マスターキーは使用頻度が低いため他者の復号リスクは小さいです。
しかし、ビジネスルールや契約、政府の規制によりローテーションが必要な場合に、自動キーローテーション機能が用いられます。
料金について
AWS KMS では、KMS キー用に維持されるキーマテリアルの各バージョンに対して月額料金が発生します。
これはつまり毎年キーのローテーションが行われるたびに、月額1ドルが追加されることを指します。
例えば自動キーローテーションを有効化したKMSキーを作成し、4年目に突入した時には現行のマスターキーが1つ、1~3年目のマスターキーが3つ維持されています。
この場合、合計4つのバージョンが維持されているため月額4ドルかかることになります。
ちなみになぜ過去分のバージョンを保管する必要があるのかについては、過去バージョンのマスターキーで暗号化したデータキーを複合する場合に利用されるからです。
これは、古い暗号文の復号化に使用できるように、キーマテリアルのすべてのバージョンを保持するための AWS KMS のコストをカバーします。
まとめ
KMSの自動キーローテーションは有効化することで毎年微小ながら、月額料金が追加されます。
利用の際にはお気をつけください。