- 暗号化されていないRDSインスタンスを暗号化する方法についてメモする
暗号化が必要な背景
- 情報漏洩や不正アクセスなどのセキュリティリスクを低減するため。
- 特に顧客情報や個人情報など機密性の高いデータを扱う場合は、暗号化が法規制やコンプライアンス基準において義務付けられる場合があるため。
暗号化しないと生じうるリスク
暗号化されていないRDSインスタンスは、以下のリスクがある。
- 不正アクセスやデータ漏洩時にデータが容易に読み取られる
- データベースストレージへの直接アクセスによるデータ取得が可能になる
- コンプライアンス違反による法的リスク、信用失墜、金銭的損害
RDSの暗号化について
- 暗号化オプションはDB インスタンスの作成時にのみ有効にすることができ、作成後のインスタンスでは有効にすることができない。
- ただし、暗号化されていないスナップショットのコピーは暗号化することが可能。
- そのため暗号化してコピーしたスナップショットから暗号化されたインスタンスを復元することができる。
手順
- 前提
- エンドポイントを変更したくない場合
- サービス停止期間を許容できる場合
1. スナップショットを作成する
- 対象インスタンスのスナップショットを取得する
2. スナップショットを暗号化してコピーする
- KMSキーを選択し、スナップショットのコピーを作成する
3. 暗号化したスナップショットからDB インスタンスを復元する
4. 元のDB インスタンス名を変更する
- 元のDB インスタンス名を別インスタンス名に変更する(暗号化したスナップショットから復元したインスタンスで現在のインスタンス名を使用するため)
5. 復元したDB インスタンス名を元のDB インスタンス名に変更する
- 復元したDBインスタンスを、元のDBインスタンス名に変更する
6. 暗号化されていることを確認する
- インスタンスが起動し、作業は完了
- 暗号が有効化されていることを確認できる
7. 元のDB インスタンスを削除する
- 元のDB インスタンスを削除する(不要な場合は手動スナップショットもする)