【初心者】KMSによる暗号化-料金・エイリアスを解説【AWS資格対策】【実践ハンズオン】

目次

はじめに

この記事の内容

KMSについて、「基礎学習」と「ハンズオン」の2パートに分けて解説します。

  • 基礎学習
    • 暗号化の基礎知識
    • KMSの基礎知識
  • ハンズオン
    • KMSを使用して、S3に格納しているデータを暗号化します。

①基礎学習

ハンズオンの前に、まずはKMSの基礎知識を解説します

暗号化の基礎知識

暗号化

暗号化は、データを他の人が読めないように変えるプロセスです。
例えば、送信するメッセージが他の人に読まれたくないときに使用されます。

※暗号化されたデータは「暗号文」と呼ばれ、元のデータは「平文」と呼ばれます。

復号化

復号化は、暗号化されたデータを元の読み取れる状態に戻すプロセスです。

暗号鍵

暗号鍵とは、データの暗号化と復号化に使う「秘密のコード」です。

暗号鍵がないと、暗号化されたデータを読むことができません。
逆に、データを復号化するには同じ暗号鍵が必要です。

また、暗号鍵には「対象鍵」と「非対称鍵」の2種類があります。

対称鍵非対称鍵
鍵の数1つの鍵2つの鍵
(公開鍵と秘密鍵)
使い方同じ鍵で暗号化・複合化を行う公開鍵で暗号化、秘密鍵で複合化を行う
処理の速さ速い遅い
使用場面大量データの暗号化に使用する鍵や少量データの暗号化に使用する
公開・配布通常は公開せず、限られた範囲で使用公開鍵を自由に配布して、広い範囲で使用
管理の厳重さ厳重な管理が必要秘密鍵は特に厳重な管理が必要
 ※秘密鍵が漏洩すると、広範囲のデータが復号化される危険性があるため。

KMSの概要

AWS Key Management Service(KMS)は、AWS上でデータの暗号化と暗号鍵を簡単に管理できるサービスです。

KMSを使用することで、データ保護のための暗号鍵を管理し、複数のAWSサービスやアプリケーションでその鍵を安全に使用できます。

AWS(AWS Key Management Service)

KMSの機能

  • 鍵の管理
    • 暗号鍵の作成、保存、削除が可能です。
  • 暗号化と復号化
    • データの暗号化と複合化を簡単に行えます。
  • ポリシーの設定
    • 誰が暗号鍵にアクセスできるかを制御するポリシーを設定できます。
  • キーローテーション
    • KMSキーを定期的に自動で新しいものに交換します。  ※セキュリティ強化が目的

KMSの構成要素

KMSは、主に「CMK(カスタマーマスターキー)」と「データ鍵」で構成されます。

CMK(カスタマーマスターキー)

CMKは、 KMSにおいてデータ暗号化に使用される鍵を保護・管理するための暗号鍵です。

  • この主鍵自体は直接データを暗号化しません。
  • 代わりに、データを暗号化するための別の鍵(データ鍵)を生成・暗号化するために使用します。
  • CMKは通常、AWS KMSによって安全に管理され、ユーザーが直接アクセスすることはありません。
  • KMSキーは「対象鍵」と「非対称鍵」の両方をサポートしています。

CMKは「KMSキー」とも呼ばれます。

データ鍵

データ鍵は、実際にデータを暗号化・復号化するために使用される鍵です。

  • データ鍵は、CMKによって生成されます。
  • 各データセットや各ファイルに対して、新しいデータ鍵が使用されます。
  • データ鍵はデータと一緒に保存されますが、CMKによって暗号化された状態で保存されます。

エンベロープ暗号化

KMSではエンベロープ暗号化という仕組みをサポートしています。

エンベロープ暗号化とは、以下の流れで暗号化するプロセスを指します。

STEP
データの暗号化に対称鍵を使用
STEP
その対称鍵自体を対象鍵/非対称鍵で暗号化する

このような二重の暗号化プロセスが、物理的な封筒にデータを包むイメージに似ているため、エンベロープ(封筒)暗号化と呼ばれています。

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

  • セキュリティ強化
    • データキーを暗号化するため、データと共に安全に保護できます。
  • 効率的な暗号化
    • データを異なるキーで何度も再暗号化する代わりに、比較的データサイズが小さいデータキーのみを再暗号化するため、暗号化処理にかかる時間を短縮できます。

KMSをサポートするAWSサービス

全てのAWSサービスで、KMSによる暗号化がサポートされているわけではありません。ここでは、KMSをサポートする代表的なAWSサービスを紹介します。

KMSの料金

「作成したキーの数」、「キーの使用料」に応じて料金が発生します。

料金カテゴリ条件料金
キーストレージキーの作成1 USD/月
キーの使用料リクエスト0.03 USD/1,000件
RSA 2048キーを含むリクエスト0.03 USD/1,000件
ECC GenerateDataKeyPairリクエスト0.10 USD/1,000件
RSA 2048 を除く非対称のリクエスト0.15 USD/1,000件
RSA GenerateDataKeyPairのリクエスト12 USD/1,000件
  • 以降は2024年9月時点の情報のため、現在の料金を把握したい方はAWSの公式サイトをご確認ください。
  • 上記東京リージョンの料金です。

②ハンズオン

KMSを使用して、S3に格納しているデータを暗号化します。

解説動画

以降の手順ではAWSの画面キャプチャを貼付していないので、こちらの解説動画を視聴しながらハンズオン学習することをおすすめします。

前提条件

  • AWSアカウントを所持していること
  • サンプルファイルを用意していること
    • 暗号化対象のサンプルファイルです。
    • ファイル名やファイルの中身について指定はありません。

ハンズオン手順

STEP
KMSキーの作成
  1. KMSのコンソール画面に遷移し、「カスタマー管理型のキー」>「キーの作成」の順位選択します。
  2. 以下の設定項目を入力してKMSキーを作成します。
スクロールできます
項目説明
キーのタイプ対象キー/非対称キーを選択
キーの使用法キーの使用目的
エイリアスKMSキーに付与する名前
キーの管理者KMSキーを管理する権限を持つユーザーやロール。
キーユーザーKMSキーを使用して暗号化・復号化等の操作を実行できるユーザーやロール。
STEP
S3バケットの設定
  1. S3のコンソール画面に遷移し、「バケットを作成」を選択します。
  2. 以下設定でS3バケットを作成します。
項目設定値
名前任意の名前
デフォルトの暗号化SSE-KMS
└ AWS KMSキーAWS KMSキーから選択する
└ 使用可能なAWS KMSキーStep1で作成したKMSキー
  1. サンプルファイル(何でもよいです。)を作成したS3バケットにアップロードします。
STEP
暗号化設定の確認
  1. ファイル詳細画面の「サーバー側の暗号化設定」にて、KMSによる暗号化設定を確認します。
  2. ファイルをダウンロードして、復号化されているか(アップロードした時点と同じデータなのか)を確認する。

おわりに

本記事では、AWS Key Management Service (KMS) の基本概念とその主な機能について詳しく解説しました。

KMSを利用することで、暗号化キーの管理が簡単になり、データ保護の強化が図れます。
特に、KMSはキーの生成、管理、利用のすべてをセキュアに行うため、データ保護における重要な役割を果たします。

AWS環境でのセキュリティ強化にはKMSが欠かせないツールです。
この記事を参考に、KMSを効果的に活用し、セキュアなデータ管理を実現してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

コメントする

目次