KMSとは?
AWS KMS (Key Management Service) とは?
Section titled “AWS KMS (Key Management Service) とは?”KMSは、暗号化キーの作成と管理を容易にする、フルマネージドの暗号化サービスです。
1. カスタマーマスターキー(CMK)
Section titled “1. カスタマーマスターキー(CMK)”概要: - 暗号化・復号化に使用 - データキーの生成 - キーマテリアルの管理
キータイプ: 対称キー: - AES-256 - 最も一般的 - 暗号化・復号化に同じキー
非対称キー: - RSA(2048, 3072, 4096 bit) - ECC(NIST P-256, P-384, P-521、secp256k1) - 公開鍵/秘密鍵ペア - 署名・検証2. キーの種類
Section titled “2. キーの種類”AWS管理キー: - 自動作成 - 無料 - 自動ローテーション - 例: aws/s3, aws/rds, aws/lambda
カスタマー管理キー(CMK): - ユーザー作成 - 完全制御 - キーポリシー設定可能 - $1/月
AWS所有キー: - AWS内部使用 - 管理不要 - 無料3. キーマテリアルのオリジン
Section titled “3. キーマテリアルのオリジン”AWS_KMS(デフォルト): - AWS生成・管理 - 最も安全 - 推奨
EXTERNAL: - 独自のキーマテリアルインポート - 自己管理 - コンプライアンス要件対応 - 有効期限設定可能
AWS_CLOUDHSM: - CloudHSMクラスター使用 - FIPS 140-2 Level 3準拠暗号化の仕組み
Section titled “暗号化の仕組み”エンベロープ暗号化
Section titled “エンベロープ暗号化”概要: - データキーでデータ暗号化 - CMKでデータキー暗号化 - 2層構造
フロー: 1. GenerateDataKey API呼び出し 2. KMSがデータキー生成 3. CMKでデータキー暗号化 4. プレーンテキストデータキーでデータ暗号化 5. 暗号化されたデータキーを保存
復号化: 1. Decrypt API で暗号化データキー復号 2. プレーンテキストデータキーでデータ復号
メリット: - 大容量データの効率的な暗号化 - ネットワーク転送量削減 - 性能向上暗号化・復号化: Encrypt: データ暗号化(4KB以下) Decrypt: データ復号化 ReEncrypt: キー変更せずに再暗号化
データキー: GenerateDataKey: データキー生成 GenerateDataKeyWithoutPlaintext: 暗号化済みのみ
署名: Sign: デジタル署名作成 Verify: 署名検証
キー管理: CreateKey: キー作成 DescribeKey: キー情報取得 EnableKey: キー有効化 DisableKey: キー無効化 ScheduleKeyDeletion: キー削除予約キーポリシー
Section titled “キーポリシー”概要: - リソースベースのポリシー - キーへのアクセス制御 - IAMポリシーと併用
デフォルトキーポリシー: - ルートアカウントに完全アクセス - IAMポリシーで追加制御可能
カスタムキーポリシー: - 詳細なアクセス制御 - クロスアカウントアクセス - 条件付きアクセスキーローテーション
Section titled “キーローテーション”自動ローテーション: - カスタマー管理キー対応 - 1年毎に自動 - 古いキーマテリアルは保持 - 過去の暗号化データも復号可能
手動ローテーション: - エイリアス更新 - 完全制御 - より短い間隔も可能統合サービス
Section titled “統合サービス”ストレージ: - S3: デフォルトまたはカスタムKMSキー - EBS: ボリューム暗号化 - EFS: ファイルシステム暗号化 - Glacier: アーカイブ暗号化
データベース: - RDS: 保管時暗号化 - DynamoDB: テーブル暗号化 - Aurora: クラスター暗号化 - ElastiCache: スナップショット暗号化
アプリケーション: - Lambda: 環境変数暗号化 - Secrets Manager: シークレット暗号化 - Systems Manager: Parameter Store暗号化 - SNS/SQS: メッセージ暗号化セキュリティ機能
Section titled “セキュリティ機能”監査: CloudTrail: - 全API呼び出し記録 - キー使用履歴 - アクセスパターン分析
コンプライアンス: - FIPS 140-2 Level 2準拠 - CloudHSM連携でLevel 3対応 - 多数の認証取得
アクセス制御: - IAMポリシー - キーポリシー - グラント(一時的な権限) - VPCエンドポイントマルチリージョン対応
Section titled “マルチリージョン対応”マルチリージョンキー: - 複数リージョンで同じキーID - 暗号化データをリージョン間で移動可能 - レプリカキー管理
用途: - DynamoDB Global Tables - Aurora Global Database - S3 レプリケーション - ディザスタリカバリ| キータイプ | 価格 | 備考 |
|---|---|---|
| カスタマー管理キー | $1.00 / 月 | ユーザーが作成・管理 |
| マルチリージョンキー | $1.00 / 月 / リージョン | リージョンごとに課金 |
| AWS管理キー | 無料 | AWSサービスが自動作成 |
API呼び出し料金
Section titled “API呼び出し料金”| API種別 | 価格 | 備考 |
|---|---|---|
| 対称キー | $0.03 / 10,000 リクエスト | Encrypt, Decrypt, GenerateDataKey等 |
| 非対称キー・HMAC | $0.15 / 10,000 リクエスト | 署名・検証操作 |
| ECC SignOrVerify | $0.15 / 10,000 リクエスト | 楕円曲線暗号 |
無料枠:
- AWS管理キー: 完全無料
- 月間20,000リクエスト無料
料金計算例(カスタマー管理キー10個、月間100万API呼び出し):
| 項目 | 計算 | 料金 |
|---|---|---|
| キー料金 | 10 × $1.00 | $10.00 |
| API呼び出し | (100万 - 20,000) / 10,000 × $0.03 | $2.94 |
| 合計 | - | $12.94/月 |
KMSの重要ポイント:
- エンベロープ暗号化で効率化
- キーポリシーで詳細なアクセス制御
- 自動ローテーションでセキュリティ向上
- 多数のAWSサービスと統合
- CloudTrailで監査証跡確保
- マルチリージョンキーでグローバル対応