205-AWS SAP AWS 「理論・実践・一問道場」RequireSSL

 

理論

S3とCloudFrontを使ったデータの暗号化

AWSで静的コンテンツをホストする際に、データを転送中および保存中に暗号化することは非常に重要です。ここでは、Amazon S3とAmazon CloudFrontを使用してデータの暗号化を強制する方法について説明します。

1. S3のサーバー側暗号化(SSE)

S3では、データを「保存中」に暗号化するためのサーバー側暗号化(SSE)を使用できます。これにより、S3にアップロードされたすべてのデータが自動的に暗号化されます。SSEには主に以下の方法があります:
  • SSE-S3: S3が管理する暗号化キーを使用。
  • SSE-KMS: AWS Key Management Service (KMS)によって管理される暗号化キーを使用。
  • SSE-C: 顧客が管理する暗号化キーを使用。
これを有効にすることで、S3に保存されたデータがすべて暗号化され、データの安全性が保証されます。

2. CloudFrontでのHTTPS強制

CloudFrontは、S3からコンテンツをキャッシュして配信するCDN(コンテンツ配信ネットワーク)です。データがインターネット上を移動する際、転送中の暗号化を確保するために、HTTPからHTTPSへのリダイレクトを設定することが重要です。これにより、ユーザーとCloudFront間、さらにCloudFrontとS3間の通信が常に暗号化され、データが盗聴されるリスクを防ぎます。

3. S3バケットポリシーで暗号化を強制

S3では、バケットポリシーを使用して、暗号化されていないデータのアップロードを拒否することができます。このポリシーを設定することで、すべてのデータが暗号化されることを強制できます。例えば、暗号化されていないオブジェクトがS3に保存されるのを防ぐポリシーを設定できます。

4. 署名付きURLでHTTPSの強制

署名付きURLを使用する場合、RequireSSLオプションを設定して、S3バケットへのアクセスが常にHTTPSで行われるように強制することができます。これにより、特に一時的なアクセスを提供する場合でも、通信が暗号化されることを確保できます。

結論

AWSでのデータ暗号化を確保するためには、保存時の暗号化と転送時の暗号化の両方を適切に設定することが重要です。S3のサーバー側暗号化を有効にし、CloudFrontでHTTPSリダイレクトを設定することで、データのセキュリティを確保し、法的要件や企業のセキュリティポリシーに準拠することができます。
 

実践

一問道場

問題 #205
トピック 1
ある企業が静的コンテンツをホストする新しいウェブサイトを設計しています。このウェブサイトでは、ユーザーが大きなファイルをアップロードおよびダウンロードできるようにします。企業の要求によると、すべてのデータは転送中と保存中の両方で暗号化される必要があります。ソリューションアーキテクトは、Amazon S3とAmazon CloudFrontを使用してソリューションを構築しています。
どの手順の組み合わせが暗号化要件を満たしますか?(3つ選んでください。)
A. ウェブアプリケーションが使用するS3バケットに対して、S3サーバー側暗号化を有効にする。
B. S3 ACLの読み書き操作に対して、「aws:SecureTransport":"true"」というポリシー属性を追加する。
C. ウェブアプリケーションが使用するS3バケットで、暗号化されていない操作を拒否するバケットポリシーを作成する。
D. CloudFrontで、AWS KMSキーを使用したサーバー側暗号化(SSE-KMS)による保存時の暗号化を設定する。
E. CloudFrontでHTTPリクエストをHTTPSリクエストにリダイレクトする設定を行う。
F. ウェブアプリケーションが使用するS3バケットに対して、署名付きURL作成時に「RequireSSL」オプションを使用する。

解説

この問題では、ウェブサイトが静的コンテンツをホストし、ユーザーが大きなファイルをアップロードおよびダウンロードするため、すべてのデータが「転送中」および「保存中」で暗号化される必要があります。以下の選択肢の組み合わせで、暗号化要件を満たす方法を説明します。

正解の選択肢

  1. A. ウェブアプリケーションが使用するS3バケットに対して、S3サーバー側暗号化を有効にする。
      • S3のサーバー側暗号化を有効にすることで、S3に保存されるすべてのデータが保存時に暗号化されます。これにより、データは「保存中」も暗号化されます。
  1. C. ウェブアプリケーションが使用するS3バケットで、暗号化されていない操作を拒否するバケットポリシーを作成する。
      • バケットポリシーを使って、暗号化されていないデータの保存を防ぐことができます。これにより、暗号化されていないデータがS3にアップロードされることを防ぎ、暗号化が必須であることを保証します。
  1. E. CloudFrontでHTTPリクエストをHTTPSリクエストにリダイレクトする設定を行う。
      • CloudFrontでHTTPリクエストをHTTPSにリダイレクトすることによって、データの「転送中」の暗号化が強制されます。これにより、ユーザーとCloudFront間でやり取りされるデータがすべてHTTPSで暗号化されます。

なぜ他の選択肢は正解ではないか?

  • B. S3 ACLの読み書き操作に対して、「aws:SecureTransport":"true"」というポリシー属性を追加する。
    • これはS3のアクセスコントロールリスト(ACL)に基づいたポリシーですが、実際にはバケットポリシーを使用する方がより適切です。バケットポリシーを使って暗号化の強制をする方が効果的です。
  • D. CloudFrontで、AWS KMSキーを使用したサーバー側暗号化(SSE-KMS)による保存時の暗号化を設定する。
    • CloudFront自体では保存時の暗号化を設定することはできません。SSE-KMSによる保存時の暗号化は、S3に保存されたデータに適用されるものであり、CloudFrontには関係ありません。
  • F. ウェブアプリケーションが使用するS3バケットに対して、署名付きURL作成時に「RequireSSL」オプションを使用する。
    • 署名付きURLに「RequireSSL」オプションを設定することは、データ転送をHTTPSに強制するために使われますが、この設定だけでは全体的な暗号化要件(保存時と転送時の暗号化)を満たすことにはなりません。

まとめ

  • 保存時の暗号化: S3のサーバー側暗号化を有効にする(選択肢A)。
  • 転送時の暗号化: CloudFrontでHTTPSへのリダイレクトを設定する(選択肢E)。
  • 暗号化の強制: S3バケットポリシーを使用して暗号化されていない操作を拒否する(選択肢C)。
206-AWS SAP AWS 「理論・実践・一問道場」204-AWS SAP AWS 「理論・実践・一問道場」AWS Backup
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録