
KMS(Key Management Service) は、AWS全体でデータ暗号化を一元的に管理する鍵管理サービスです。
KMS Key(旧CMK:カスタマーマスターキー)を用いて暗号化を集中管理し、S3、EBS、RDS、Redshift、DynamoDB などの主要サービスと統合して利用できます。
KMSには、AWSが自動的に作成・管理する AWS Managed Key(AWS管理キー)、ユーザー自身が作成・制御する Customer Managed Key(カスタマー管理キー)、そしてAWS内部で利用される AWS Owned Key(AWS所有キー) の3種類のキーがあります。用途に応じてこれらを使い分けることで、セキュリティと運用効率を両立できます。
アクセス制御には Key Policy(キーポリシー) を使用し、どのIAMユーザーやロールが鍵を利用できるかを細かく制御します。一時的に鍵の使用を許可する場合は Grants(一時的アクセス許可) を利用します。
また、Key Alias(エイリアス) を設定することで、鍵をわかりやすい名前で管理することができます。
暗号化の仕組みとしては、Envelope Encryption(エンベロープ暗号化) を採用しており、実際のデータを暗号化する Data Encryption Key(データ暗号化キー) を生成し、それ自体をKMSキーで暗号化することで、大規模データでも効率的かつ安全に処理できます。
Key Rotation(キーの自動更新) により、KMSキーは定期的に自動ローテーションされ、セキュリティリスクを低減します。鍵の状態は Key State(キー状態) によって「有効」「無効」「削除保留」などが管理されます。また、既存データを別のキーで再暗号化する ReEncrypt(再暗号化) 機能にも対応しています。
Custom Key Store(カスタムキーストア) を利用することで、AWS CloudHSM上の専用ハードウェアに鍵を保存し、より厳格なコンプライアンス要件を満たすことができます。
鍵の利用目的は Key Usage(キー用途) により暗号化・復号や署名・検証などに分かれ、暗号アルゴリズムは Key Spec(キー仕様) で指定します。
KMSは、SSM (Secrets Manager) や Parameter Store と連携して認証情報や設定値を安全に暗号化・保管できます。また、CloudTrail による操作監査、CloudWatch Logs との連携による可視化にも対応しており、HSM(ハードウェアセキュリティモジュール) 基盤の上で高いセキュリティ水準を維持します。
重要用語
ユースケース
- リスト1
 - リスト2
 - リスト3
 
ベストプラクティス
- リスト1
 - リスト2
 - リスト3
 
高可用性・冗長化
- リスト1
 - リスト2
 - リスト3
 
セキュリティ
- リスト1
 - リスト2
 - リスト3
 
運用・監視
- リスト1
 - リスト2
 - リスト3
 
デフォルトのリミット値
| リミット事項 | 上限数 | 
|---|---|
| 項目1 | 上限1 | 
| 項目2 | 上限2 | 
| 項目3 | 上限3 | 
| 項目4 | 上限4 | 
| 項目5 | 上限5 | 
AWS CLIのサンプルコード
vpc を作成
#include <stdio.h>
void main(void) {
  int i;
  for (i=0; i<10; i++)
    printf("%d\n", i);
vpc を作成
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
Terraformのサンプルコード
vpc を作成
bbbbbbbbbbbbbbbbbbbbbbb
ddddddddddddddddddddddd
vpc を作成
xxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyy
課金モデル
| 項目 | 内容 | 
|---|---|
| 項目1 | 内容1 | 
| 項目2 | 内容2 | 
| 項目3 | 内容3 | 
| 項目4 | 内容4 | 
| 項目5 | 内容5 |