AWS KMS

【初心者向け】AWS KMSの基本用語をわかりやすく解説

こんにちは、かずきゅーです。

今回はAWSサービスの中でもデータを保護する際には絶対に知っておきたいAWS KMSについて基本用語を初心者向けに解説していきます。

AWSに限らずデータ暗号化方法の一つであるエンベロープ暗号化の解説もしていますのでぜひご覧ください。

この記事を読んで、AWS KMSやデータ暗号化について理解していきましょう!

AWS KMS とは

AWS KMS(以下KMS)の基本用語の解説の前にこのサービスについて簡単に説明します。

KMSは、データを暗号化するための暗号化キーを簡単に作成し制御することができるマネージドサービスです。

マネージドサービスとは

モニタリングについて

KMSのポイントは以下になります。

ポイント

  • 暗号化キーを作成・管理するサービス
  • AWSサービスやアプリケーションで使用するキーの一元管理が可能
  • KMSキーのモニタリングが可能

用語解説

エンベロープ暗号化

エンベロープ暗号化とは暗号化の仕組みの1つで、KMSはこの暗号化方式を採用しています。

簡単に説明すると、データを暗号化するキーとデータを暗号化したキーを暗号化するキーを利用する方式がエンベロープ暗号化です。

データを暗号化するキーはデータキーと呼ばれ、データを暗号化したキーを暗号化するキーをルートキーマスターキーと呼ばれます。

エンベロープ暗号化のメリット

  • データキーを保護できる
  • 複数のキーを使用した同じデータの暗号化が可能

KMSではルートキーのことをAWS KMS keysと呼んでおり、このキーを安全に保存保管しています。

AWS KMS keys(KMS キー)

KMSでのルートキーであるAWS KMS keys(以下KMSキー)は、データの暗号化、復号に使用するための鍵となります。

注意

AWS KMS キー」は「CMK(カスタマーマスターキー)」や「KMSキー」という用語として扱われることもあります。これらの用語は同様の概念であることがAWSの公式にも記載がありますので注意してください。

KMSキーには3種類があり、ユーザーが自身で作成するKMSキーはカスタマーマネージドキー、AWSがユーザーのAWSアカウントで作成するKMSキーはAWSマネージドキー、AWSがユーザーのサービスアカウントで作成するKMSキーはAWS所有のキーとなります。

それぞれの種類によって、主にKMSキーの管理方法自動キーローテーション設定料金形態が変わってきます。

続いてはKMSキーの種類の解説の前に簡単に自動キーローテーションの説明をします。

自動キーローテーション

自動キーローテーションとは、そのままAWSが自動でキーのローテーションを実施してくれる機能のことです。

KMSキーの種類ごとにデフォルトで有効化であるかと、ローテーションの周期が変わります。

ローテーションで行われていることは、キーマテリアルという暗号化に必要な情報のみを変更し、使用中のKMSキーへの影響やその他KMSキーのプロパティ情報に影響は与えません。

ポイント

  • キーマテリアルの変更によって、安全性が高まる。
  • キーIDやアクセス許可等、プロパティ情報はローテーションによって変更されない。
  • KMSキーの使用には影響しない。

それではKMSキーの種類について解説していきます。

カスタマーマネージドキー

カスタマーマネージドキーはユーザーが作成、所有、管理をするKMSキーとなります。

カスタマーマネージドキーはあらゆることをユーザーがコントロールでき、具体的にコントロールできる項目は以下となります。

コントロール可能な項目

  • アクセスコントロール(キーポリシー、IAMポリシー、グラント)
  • キーの有効化と無効化
  • 自動キーローテーション
  • タグの追加
  • エイリアスの作成
  • 削除のスケジューリング

たくさんコントロール可能な項目がありますが、初心者の方はカスタマーマネージドキーは自分で設定できることがたくさんあるんだなあくらいの理解で問題ありません。それぞれ詳しい解説は今後記事を作成しますのでお待ちください!

自動キーローテーションはユーザーによってコントロール可能な項目であり、オプションとなり有効化した場合は1年ごとにローテーションされます。

料金形態は使用するAWSサービスによって月額料金または従量課金料金となります。

AWSマネージドキー

AWSマネージドキーはAWSが作成、所有、管理をするKMSキーとなります。KMSと統合されているサービスを使用する際に、KMSキーをユーザー側でコントロールする必要がない場合にはAWSマネージドキーを選択することが良いと言わせています。

KMSと統合されているサービスとは?となると思いますが一部記載すると「Amazon S3」「Amazon SQS」「Amazon DynamoDB」などです。全て確認されたい方は公式をご覧ください。

自動キーローテーションは、AWSマネージドキーはAWS側がKMSキーをコントロールしていることもあり、必須で有効化され1年ごとにローテーションします。

ポイント

2022年5月からローテーションの期間が3年から1年に変更になりました。

2022年5月以後に作成したキーは1年ごとのローテーションですが、以前に作成したキーは直近のローテーションは3年のまま変わらず次のローテーションから1年に変更となります。

料金形態は、基本的に月額料金はかかりませんが、一部AWSサービスでは従量課金料金となります。

AWS所有のキー

AWS所有のキーは、KMSキー自体がユーザーのAWSアカウントもありませんがユーザーのリソースを保護できます。KMSキーをユーザー側でコントロールまたは監査する必要がない場合にはAWS所有のキーを選択することが良いと言わせています。

自動キーローテーションは、AWSサービスによって異なり、ユーザーによって管理することはできません。

料金形態は、完全に無料となります。

データキー

データキーは、データや他のデータ暗号化キーなどを暗号化するために使用するキーとなります。

KMSでは、データキーの生成・暗号化・復号はしますが、KMSキーのようにキーの保存や管理、追跡などはすることはできません。

まとめ

ここまでAWS KMSの基本用語をまとめてきましたが、いかがでしたでしょうか。今回は、KMSの暗号化方式であるエンベロープ暗号化や、KMSキー等かなり絞って解説しました。

KMSを理解していくにはこれらの用語は必須の知識となりますので、この記事が皆さんの学びになれば幸いです。KMSを使いこなせるようさらに学びを進めていきましょう!

以上、かずきゅーでした。

-AWS, KMS