AWS Key Management Service Part.1 基礎編【AWS Black Belt】の要約

## はじめに
**AWS KMS（Key Management Service）は、データを守るための「鍵」を安全に管理するサービスです。**  
まるで、会社の金庫の鍵を、さらに厳重に管理する金庫のようなものだと考えてください。

**なぜ鍵が必要なの？**
会社で扱うデータは、顧客情報、営業資料、設計図など、様々なものがあり、これらのデータを悪意のある人から守るために、「暗号化」という技術が使われます。
暗号化とは、データを別の文字列に変換して、元のデータが見えなくすることです。
例えば、重要な書類を「暗号化」して、誰にも読めないようにするイメージです。
この時、書類を暗号化する「鍵」と、暗号化された書類を元の状態に戻す「鍵」が必要です。

**鍵の管理が重要！**
もし、この「鍵」が盗まれたり、不正な人に使われたりすると、暗号化されたデータも解読されてしまい、
大切な情報が漏洩してしまいます。
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/a5fa541d-0d4d-4e56-3a0d-871d40879666.jpeg)
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0012.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/b53c26ad-8dae-7e30-1add-3c7d7fdc7e0b.jpeg)

**AWS KMSが役立つ！**
AWS KMSは、この「鍵」を安全に管理するためのサービスです。
* **鍵を安全に保管:** AWS KMSは、鍵を「ハードウェアセキュリティモジュール（HSM）」という、非常に安全な場所に保管します。HSMは、物理的に厳重管理された装置で、不正なアクセスを防止
* **鍵のライフサイクル管理:** 鍵の作成、利用、削除といった一連の管理を、AWS KMSが行います。
* 例えば、鍵が古くなったら自動的に新しい鍵に更新したり、特定の期間が過ぎたら自動的に鍵を削除することができます
* **アクセス制御:** 誰がどの鍵を使えるかを細かく設定できます。例えば、特定の社員だけが、特定のデータの鍵を使えるように設定できます。
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0013.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/4c09e03e-4ac6-d321-f7e9-f77327bbf514.jpeg)

**AWS KMSを使うメリット**

* **簡単で安全:** 専門知識がなくても、簡単に安全な鍵管理ができます。AWS KMSは、複雑な設定や操作を必要とせず、誰でも簡単に利用できる
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0015.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/c6e9e01d-c3f4-41e7-a02e-e4574e247842.jpeg)

* **AWSサービスとの連携:** AWSの様々なサービスで、AWS KMSを使ってデータを暗号化できます。例えば、Amazon S3（オブジェクトストレージ）やAmazon RDS（リレーショナルデータベース）などのサービスで、AWS KMSを使ってデータを暗号化できる
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0016.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/e51b0022-d5c1-751a-7aa5-ae5e564fe709.jpeg)

**KMSの主要機能：** 
**暗号鍵のライフサイクル管理：**
   - 鍵の作成、有効化、無効化、削除
   - 自動または手動での鍵のローテーション（定期的な更新）が可能です。
 ![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0017.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/662942f9-2489-712f-b7c3-7842cb7bbe45.jpeg)

**アクセス制御：**
   - キーポリシー：個々のKMSキーに対するアクセス制御
   - IAMポリシー：ユーザーやロールに対する包括的なアクセス制御
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0018.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/0811cf5a-b255-cfc3-5423-bfac2823a028.jpeg)
**KMSの利用シナリオ：**
   - AWSサービスとの統合：S3、EBS、RDSなど100以上のサービスで簡単に暗号化を有効化
   - カスタムアプリケーション：独自のアプリケーションでのデータ暗号化にも利用可能
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0019.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/bd7d1553-c08a-3dea-9fa5-3ecbbb9b4f2f.jpeg)
**c) モニタリングと監査：**
   - AWS CloudTrailとの統合による鍵の使用状況の追跡
![AWS-Black-Belt_2024_AWS_KeyManagementService_0331_v1_page-0020.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102361/721632b8-b127-fa97-a6fb-a45e9b95987c.jpeg)

**KMSのセキュリティ特徴：**
   - ハードウェアセキュリティモジュール（HSM）での鍵の保管
   - KMSキーのエクスポート不可：AWS外部への流出リスクを低減
   - 詳細なアクセス制御：必要最小限の権限付与が可能

**KMSの運用面での利点：**
   - マネージドサービス：AWSが基盤のセキュリティと可用性を管理
   - スケーラビリティ：大量のデータや多数のアプリケーションにも対応
   - コスト効率：専用のハードウェアや専門家を自社で用意する必要がない

**KMSの使い方：**
   - AWS Management Console：GUIでの簡単な操作
   - AWS CLI・SDK：プログラムからの操作や自動化が可能
   - AWS CloudFormation：インフラストラクチャ as コードでの管理

**ベストプラクティス：**
   - 定期的な鍵のローテーション
   - 最小権限の原則に基づくアクセス制御
   - 重要な操作（鍵の削除など）に対する多要素認証の使用

## まとめ

このように、AWS KMSは暗号化の複雑さを隠蔽しつつ、高度なセキュリティを提供するサービスです。
初心者でも簡単に使い始められる一方で、セキュリティの専門家にも十分な機能と柔軟性を提供しています。

## 参考資料
[AWS Key Management Service Part.1 基礎編【AWS Black Belt】](https://youtu.be/jdX_NcNrco4?si=vrsMqx2hwgrMr0sd)
[AWS Key Management Service Part.1 基礎編【AWS Black Belt】/PDF](https://pages.awscloud.com/rs/112-TZM...)
[AWS Key Management Service](https://aws.amazon.com/jp/kms/)