ある企業が AWS 上でマルチテナントの SaaS アプリケーションを構築しており、テナントごとに独立したデータ暗号化キーが必要です。各テナントのデータは AWS KMS の CMK で暗号化され、テナントが解約した際にはそのテナントのデータを「暗号学的消去(Crypto Shredding)」できる必要があります。暗号学的消去とは、KMS キーを削除することで、そのキーで暗号化されたすべてのデータを復号不可能にする手法です。最も適切な実装はどれですか?
- A. テナントのデータを S3 Object Lock(WORM)で保護し、解約時にオブジェクトを手動で削除する
- B. テナントごとに独立した AWS アカウントを作成し、解約時にアカウントを削除してデータを消去する
- C. すべてのテナントデータを単一の AWS マネージドキー(aws/s3 等)で暗号化し、テナント ID をメタデータとして保存する
- D. テナントごとに AWS KMS CMK(カスタマーマネージドキー)を作成し、テナントのデータを各テナントの CMK で暗号化する。テナント解約時には KMS の ScheduleKeyDeletion API でキーの削除をスケジュールし(最短 7 日後)、削除後はそのキーで暗号化されたデータへのアクセスが永続的に不可能になる
解答と解説を見る
正解: D
テナントごとに CMK を作成することで、暗号化の分離と暗号学的消去が実現できます。ScheduleKeyDeletion でキーを削除すると、そのキーで暗号化されたすべてのデータ(S3、RDS、DynamoDB など)は物理的に削除しなくても永続的に復号不可能になります。これが「暗号学的消去」の本質です。テナント間の鍵の分離も保証されます。 C: 単一のマネージドキーでの暗号化はテナント間の暗号化分離がなく、暗号学的消去も実現できません。すべてのテナントデータが同じキーで暗号化されているため、特定テナントのデータのみを消去できません。 A: S3 Object Lock は WORM(Write Once Read Many)で削除防止に使うものであり、暗号学的消去とは逆の目的です。解約時のデータ消去要件に反します。 B: テナントごとのアカウント分離は強力ですが、コスト的に非現実的で、アカウント削除には AWS の正式なプロセスが必要です。また「暗号学的消去」ではなく物理的削除になります。
📚 関連サービスの解説: AWS KMS