Q19 — AWS SAA-C03 第17章

第 19/89 問 | ← 第17章

Q1319. ソフトウェア・アズ・ア・サービス(SaaS)企業が、Amazon S3 を使用してマルチテナント型のデータレイクを運用しています。各テナントのデータは、S3バケット内の分離されたデータパス(パス単位で隔離)に格納されています。このデータレイクは、各テナントごとのカスタム暗号化をサポートしています。同社は、テナントが自身の暗号化キーを用いて、自データの一部(サブセット)のみを暗号化できるようにしたいと考えています。残りのデータは、Amazon S3 管理キーによるサーバーサイド暗号化(SSE-S3)を使用します。また、テナントが提供したキーで暗号化されたオブジェクトについては、別のAWSリージョンにある別のS3バケットへ継続的なデータレプリケーションを設定する必要があります。これらの要件を満たすソリューションはどれですか?

正解: C. 各テナントのデータにS3プレフィックスを使用します。AWS KMSキーによるサーバーサイド暗号化(SSE-KMS)を使用します。プレフィックスベースのクロスリージョンレプリケーション(CRR)を設定し、別のS3バケットへレプリケーションを行います。

解説

これらの要件を満たす正しいソリューションは、選択肢Cです。「各テナントのデータにS3プレフィックスを使用します。AWS KMSキーによるサーバーサイド暗号化(SSE-KMS)を使用します。プレフィックスベースのクロスリージョンレプリケーション(CRR)を設定し、別のS3バケットへレプリケーションを行います。」 ■ 選択肢Cが正しい理由: ・マルチテナント環境におけるS3プレフィックスによる論理的分離 S3プレフィックス(例:tenant-a/、tenant-b/)を活用することで、単一のS3バケット内でテナントデータを論理的に分離でき、選択肢Dのような多数のバケット管理に伴う複雑性や運用負荷を回避できます。 ・テナント独自キーの利用対応(SSE-KMS+カスタマーマネージドCMK) SSE-KMSは、AWSが管理するKMSキー(デフォルト)と、テナントが所有・管理するカスタマーマネージドCMKの両方をサポートします。テナントは、IAMポリシーまたはS3オブジェクトの暗号化設定を通じて、自らのCMKを指定して一部のデータを暗号化できます。その他のデータには、デフォルトのSSE-S3や、AWSが管理するKMSキーによるSSE-KMSを適用可能です。 ・テナント提供キーで暗号化されたデータのプレフィックスベースCRR 暗号化キーを含むオブジェクトのCRRを実現するには、SSE-KMSが必須です(SSE-CはCRRをサポートしません)。プレフィックスベースのCRRを設定すれば、特定のプレフィックス(例:tenant-a/encrypted-data/)に格納された、テナント提供CMKで暗号化されたオブジェクトのみを対象にレプリケーションできます。AWS KMSは、マルチリージョンCMKや手動でのキー複製により、キーのリージョン間同期を自動または手動で処理します。 ■ 他の選択肢が不適切な理由: A:S3プレフィックス+SSE-KMS+タグベースCRR タグベースCRRは、任意のタグに基づくレプリケーションに適しており、本問のように「テナント提供キーで暗号化されたオブジェクトのみを対象とする」という要件には不正確です。プレフィックスベースの方が、暗号化対象のパス範囲を明確かつ正確に制御できます。 B:S3プレフィックス+SSE-C+プレフィックスベースCRR SSE-C(Customer-Provided Keys)は、AWSがキーを保存・管理しないため、CRRをサポートしません。レプリケーションプロセス中、宛先バケットは元のキーなしではオブジェクトを復号できないため、失敗します。 D:テナントごとの個別S3バケット+SSE-C+バケットレベルCRR テナントごとにS3バケットを分ける方式は、スケーラビリティが低く、モニタリング・アクセス制御・コスト管理などの運用負荷が大幅に増加します。さらに、SSE-Cは依然としてCRRをサポートしないため、レプリケーション要件を満たせません。 ■ 選択肢Cの実装ステップ概要: ・S3プレフィックスによるデータ構造化 例:s3://data-lake-bucket/tenant-a/encrypted-data/、s3://data-lake-bucket/tenant-a/default-data/、s3://data-lake-bucket/tenant-b/encrypted-data/ ・SSE-KMS(カスタマーマネージドCMK)の設定 テナントが自身のAWS KMS CMKを提供するか、代行して作成。暗号化が必要なオブジェクトに対して、PUTリクエストまたはバケットポリシーでCMK ARNを指定。 ・プレフィックスベースCRRの設定 S3コンソールで「Management」→「Replication」→「Add rule」を選択。「Prefix-based」を選択し、tenant-a/encrypted-data/などのパスを指定。宛先バケットを別リージョンに設定。「Encryption configuration」で「AWS KMS」を選択し、宛先リージョンに複製済みのCMKを指定(またはAWSが自動生成)。 ・検証 tenant-a/encrypted-data/ へテナントCMKで暗号化したテストオブジェクトをアップロードし、宛先バケットで同一暗号化設定で正しくレプリケートされていることを確認。 ■ 補足考慮事項: ・KMSキーの複製:テナント提供CMKを利用する場合、宛先リージョンへマルチリージョンCMK機能または手動でキーを複製する必要があります。あるいは、リージョンごとに別個のCMKを用意し、IAMポリシーを調整します。 ・コスト最適化:CRRは宛先リージョンでのストレージ料金およびレプリケーションリクエスト料金を発生させます。宛先バケットにはS3 Intelligent-Tieringを適用して長期保存コストを削減できます。 ・セキュリティ・コンプライアンス:CRRに必要な最小権限のIAMロール(S3およびKMS関連アクションのみ許可)を設定。両方のバケットでS3 VersioningおよびMFA Deleteを有効化し、データ保護を強化します。 結論:選択肢Cは、スケーラビリティ、セキュリティ、CRR互換性、運用簡易性のすべてにおいて要件を最もよく満たすソリューションです。