[新機能]RDS for Auroraで暗号化がサポートされました

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

最近は趣味であるシガーをあまり吸っていない大栗です。
昨日の記事である『AWS再入門 Amazon RDS編』の中で、Auroraでは「暗号を有効化」は項目はあるが指定できないと記述していましたが、先ほどのリリースでAuroraでも暗号化がサポートされたらしいので確認してみます。

2015/12/09 13:50「暗号化の種類」と「暗号化するときの鍵管理」で記載していた表の内容に誤りがあったため修正致しました。

RDS暗号化の概要

まずはRDSの暗号化について、内容を確認してみましょう。

暗号化の対象

RDSでの暗号化によって、以下のデータがAES-256によって暗号化されます。暗号化/復号化は透過的に行われるため、アプリケーションでの修正は必要ありません。

  • DB インスタンス
  • 自動バックアップ
  • リードレプリカ
  • スナップショット
  • ログ

暗号化の種類

RDSでは暗号化は「暗号化されたインスタンス」と「Transparent Data Encryption(TDE)」の2種類があります。今回Auroraでは「暗号化されたインスタンス」がサポートされました。

DBエンジン 暗号化された
インスタンス
TDE
MySQL ×
Oracle ○(Enterprise Edition)
SQL Server ○(Enterprise Edition)
PostgreSQL ×
Aurora ○ ← New ! ×
MariaDB ×

暗号化するときの鍵管理

暗号化の鍵管理のについては、Key Management Service(KMS)を使う方法とCloudHSMを使う方法があります。Auroraの場合はKMSを使う方法がサポートされました。

DBエンジン KMS CloudHSM
MySQL ×
Oracle ○(TDE)
SQL Server ×
PostgreSQL ×
Aurora ○ ← New ! ×
MariaDB ×

KMSの詳細については、『AWS再入門 – Amazon KMS編』を参照してください。

Auroraを暗号化してみる

実際にAuroraを暗号化してみましょう。

AuroraのDBインスタンスを起動します。
起動の詳細手順は、AWS再入門 Amazon RDS編 - インスタンスの起動 を参照して下さい。

RDS_·_AWS_Console

今までは「暗号を有効化」はグレーアウトされて[いいえ]しか選択できなかったのですが、[はい]を選択すると暗号化のマスターキーを入力できるようになります。
「マスターキー」には自分のアカウントのKMSのキーを選択するだけでなく、別のアカウントのキーを使用することができます。その場合は、キーのARNを入力します。

RDS_·_AWS_Console

マネージメントコンソールで確認すると確かに暗号化が設定されています。

RDS_·_AWS_Console

Auroraへログインしてみます。透過的な暗号化であるため特別な手順は何もありません。

$ mysql -u awsuser -pmypassword -h mycluster.cluster-abcdefghijkl.ap-northeast-1.rds.amazonaws.com mydb
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.6.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

注意

RDSの暗号化されたインスタンスには、以下の制限事項があります。

  • RDS DB インスタンスの暗号化は、DB インスタンスの作成時にのみ有効にすることができます。作成後に暗号化を有効にすることはできません。
  • 暗号化されていない既存の DB インスタンスを変更して暗号化を有効にすることはできません。
  • 暗号化された DB インスタンスを変更して暗号化を無効にすることはできません。
  • 暗号化されていない DB インスタンスのリードレプリカを暗号化することや、暗号化された DB インスタンスのリードレプリカを暗号化しないことは設定できません。
  • 暗号化されたリードレプリカは、ソース DB インスタンスと同じキーで暗号化する必要があります。
  • 暗号化されていないバックアップやスナップショットを、暗号化された DB インスタンスに復元することはできません。
  • KMS の暗号化キーは、暗号化キーが作成されたリージョンに固有であるため、暗号化されたスナップショットを別のリージョンにコピーしたり、暗号化された DB インスタンスをリージョンを越えてレプリケートすることはできません。
  • KMS 暗号化キーは作成したリージョンに固有であるため、暗号化された DB インスタンスをリージョン間でレプリケートすることはできません。

AWS Documentation » Amazon Relational Database Service (RDS) » User Guide » Amazon RDS のセキュリティ » Amazon RDS リソースの暗号化 » Amazon RDS の暗号化されたインスタンスの制限事項

さいごに

Auroraは「エンタープライズレベルのデータベースを10分の1の価格で実現」と謳っていますが、今回の暗号化サポートで本当にエンタープライズレベルになってきたのではないかと思います。東京リージョンでも使用できるようになり、多くの場合でMySQLと比較して高速ですので、更にAuroraを使用することが多くなると期待しています。