この記事の目次
AWSにおけるKMSの使い方について
AWS(Amazon Web Services)には、沢山のサービスが存在しているので、KMS(Key Management Service)を利用する事でデータの暗号化を支援するのが主な使い方です。
AWSサービスとKMSが合併している場合は、AWSアカウントでCMKs(カスタマーキー)を利用して本サービスがユーザーを代理して保存や受信、管理しているデータを保護してくれます。
そもそもKMSってなに?
データの暗号化に使用されるCMKsの作成と管理するマネージド型サービスです。
AWSにおけるKMSのCMKsは中国リージョン以外のリージョンでは、暗号化モジュール検証プログラムによって検証されHSM(ハードウェアセキュリティモジュール)によって保護されています。
KMSでは、データを暗号化するほぼ全てのAWSサービスに統合されておりAWSのKMSでは、AWSのCloudTrail(コンプラ、監査を行うサービス)とも統合されており、規制や監視、コンプラのニーズに応じてCMKsログに残しています。
KMSの主な特徴
KMSの主なメリットを紹介していきます。
AMSのKMSは、先ほど紹介したとおりデータの暗号化の際に使用する暗号鍵を誰でも簡単に管理、作成が出来るマネージド型サービスになります。
特徴としては、完全なマネージド型(利用者が構築からインフラまでAWSへ作業の委託)や鍵の統合管理、鍵の高い耐久性、データの暗号化などが主な使い方になっています。
完全なマネージド型
マネージド型によって鍵の耐久性、物理セキュリティの対処をKMSが担っています。
AWSにおけるKMSでは、マネージド型サービスなので、暗号化の利用が増えるとユーザーに合わせてサービスが自動的に拡張されます。
AWSのKMSはアカウント内の大規模のCMKを管理しているのでいつでも利用が可能です。
また、AWSのKMSでは、鍵の数と要請レートのデフォルト制限が定義されているのですが、必要に応じて制限の増減が可能です。
KMSでは、データや鍵の可用性を高める為に99%の耐久性を保持し鍵の暗号化バージョンの複製も複数格納してあります。
AWSKMSでは、リージョンAPI(アプリケーションプログラミングインタフェース)で高可用性サービスとして設計されています。
AWSのKMSのほとんどがサービスの暗号化、復号化を一手に担っているので他のAWSをサポートしSLA(サービス水準合意)で保証されるレベル帯の可用性を提供しています。
鍵の統合管理
AWSKMSでは、鍵の権限統合管理やライフサイクルが可能です。
必要な時にいつでも新しい鍵を作成出来、鍵の管理者と利用者をコントロール出来る使い方が可能です。
KMSで生成された鍵を利用する代わりに、AWS独自の鍵管理インフラストラクチャーの鍵をインポートしたり、HSMクラスターに格納された鍵の利用が可能です。
また、マスターキーを1年に1度オートローテーションするように選択する使い方も可能なので、1度暗号化したデータを再び暗号化する手間も省けます。
こうした暗号化したデータの復号に利用出来るようにマスターキーは自動保存がされています。
マスターキーの管理や使い方の状況監査は、AWSコンソールから「SDK、CLI」を利用して行います。
データの暗号化
AWS KMSは、AWSサービスと統合されており、鍵を利用して作業全体のデータを暗号化が出来ます。
アカウントサービス間で暗号化された情報共有機能を含め、必要なアクセス制御を選択します。
KMSは、AWS CloudTrailに対し鍵の利用ログを記録しユーザーに代わり鍵を使用するサービスや暗号化されたデータへアクセスしたユーザーを示します。
データの暗号化の使い方や意味をもう少し深堀していくと、KMSはAWSサービスと統合されていて、保管中のデータを暗号化しKMS非対称のCMK鍵ペアを利用して検証や署名が行えます。
保管中のデータを保護するには、AWSサービスでエンベロープ暗号を利用し、エンベロープ暗号では、鍵データが利用され、鍵データ自体がKMSに保存されCMKに基づいて暗号化を行います。
KMSにはいくつ種類がある?
AWSにおけるKMSには、幾つかの種類がありそれら代表的なものや使い方を紹介していきます。
AWSのKMSは、他のサービス併せて利用する事が多く、サービス単体ではイメージが湧かないと思うので、「サーバーサイド暗号、クライアントサイド暗号、APPデータクライアントサイド暗号」の3つに分けて紹介していきます。
サーバーサイド暗号
S3(Amazon Simple Storage Service)に保存するオブジェクトをKMS暗号キーで暗号化する際などに利用するのがサーバーサイド暗号になります。
サーバーサイド暗号ではAWSにデータを送信した後でAWSがKMS暗号キーを利用してデータを暗号化します。データを受信する場合は、AWSがKMS暗号キーを利用して復号します。
クライアントサイド暗号
データをKMSで暗号化した後にAWSが展開しているデータベースサービスのDynamoDBにデータを保存する際などに利用するのが、クライアントサイド暗号になります。
クライアントサイド暗号では、AWSにデータを送信する前にクライアントがKMS暗号キーを利用してデータの暗号化をします。
データを受信する際は、暗号化されたデータを受け取った後にクライアントがKMS暗号キーを利用してデータの復号を行います。
APPデータクライアントサイド暗号
AWSにおけるLAMBDA関数内に繊細なデータをKMSで暗号化する際などに利用する使い方が、APPデータクライアントサイド暗号になります。
KMS暗号キーを利用して暗号化したデータをアプリケーションに予め埋め込んでおき、アプリケーションの実行の際に復号します。
KMS利用する上で管理や不要なカギはどうする?
AWSにおけるKMSの鍵の管理について紹介していきます。KMSの鍵は利用と管理の2つがあり、個別に権限の設定か可能です。
鍵の更新は1年単位で自動更新されますが、鍵が更新されても鍵IDは変わる事なく更新された鍵に紐づきIDも同様に更新され、利用者は鍵IDを指定するだけなので紐づく鍵を指定する手間はありません。
鍵の削除はどうする?
結論からいうと不要になった鍵は削除が可能です。
鍵を削除してしまうと、その鍵を使用して暗号化したデータの復号が出来なくなってしまいますが、万が一の為にAWSKMSは鍵を削除した際に猶予期間が設けられています。
猶予期間はありますが、鍵を削除する際は十分に気を付けましょう。
AWSClouhdHSMとの違いはあるの?
機能面では、変わりはありませんがコストや管理方法などに少し違いがあります。
KMSとHSMを比べると機能面で違いはないのですが、コスト運用やAWSとの親和性のおいてはKMSの方が抜きに出ています。
KMSを理解してAWSを安全に利用しよう
KMSはAWSデータを安全に管理する為に必須ともいえるサービスです。
KMSの主な役割としては、CMKsの管理や作成をするマネージド型サービスとなっており、HSMによって保護されています。
そんなKMSと大きなメリットとしては、「完全なマネージド型、鍵の統合管理、データの暗号化」の3つが挙げられ、それぞれが異なる役割(耐久性、完全性、可用性)を担っています。
また、KMSには用途別に「サーバーサイド暗号、クライアントサイド暗号、APPデータクライアントサイド暗号」と3つの暗号方式があるので、それぞれ用途に合ったものを選び利用してデータの保護をしていきましょう。
KMSの使い方は思っている程、難しくはありませんが万一大事なカギを削除してしまってもある程度の猶予が設けられていて安心ですがデータの保護同様に削除などは慎重に行いましょう。
この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年11月21日キャリア・転職ITエンジニアへのキャリアチェンジに多い理由は?
- 2023年11月20日キャリア・転職フリーターからの就職でおすすめの職業は?
- 2023年11月20日キャリア・転職経理へのキャリアチェンジ転職・志望動機は?
- 2023年11月20日キャリア・転職法務からのキャリアチェンジおすすめの業界は?