KMSがRDS for OracleとRDS for SQL Serverの暗号化にも使えるようになりました
こんにちは、虎塚です。
2015年4月初めに、表題のとおりのアップデートがありました。少し遅くなりましたがご紹介します。
以前からRDS for MySQLとRDS for PostgreSQLで利用できたKMS (AWS Key Management Service) による暗号化の機能が、OracleとSQL ServerのDBインスタンスでも使えるようになりました。
KMSによるRDS暗号化の概要
KMSって何だっけ?という方は、まず10分でわかる!Key Management Serviceの仕組みをご覧ください。
KMSによってRDSを暗号化すると、データベースのデータに加えて、次を含むすべてのRDSデータが暗号化されます。
- 自動バックアップデータ
- スナップショット
- リードレプリカ
- ログ
RDSの暗号化機能では、暗号化も復号も透過的に行われますので、アプリケーションを修正する必要はありません。
OracleとSQL Serverの既存の暗号化: Transparent Data Encryption (TDE)
もともとRDS for OracleとRDS for SQL Serverには、ほかの暗号化の仕組みがありました。それがTransparent Data Encryption (TDE)です。(TDEは、これからも変わらず利用できます)
OracleとSQL ServerのTDEは、次のDBバージョン・エディションに提供されています。Advancedな機能ということで、ごく一部のエディションに限られているんですね。
- OracleのTDE
- Oracle Enterprise Edition
- SQL ServerのTDE
- SQL Server 2008 R2 Enterprise Edition
- SQL Server 2012 Enterprise Edition
いずれも、設定はRDSのオプショングループで行います。
ちなみに、TDEによるRDSの暗号化と、KMSによるRDSの暗号化には、次の共通点があります。
- データの暗号化/復号が透過的におこなわれる
- DBインスタンスに暗号化を一度適用すると、永続的なものになる
RDSをKMSで暗号化する方法
OracleやSQL Serverのインスタンスを新規に作成する時に、暗号化の有効化を選択します。この設定はManagement Consoleからも可能です。
DBエンジンにOracle SEを選択して、KMSによる暗号化を設定しようとしている画面を次に示します。
また、DBエンジンにSQL Server Standard Editionを選択して、KMSによる暗号化を設定しようとしている画面を次に示します。
KMSがRDSの暗号化用にデフォルトで用意するキー(デフォルトマスターキー)を選んでもいいですし、KMSで作成したカスタマーマスターキーを選ぶこともできます。
RDS for Oracle、SQL ServerでいつKMSを使うか
そもそもDBの暗号化は、セキュリティ関連のルールやポリシーを遵守する必要があり、かつ機密データを暗号化する時におこないます。
その中でも、OracleやSQL Serverを採用する予定で、利用予定のDBバージョンやエディションでTDEが提供されていない場合に、KMSがベターな選択肢になるのではないかと思います。
注意点
SQL Serverは、利用できるインスタンスタイプにライセンス上の理由で制限があります(参考: DB インスタンスクラス - Amazon Relational Database Service )。また、KMSを適用できるDBインスタンスタイプにも制限があります(参考: Amazon RDS リソースの暗号化 - Amazon Relational Database Service )。
たとえば、SQL Server Express Editionは、t2.micro、t2.small、t2.medium、m1.small、t1.microでの利用に限定されています。これらはいずれもKMSの適用対象外のインスタンスタイプです。
DBエンジンとKMSの両方で利用可能なインスタンスタイプだけが、KMSで暗号化できます。
おわりに
今回のアップデートのおかげで、本番環境でEnterpriseエディション、開発環境でStandardエディションを使っているような場合にも、統一された暗号化機能を使うことができるようになりました。ますます便利になりますね。
実戦投入前には、TDEとの差異なども検証していきたいと思います。
それでは、また。
参考資料
- Encrypting Amazon RDS Resources - Amazon Relational Database Service
- How Amazon Relational Database Service Uses AWS KMS - AWS Key Management Service
- Appendix: Options for Oracle Database Engine - Amazon Relational Database Service
- Appendix: Options for SQL Server Database Engine - Amazon Relational Database Service