AWS / SAP-C02

SAP-C02-065 · セクション 08 / タスク 2.3

Data at RestのEncryption Strategy

保管中の暗号化 / AWS KMS / サービス管理キー / カスタマーマネージドキー / キーポリシー / 暗号化要件

ゴール

保存データの暗号化方式を選ぶだけで終わらず、現在の暗号化状態・既存データ・スナップショット / バックアップ / コピー・クロスアカウント / クロスリージョン・移行まで確認し、データライフサイクル全体で暗号化要件を成立させられるようにします。

暗号化要件
        ↓
データ範囲
        ↓
現在暗号化状態
        ↓
今後のデータ/ 既存データ
        ↓
スナップショット / バックアップ / コピー
        ↓
クロスアカウント / クロスリージョン
        ↓
移行 / 再暗号化/ 切り替え
        ↓
要件成立

1. 「暗号化を有効化した」で完了しない

保管中の暗号化では、プライマリリソースだけでなく、そこから派生するデータまで要件の対象かを確認します。

確認対象判断
プライマリデータ現在の暗号化状態と使用キーを確認
スナップショット / バックアップ暗号化が継承されるか、別キー指定が必要か確認
レプリカ / コピーコピー先・リージョン・アカウントで要件を維持できるか確認
既存データデフォルト暗号化が遡及するか、是正が必要か確認
移行インプレース変更できない場合のコピー / 復元 / 切り替えを設計

2. キー選択はデータライフサイクルへ適用する

AWS KMSやキーポリシーの基本を繰り返すのではなく、選択済みの暗号化制御がデータライフサイクル全体で要件を満たすかを確認します。

サービス管理キーは要件判断用の上位表現です。実際のAWS仕様では、Amazon S3 マネージドキー、AWS マネージドKMSキー、AWS所有キーなどを区別します。

サービス標準の暗号化/ 選択済みKMSキー
        ↓
既存データも適合?
        ↓
バックアップ / コピー / 共有でも適合?
        ↓
いいえなら移行 / 再暗号化

3. S3の自動暗号化と既存オブジェクトを分ける

Amazon S3では現在、新規オブジェクトはSSE-S3で自動暗号化されます。しかし、デフォルト暗号化は過去の暗号化されていないオブジェクトを自動的に再暗号化するものではありません。

新しいオブジェクト
→ デフォルト暗号化で保護既存オブジェクト
→ 暗号化状態を確認
→ 必要なら暗号化済みコピーで是正

コンプライアンス要件が「バケット内の全オブジェクト」であれば、今後書き込みだけでなく既存オブジェクトも監査対象です。

4. デフォルト暗号化と既存リソースを分ける

デフォルト暗号化は将来作成されるリソースを統制する制御として有効ですが、既存リソースへ遡及するとは限りません。

Amazon EBSのデフォルト暗号化はリージョン単位で、新規ボリュームやスナップショットコピーへ適用されます。既存ボリューム / スナップショットは自動変換されません。

デフォルト暗号化有効
        ↓
今後のリソース→ 暗号化既存リソース→ 是正を別途設計

5. 既存データでは移行経路を設計する

暗号化要件が後から追加された場合、対象サービスがインプレース変更をサポートするか確認します。

Amazon RDSでは、既存の暗号化されていないDBインスタンスへ後から直接保管中の暗号化を有効化できません。

既存の暗号化されていないRDS
        ↓
スナップショット
        ↓
暗号化済みスナップショットコピー
        ↓
復元
        ↓
暗号化済みDB
        ↓
アプリケーション切り替え

暗号化方式だけでなく、ダウンタイム・切り替え・ロールバックもアーキテクチャ制約になります。

6. 暗号化キー変更も移行になる場合がある

既存リソースが暗号化済みでも、使用キーをその場で差し替えられるとは限りません。

サービス例キー変更の考え方
Amazon EBSスナップショットコピー時に別KMSキーで再暗号化し、新しいリソースへ移行
Amazon RDS別KMSキーでスナップショットコピーを作成し、復元 / 切り替えを評価

暗号化戦略にはキー選択だけでなく再暗号化/ 移行戦略が含まれる場合があります。

7. スナップショット / バックアップ / コピーを独立して確認する

プライマリリソースが暗号化済みでも、すべての派生データが自動的に同じ制御を継承するとは限りません。

プライマリストレージ
      ↓
スナップショット
      ↓
バックアップ
      ↓
クロスリージョンコピー
      ↓
クロスアカウントコピー
      ↓
アーカイブ / エクスポート

各段階で暗号化状態・使用キー・宛先側のキー可用性をサービス仕様に合わせて確認します。

8. クロスアカウントではリソースとキーを両方見る

暗号化済みデータを別アカウントから利用する場合、リソース共有だけでなく対象アカウントが暗号化キーを利用できるかも確認します。

例えばAmazon S3でSSE-KMSのAWSマネージドキー aws/s3を使用したオブジェクトをクロスアカウント利用させる場合、そのキーを外部アカウントへ共有できないため、カスタマーマネージドKMSキーを利用する設計を評価します。

クロスアカウントのデータアクセス
        ↓
リソースアクセス成立?
        +
暗号化キーアクセス成立?
        ↓
両方「はい」で利用可能

9. クロスリージョンでは宛先側も確認する

クロスリージョンコピーでは、送信元側で暗号化されていることだけでは不十分です。宛先リージョンで使用するKMSキーや暗号化設定も確認します。

送信元リージョン暗号化済みリソース
      ↓ コピー
宛先リージョン
      ↓
宛先キー / ポリシー
      ↓
暗号化要件成立?

EBS デフォルト暗号化のようなリージョン単位設定は、別リージョンへ自動展開されたとは判断しません。

10. キーアクセスは移行 / 復旧の依存関係でもある

カスタマーマネージドKMSキーを利用する場合、データリソースへアクセスできても必要なKMS 運用を実行できなければ、復号・復元・コピーが失敗することがあります。

データリソース権限
        +
必要な KMSキーアクセス
        ↓
暗号化済みデータを利用 / コピー / 復元可能

キーポリシーの仕組みそのものではなく、移行・復旧・共有の成立条件としてキーアクセスを確認します。

11. 今後状態と現在状態を分ける

状態確認内容
今後デフォルト暗号化やプロビジョニング標準で新規リソースを適合させる
現在既存データの暗号化状態と使用キーを確認
是正コピー / スナップショット / 復元 / 再暗号化で既存データを適合させる
検証移行後もバックアップ / コピー / 共有が要件を維持するか確認

12. 候補比較

候補評価
デフォルト暗号化だけを有効化今後のリソースには有効でも既存データが未対応の場合がある
プライマリリソースだけ暗号化スナップショット / バックアップ / コピーもコンプライアンス範囲なら不十分
カスタマーマネージドKMSキーへ変更追加キー制御が必要でも既存データの再暗号化は別確認
スナップショット / コピー / 復元で移行インプレース変更できない既存リソースやキー変更で有力
クロスアカウントリソース共有のみ暗号化データではキーアクセスが不足する可能性がある

13. 判断フロー

暗号化要件
        ↓
データ範囲を列挙
        ↓
現在暗号化状態を確認
        ↓
今後のデータは適合?
        ↓
既存データも適合?
│
├─ はい → 共有 / クロスリージョンを確認
│
└─ いいえ
    ↓
インプレース変更可能?
├─ はい → サービス仕様に従い変更
└─ いいえ → スナップショット / コピー / 復元 /
         再暗号化/ 切り替え
        ↓
リソースアクセス+ キーアクセス確認
        ↓
バックアップ / コピー / 復旧も適合?
        ↓
暗号化要件成立

14. 混同ポイント

混同正しい判断
S3は自動暗号化だから古いオブジェクトもすべて暗号化済み新規オブジェクトと既存オブジェクトを分けて確認
EBS デフォルト暗号化で既存ボリュームも暗号化される既存ボリューム / スナップショットへは遡及しない
RDSは変更で後から暗号化を有効にできる既存暗号化されていない DBはスナップショットコピー / 復元等を評価
暗号化済みリソースならKMSキーはその場で変更できるサービスによってはコピー / 復元による再暗号化が必要
クロスアカウントでリソースを共有できれば利用できるリソースアクセスとキーアクセスを両方確認
プライマリリソースが暗号化済みならバックアップも自動的にコンプライアンススナップショット / バックアップ / コピーを個別確認

まとめ

暗号化戦略
=
暗号化方式
+
既存データの是正
+
スナップショット / バックアップ / コピー
+
クロスアカウント / クロスリージョン
+
移行 / 切り替え

重要なのは「最も強いキーを選ぶ」ことではなく、暗号化要件をデータライフサイクル全体で維持することです。

理解確認

このページの内容を12問で確認します。

理解確認12問へ →