2022/02/18

AWS KMSとは?データを簡単に暗号化!表示方法と有効化を解説

 
  

AWS KMSとは?

AWS KMSはKey Management Serviceの略で、データ暗号化に使用されるカスタマーキーを作成、管理できるマネージド型サービスです。 AWS KMSは、AWSサービスほとんどをデータ暗号化で利用することができます。

AWS CloudTrailとも連携して暗号化利用の監査ログを記録することができます。 キーの作成やストレージはもちろん、期限を管理して自動ローテーションする仕組みもあります。また、手元の暗号化マテリアルをインポートして使用することも可能です。

AWS KMSの利用料金

AWS KMSでユーザーが作成したCMK(マスターキー)はカスタムキーストアで作成したもの、またはインポートしたものを問わず、月々1USDのストレージ利用料がかかります。

また、GenerateDataKeyPair、GenerateDataKeyPairWithoutPlaintext APIリクエストで作成されたデータキーペアの場合は、APIリクエストの量によって料金がかかります。 また、APIリクエストには無料枠が設けられており、その範囲内であれば料金はかかりません。

AWS KMSと統合するAWSサービスのリソースを暗号化する場合は、自動的にキーが作成されますが、このキーの作成料金とストレージ料金はかかりません。

KMSの設定方法

AWS KMSの使用を開始するにはまず、AWS KMS CMK(カスタマーマスタキー)を作成します。 この記事ではCMKの作成、表示方法と有効化のやり方を解説していきます。AWS KMSの操作はAWSマネジメントコンソールで実施することができます。

CMKを作成する

AWS KMSでCMKを作成するにはまず、AWSマネジメントコンソールにログインしてサービス一覧のセキュリティ、ID、およびコンプライアンス欄からAWS Key Management Serviceを開きます。 ナビゲーションペインで[カスタマー管理型のキー]-[キーの作成]を選択します。キーのタイプは対称/非対称を選択します。

対称は暗号化オペレーションと復号オペレーションの両方に使用される単一の暗号化キーです。非対称は暗号化と復号化、署名と検証オペレーションに使用できるパブリックキーとプライベートのキーペアです。

キーのタイプを選択したら任意のエイリアスを入力します。ただし先頭に/awsを用いることは出来ません。タグを付けて管理したい場合はこの画面で任意のタグを追加して[次へ]を選択します。

CMKのアクセスユーザーおよびロールの選択を行う

次に、CMKにアクセスするIAMユーザー/ロールを選択していきます。


まず、CMKの管理者となるIAMユーザー/ロールを選択します。このとき、キーの管理者ユーザーがこのキーを削除出来ないようするには、[キーの管理者がこのキーを削除できるようにします。]にチェックを入れて[次へ]を選択します。

次に、CMKを使用アクセスするIAMユーザー/ロールを選択して[次へ]を選択します。

最後に確認画面でこれまで選択した内容がキーポリシードキュメントで表示されますので、内容を確認して[完了]ボタンを選択します。これでCMKの作成は完了です。

キーの表示や編集を行う方法

AWS KMSで作成したCMKは[カスタマー管理型のキー]に一覧として表示されます。

キーの有効/無効化や編集、削除などはキーにチェックを入れて[キーのアクション]から行うことができます。

AWS KMSでのアクセスコントロール方法


AWS KMSへアクセスする際は、AWS KMSカスタマーマスターキーなどのリクエストの認証情報が必要になります。

AWS KMSとIAMを利用することで、AWSリソースへのアクセスコントロールを行うことができます。アクセスコントールを行う主な方法はポリシーを使うことです。ポリシーは誰が何にアクセスできるかを定義したドキュメントです。

ポリシーを使ったアクセスコントロールの方法は3パターンあります。ひとつめはキーポリシーを単独で使用する方法、ふたつめはキーポリシーとIAMポリシーを合わせた方法、最後に許可とキーポリシーを組み合わせた方法になります。

IAMユーザーにポリシーをアタッチすることで、細かいアクセスコントロールを行うことが可能です。

キーポリシーを使用する

キーポリシーは、AWS KMSカスタマーマスターキーへのアクセスコントロールを行うためのものです。

他の方法とも組み合わせることは可能ですが、カスタマーマスタキーへのアクセスコントールを行うためには、キーポリシーは必ず使用する必要があります。

キーポリシーは、JSON形式で記載されたアクセスコントロールに関するドキュメントです。このJSONドキュメントを直接編集するか、AWSマネジメントコンソールからGUIで編集することもできます。

各AWSサービスでKMSを使用する方法

ほとんどのAWSサービスでは、AWS KMSを使ったデータ暗号化をサポートしています。AWSサービスとAWS KMSを統合することで、カスタマーマスターキーをAWSアカウントで利用することができ、データの保護が可能となります。

また、デフォルトでAWS所有のカスタマーキーを使用しているサービスもあるため、適切なセキュリティ対応をできるように、KMSの機能について把握しておくことが重要になります。

AWS CloudTrailでAWS KMSを使用する方法

AWS CloudTrailでAWS KMSを使用する方法を紹介します。

AWS CloudTrailは、AWSのAPI呼び出しやAWSアカウントのアクティビティを記録して、Amazon S3バケット内にログファイルとして保存することができます。

デフォルトでは、CloudTrailによってS3バケットに保存されるログファイルは、Amazon S3で管理された暗号化キーでサーバー側の暗号化 (SSE-S3) を使用していますが、AWS KMSで管理するサーバー側の暗号化(SSE-KMS)を使用することも可能です。

詳しい方法の手順は「AWS CloudTrail User Guide」の「AWS KMS– 管理キー (SSE-KMS) によるCloudTrailログファイルの暗号化」を参照しましょう。

Amazon DynamoDBでAWS KMSを使用する方法

Amazon DynamoDBでAWS KMSを使用する方法を紹介します。

Amazon DynamoDBは、完全マネージド型のNoSQLデータベースを提供するサービスです。DynamoDBはAWS KMSを統合することで、サーバー側におけるデータ保管時の暗号化をサポートします。

AWS KMSを利用することでDynamoDBはDynamoDBテーブルをディスク保存するたびに、プライマリキーやローカル、グローバルのセカンダリインデックスなどを含む、すべてのカスタマーデータを透過的に暗号化することができます。

DynamoDBのテーブルは、デフォルトですべてAWS CMKを使って暗号化されており、無効にすることはできません。ただし、顧客管理CMKまたはAWS管理CMK for DynamoDBアカウントの下にあるテーブルの一部、またはすべてを暗号化するオプションを選択できます。

AWS KMSについてのまとめ

今回はAWS KMSについての概要や使用方法を紹介しました。

AWS KMSを使うことでAWSサービスのデータ暗号化を簡単に行うことができ、また、カスタマーキーのローテーションや、キーのインポートなどのカスタマイズも可能で、幅広いニーズに対応したセキュリティ管理が可能です。

AWSサービスの中にはデフォルトでAWS KMSを使っているものもあるため、その仕組みについて知っておき、適切な管理を行なっていくことが重要になるでしょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】