結論:AWSで暗号キーのローテーションを担う中心サービスは AWS KMS
AWSで「暗号キーをローテーションできるサービスはどれか」と問われた場合、まず答えるべき中心サービスは AWS Key Management Service(AWS KMS) です。
ただし、試験では似た言葉が混ざりやすいため、次の3つを切り分けて理解することが重要です。
- AWS KMS:暗号キー(KMSキー)の管理とローテーション
- AWS Secrets Manager:DBパスワードやAPIキーなどのシークレットのローテーション
- AWS Certificate Manager(ACM):SSL/TLS証明書の自動更新
つまり、「暗号キーのローテーション」なら KMS、「認証情報のローテーション」なら Secrets Manager、「証明書の更新」なら ACM という整理が基本です。
まずは比較表で整理
| サービス / 対象 | 何を回すのか | 自動化の可否 | Cloud Practitionerでの押さえどころ |
|---|---|---|---|
| AWS KMS(customer managed の対称KMSキー) | 暗号キーのキーマテリアル | 自動ローテーション可 / オンデマンド可 | 本命。試験で最も重要 |
| AWS KMS(AWS managed keys) | 暗号キーのキーマテリアル | AWSが毎年自動ローテーション | 利用者が有効・無効を切り替えるものではない |
| AWS KMS(非対称KMSキー、HMACキー、custom key store など) | 暗号キー | 自動ローテーション不可、手動ローテーションが基本 | 「KMSなら何でも自動」は誤り |
| AWS Secrets Manager | シークレット(例:DB認証情報、APIキー) | 自動ローテーション可 | 回す対象は暗号キーではなく認証情報 |
| AWS Certificate Manager(ACM) | Amazon発行のSSL/TLS証明書 | 条件を満たせば自動更新 | 証明書更新であり、KMSキーのローテーションとは別 |
AWS KMSでできるローテーションの種類
AWS KMSでは、同じ「キーのローテーション」でも方法が分かれます。ここを押さえると、問題文の見分けがかなり楽になります。
1. 自動ローテーション
自動ローテーションは、AWS KMSが生成した対称暗号化の customer managed KMS key で利用できます。既定では約365日ごとで、現在は90日〜2560日の範囲でローテーション間隔を設定できます。
このときのポイントは、キーIDやARNといった論理的なキー自体は同じままで、内部のキーマテリアルだけが更新されることです。アプリケーション側で大きな変更が不要な設計になっています。
2. オンデマンドローテーション
必要なタイミングで、すぐにローテーションを実行する方法です。自動ローテーションの有効・無効とは独立して実行できます。たとえば、定期ローテーションは年1回にしつつ、インシデント対応や運用ポリシー上の理由で途中に1回だけ回したい場合に向いています。
3. 手動ローテーション
新しいKMSキーを作成し、エイリアスやアプリケーション設定の参照先を切り替える方法です。非対称KMSキー、HMAC KMSキー、custom key store のKMSキー など、自動ローテーションやオンデマンドローテーションの対象外のケースでは、この考え方が基本になります。
ローテーションしても、過去に暗号化したデータは読めるのか
ここは試験でも実務でも誤解しやすい点です。
AWS KMSのローテーションは、既存データを勝手に全部再暗号化する仕組みではありません。 しかし、KMSは復号時に適切なキーマテリアルを自動的に選ぶため、過去のキーマテリアルで暗号化されたデータも、通常は引き続き復号できます。
言い換えると、「ローテーションしたら過去データが読めなくなる」ではない ということです。Cloud Practitionerではこの理解で十分です。
どのKMSキーでも自動ローテーションできるわけではない
ここは引っかけ問題になりやすい部分です。
- 自動ローテーションできる代表例:AWS KMSが生成した対称暗号化の customer managed KMS key
- 自動ローテーションできない代表例:非対称KMSキー、HMAC KMSキー、imported key material のキー、custom key store のキー
特に、AWS CloudHSM を使う custom key store は「KMSと連携するから自動ローテーションもできそう」と思いやすいですが、そこは別です。custom key store のKMSキーでは自動ローテーションを有効化できません。
AWS managed key と AWS owned key も整理しておく
AWS managed key
AWS managed key はAWS KMSのキーですが、利用者が細かく管理する customer managed key とは違い、AWSが毎年自動ローテーションします。利用者が「有効にする・無効にする」を自由に切り替えるものではありません。
AWS owned key
AWS owned key は、利用者からはさらに見えにくい形でAWSサービス側が所有・管理しているキーです。ローテーションも、そのキーを所有するAWSサービスが管理します。
Secrets Manager や ACM と何が違うのか
Secrets Manager
Secrets Managerは、シークレットを定期的に更新するサービスです。代表例は、RDSの認証情報、外部サービスのAPIキー、アプリケーション用のパスワードなどです。ローテーションする対象は暗号キーではなく認証情報です。
ACM
ACMはAmazon発行のSSL/TLS証明書を管理し、条件を満たすと自動更新します。これは便利ですが、KMSキーのローテーションとは別の機能です。問題文で「証明書」「SSL/TLS」「ドメイン検証」といった語が出たら、KMSではなくACMを考えます。
試験でそのまま使える覚え方
- 暗号キーをローテーション → AWS KMS
- DB認証情報やAPIキーをローテーション → AWS Secrets Manager
- SSL/TLS証明書を自動更新 → AWS Certificate Manager(ACM)
さらにKMSについては、次の一文でまとめると覚えやすいです。
「KMSの自動ローテーションは、主に customer managed の対称KMSキー。非対称やHMAC、custom key store は手動が基本」
よくある誤答パターン
- 「Secrets Managerはローテーションできるから、暗号キーの問題でも答えはSecrets Manager」→ 誤り
- 「ACMも更新できるからキーのローテーションと同じ」→ 誤り
- 「KMSならどのキーでも自動ローテーションできる」→ 誤り
- 「ローテーションすると過去データを全部再暗号化しないと使えない」→ 一般化しすぎで誤り
まとめ
AWSで暗号キーのローテーションを行う中心サービスは AWS KMS です。特にCloud Practitioner試験では、KMSは暗号キー、Secrets Managerはシークレット、ACMは証明書 と切り分けて覚えると、問題の取り違えを防ぎやすくなります。
また、KMSではすべてのキーが自動ローテーション対象ではありません。自動ローテーションの中心は customer managed の対称KMSキーであり、それ以外は手動対応が必要になる場合があります。ここまで整理できていれば、試験では十分に戦えます。
参考URL(AWS公式)
- https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
- https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable.html
- https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html
- https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html
- https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html
- https://docs.aws.amazon.com/kms/latest/developerguide/manage-cmk-keystore.html
