1. AWS KMS(Key Management Service)とは?
AWS KMS(Key Management Service)は、AWS上でデータを安全に暗号化するための鍵(キー)を管理するサービス です。システムのセキュリティを強化するために、データの暗号化は重要です。その鍵を適切に管理し、安全に運用できるようにするのがAWS KMSの役割です。

1.1 AWS KMSの特徴
AWS KMSを使うことで、以下のようなことが可能になります。
✅ 暗号鍵の作成・管理:
- AWSが自動的に管理する鍵(AWSマネージドキー)
- ユーザーが管理するカスタマーマネージドキー(CMK)
- 外部のキーを持ち込み(AWS CloudHSM)
✅ データの暗号化と復号化:
- S3、RDS、DynamoDB、EBSなどのデータを簡単に暗号化
- LambdaやEC2でも利用可能
✅ アクセス管理と監査:
- IAMポリシーとKMSポリシーでアクセス制御
- CloudTrailと統合し、すべての操作をログ記録
✅ 定期的な鍵のローテーション:
- セキュリティを強化するため、鍵を自動更新可能
2. データ暗号化と通信暗号化の違い
AWSでは「データ暗号化」と「通信暗号化」の2つのセキュリティ対策が存在します。
2.1 データの暗号化とは?
データ暗号化は、ストレージやデータベースに保存されるデータを暗号化する方法です。保存時にデータが盗まれても、復号鍵がなければ中身を読み取ることができません。
代表的なAWSサービス:
- AWS KMS(暗号鍵の管理)
- S3 サーバーサイド暗号化(AES-256, KMSキー)
- RDS 暗号化(KMSを使用)
- EBS 暗号化(ストレージ暗号化)
🔹 具体的なコマンド例(S3データの暗号化)
aws s3 cp myfile.txt s3://my-secure-bucket/ --sse aws:kms --sse-kms-key-id alias/my-key
2.2 通信の暗号化とは?
データがAWS内外を移動する際に、第三者に盗み見されないよう暗号化する方法です。
代表的なAWSサービス:
- TLS(HTTPS)(CloudFront, ELB, API Gatewayなど)
- AWS Certificate Manager(ACM)(SSL/TLS証明書管理)
- AWS PrivateLink(VPC内の暗号化通信)
- AWS VPN(オンプレミスとの暗号化通信)
🔹 具体的なコマンド例(ACMを使った証明書の発行)
aws acm request-certificate --domain-name example.com --validation-method DNS
3. AWS KMSと他の暗号化サービスの比較
| サービス | 主な用途 | 暗号化の種類 |
|---|---|---|
| AWS KMS | 鍵管理、データ暗号化 | AES-256, RSA |
| AWS ACM | TLS証明書管理 | TLS/SSL |
| AWS PrivateLink | VPC間通信の暗号化 | IPsec, PrivateLink |
| AWS VPN | AWS⇔オンプレミス通信の暗号化 | VPN(IPsec) |
4. AWS KMSの具体的なコード例(Python)
🔹 4.1 暗号鍵の作成
import boto3
kms_client = boto3.client('kms')
response = kms_client.create_key(
Description='My encryption key',
KeyUsage='ENCRYPT_DECRYPT',
CustomerMasterKeySpec='SYMMETRIC_DEFAULT'
)
print("Key ID:", response['KeyMetadata']['KeyId'])
🔹 4.2 データの暗号化
plaintext = b'Hello, AWS KMS!'
kms_response = kms_client.encrypt(
KeyId='alias/my-key',
Plaintext=plaintext
)
ciphertext_blob = kms_response['CiphertextBlob']
🔹 4.3 データの復号化
decrypt_response = kms_client.decrypt(
CiphertextBlob=ciphertext_blob
)
decrypted_text = decrypt_response['Plaintext']
print("Decrypted text:", decrypted_text.decode())
5. AWS SAA模擬問題
Q1: AWS KMSの「カスタマーマネージドキー(CMK)」に関する説明として正しいものはどれですか?
- AWSによって自動的に作成される。
- ユーザーが作成し、アクセス制御を設定できる。
- 一度作成すると削除できない。
- 暗号化に使用できない。
✅ 答え: 2. ユーザーが作成し、アクセス制御を設定できる。
Q2: S3のデータをAWS KMSを使って暗号化する際に使用するオプションは?
--sse aws:kms--sse s3--sse aes--encrypt kms
✅ 答え: 1. --sse aws:kms
まとめ
AWS KMSは、データの暗号化を管理する強力なツールです。データの安全性を確保するために、データ暗号化と通信暗号化の違いを理解し、適切なAWSサービスを選択することが重要 です。
AWS認定試験(SAA)でもKMSは頻出トピックなので、しっかり学習しておきましょう!🚀


コメント