背景・目的
Aurora リソースの暗号化について、あらためて整理をします。
まとめ
下記に特徴をまとめます。
| 特徴 | 説明 |
|---|---|
| AuroraのDB クラスターの暗号化方式 | AES-256を利用 |
| 対象 | ・DB インスタンス ・ログ ・バックアップ ・スナップショット |
| KMS | 暗号化には AWS Key Management Service(AWS KMS)キーを使用する。下記の種類がある。 ・AWSマネージドキー ・カスタマーマネージドキー |
| AWSマネージドキー | リージョンごとに別で管理される |
| カスタマーマネージドキー | カスタマーマネージドキーを指定しない場合、Aurora 専用の AWS マネージドキー が自動作成・使用される |
| KMSと監査 | ・カスタマーマネージドキーはポリシーで利用制御可能 ・CloudTrail により KMS キーの使用履歴を監査できる |
| 制限事項 | ・暗号化後に KMS キーの変更は不可である ・AWS マネージドキーで暗号化したスナップショットは他アカウントと共有不可 |
| KMS キー無効化時の Amazon Aurora の挙動 | Aurora が AWS Key Management Service キーにアクセスできなくなると、アクセスできなくなる |
| クロスアカウントアクセス | スナップショットを別アカウントにコピーする場合は、KMSを共有する必要あり |
| スナップショット時 | ・別キーを指定せずにスナップショットから復元すると元アカウントの KMS キーが引き続き使われる ・スナップショットコピー時に必ず別の KMS キーを指定する |
| 転送中の暗号化 | 物理レイヤーでの暗号化される。 AWS グローバルネットワーク上を流れるデータは、AWS を離れる前に 物理層で自動的に暗号化される アベイラビリティゾーン(AZ)間の通信はすべて暗号化されている |
概要
Amazon Aurora の暗号化された DB クラスターでは、業界スタンダードの AES-256 暗号化アルゴリズムを使用して、Amazon Aurora DB クラスターをホストしているデータをサーバーで暗号化します。データが暗号化されると、Amazon Aurora はパフォーマンスの影響を最小限に抑えながら、データへのアクセスと復号の認証を透過的に処理します。暗号化を使用するために、データベースのクライアントアプリケーションを変更する必要はありません。
- Auroraでは、AES-256を利用して暗号化する
- 透過的に処理される
Amazon Aurora リソースの暗号化の概要
暗号化された DB クラスターでは、以下がすべて暗号化される。
- DB インスタンス
- ログ
- バックアップ
- スナップショット
暗号化には AWS Key Management Service(AWS KMS)キーを使用する。
- AWS マネージドキー
- カスタマーマネージドキー
- カスタマーマネージドキーを指定しない場合、Aurora 専用の AWS マネージドキー が自動作成・使用される
- AWS マネージドキーは リージョンごとに別で管理される
KMSと監査
- カスタマーマネージドキーはポリシーで利用制御可能
- CloudTrail により KMS キーの使用履歴を監査できる
- 同じ KMS キーは S3、EBS、Redshift など他サービスでも利用可能
制限事項は、下記の通り
- 暗号化後に KMS キーの変更は不可である
- スナップショットコピー時は 別の KMS キーを指定可能
- AWS マネージドキーで暗号化したスナップショットは他アカウントと共有不可
- キーを変更するには、手動スナップショットを作成し、スナップショットコピー時に別キーで再暗号化する
- クラスターとインスタンスの関係として、クラスター内のすべての DB インスタンスは 同一の KMS キーを使用
KMS キー無効化時の Amazon Aurora の挙動
-
KMS キーを無効化にした場合、Amazon Aurora が AWS Key Management Service キーにアクセスできなくなると、DB クラスターはinaccessible-encryption-credentials-recoverable 状態になる。
-
回復可能な猶予期間は、7日間である
- 復旧するには、KMS キーを 再度有効化する
- DB クラスターを 再起動
KMS キー権限とクラスターの関係
クラスター作成時に、下記の挙動をする
- Aurora は 作成者プリンシパルが KMS キーにアクセス可能かを確認する
- クラスター存続期間中に使う 内部許可を生成する
- 作成後に IAM から KMS 権限を剥奪しても、稼働中の DB には影響ないが、KMS キーを「無効化」すると影響あり
クロスアカウント・スナップショット時
- スナップショットを別アカウントにコピーする場合は、KMSを共有する必要あり
- 別キーを指定せずにスナップショットから復元すると元アカウントの KMS キーが引き続き使われる
- スナップショットコピー時に必ず別の KMS キーを指定する
転送中の暗号化
物理レイヤーでの暗号化
- AWS グローバルネットワーク上を流れるデータは、AWS を離れる前に 物理層で自動的に暗号化される
- アベイラビリティゾーン(AZ)間の通信はすべて暗号化されている
Amazon VPC ピアリングおよび Transit Gateway のクロスリージョンピアリング接続によって得られる暗号化
- VPC ピアリングおよびTransit Gateway クロスリージョンピアリングを通過するすべてのクロスリージョントラフィックは自動的に暗号化される
- 暗号化は リージョン送信時に一括で実施され、利用者による設定は不要
- さらに、トラフィックが AWS を離れる前に、物理レイヤーで追加の暗号化が自動適用される
インスタンス間での暗号化
- AWS は、すべての DB インスタンス間で安全かつプライベートな接続を提供している
- 一部のインスタンスタイプでは、Nitro System のハードウェアオフロード機能により、インスタンス間の転送中トラフィックを自動暗号化
- 暗号化方式としては、256 ビット AEAD(認証付き暗号)アルゴリズムを使用し、ネットワークパフォーマンスへの影響なし
Amazon Aurora の暗号化された DB クラスターの制限事項
- Aurora の暗号化は一度有効化するとオフにできない
- 暗号化されていない DB クラスターから、暗号化されたスナップショットは作成不可
- 暗号化された DB クラスターのスナップショットは、クラスターと同一の KMS キーを使用する必要がある
- 暗号化されていない DB クラスターを、直接 暗号化された DB クラスターへ変換することは不可
- ただし、KMS キーを指定して非暗号化スナップショットを暗号化して復元することは可能
- 暗号化/非暗号化をまたいだレプリカ作成は不可
- 非暗号化 → 暗号化レプリカ:不可
- 暗号化 → 非暗号化レプリカ:不可
- リージョン間で暗号化スナップショットをコピーする場合は、コピー先リージョンの KMS キーが必須
- スナップショットコピー中もデータは 常に暗号化されたまま
- コピー処理では KMS のエンベロープ暗号化が使用される
- 暗号化された DB クラスターを復号(非暗号化)することは不可
- データをエクスポートして非暗号化クラスターへインポート
考察
今回、Auroraのリソースの暗号化について整理しました。
下記のように理解しました。
- Aurora では、暗号化を一度有効にするとオフにできない
- 暗号化/非暗号化をまたいだ変換やレプリカ作成ができない
参考