Amazon CloudFront におけるデータ保護
AWS の責任共有モデル
データを保護するため、AWS アカウント 認証情報を保護し、AWS IAM Identity Center または AWS Identity and Access Management (IAM) を使用して個々のユーザーをセットアップすることをお勧めします。この方法により、それぞれのジョブを遂行するために必要な権限のみが各ユーザーに付与されます。また、次の方法でデータを保護することもお勧めします:
-
各アカウントで多要素認証 (MFA) を使用します。
-
SSL/TLS を使用して AWS リソースと通信します。TLS 1.2 は必須であり TLS 1.3 がお勧めです。
-
AWS CloudTrail で API とユーザーアクティビティロギングをセットアップします。CloudTrail 証跡を使用して AWS アクティビティをキャプチャする方法については、「AWS CloudTrail ユーザーガイド」の「Working with CloudTrail trails」を参照してください。
-
AWS のサービス 内のすべてのデフォルトセキュリティ管理に加え、AWS 暗号化ソリューションを使用します。
-
Amazon Macie などの高度なマネージドセキュリティサービスを使用します。これらは、Amazon S3 に保存されている機密データの検出と保護を支援します。
-
コマンドラインインターフェイスまたは API を使用して AWS にアクセスする際に FIPS 140-3 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「連邦情報処理規格 (FIPS) 140-3
」を参照してください。
お客様のメールアドレスなどの機密情報や重要な情報を、タグや自由形式のテキストフィールド (名前フィールドなど) に入力しないよう強くお勧めします。これは、コンソール、API、AWS CLI、または AWS SDK を使用して CloudFront やその他の AWS のサービスを使用する場合も同様です。名前に使用する自由記述のテキストフィールドやタグに入力したデータは、課金や診断ログに使用される場合があります。外部サーバーへの URL を提供する場合は、そのサーバーへのリクエストを検証するための認証情報を URL に含めないように強くお勧めします。
Amazon CloudFront には、配信するコンテンツを保護するために使用できるいくつかのオプションがあります。
-
HTTPS 接続を設定します。
-
フィールドレベルの暗号化を構成して、転送中の特定のデータのセキュリティを強化します。
-
コンテンツへのアクセスを制限して、特定の人々、または特定のエリアのユーザーだけが閲覧できるようにします。
以下のトピックでオプションについて詳しく説明します。
転送時の暗号化
転送中にデータを暗号化するには、Amazon CloudFront がビューワーと通信するときに接続が暗号化されるように、ビューワーが HTTPS を使用してファイルをリクエストするように CloudFront を設定します。また、オリジンからファイルを取得する際に CloudFront が HTTPS を使用するように設定すると、CloudFront とオリジンとの通信で接続が暗号化されます。
詳細については、「CloudFront で HTTPS を使用する」を参照してください。
フィールドレベル暗号化では、HTTPS と共にセキュリティのレイヤーが追加されます。これにより、システムの処理中に特定のデータに特定のアプリケーションのみがアクセスできるように、そのデータを保護できます。CloudFront でフィールドレベルの暗号化を設定することで、ユーザーが送信した機密情報をウェブサーバーに安全にアップロードできます。クライアントが提供した機密情報は、ユーザーに近いエッジで暗号化され、アプリケーションスタック全体で暗号化されたままになります。これにより、データを必要とするアプリケーションのみが (復号化するための認証情報があれば) そのデータを復号化できます。
詳細については、「フィールドレベル暗号化を使用した機密データの保護」を参照してください。
CloudFront API エンドポイント (cloudfront.amazonaws.com
、cloudfront-fips.amazonaws.com
) は HTTPS トラフィックのみ受け入れます。つまり、CloudFront API を使用して情報を送受信すると、データ (ディストリビューション設定、キャッシュポリシーとオリジンリクエストポリシー、キーグループとパブリックキー、CloudFront Functions の関数コードなど) は常に転送中に暗号化されます。さらに、CloudFront API エンドポイントに送信されたすべてのリクエストは、AWS 認証情報で署名され、AWS CloudTrail に記録されます。
CloudFront Functions の関数コードと設定は、エッジロケーション POP (Points Of Presence)、および CloudFront で使用される他のストレージロケーション間でコピーされると、転送時に常に暗号化されます。
保管中の暗号化
CloudFront Functions の関数コードと設定は、エッジロケーション POP や、CloudFront で使用されるその他のストレージロケーションに、常に暗号化された形式で保存されます。
コンテンツへのアクセス制限
インターネット経由でコンテンツを配信する多くの企業が、ユーザーのサブセットのドキュメント、ビジネスデータ、メディアストリーム、またはコンテンツに対して、アクセスを制限する必要があると考えています。Amazon CloudFront を使用してこのコンテンツを安全に供給するには、以下の 1 つ以上の方法を使用できます。
- 署名付き URL または署名付き Cookie を使用する
-
署名付き URL または署名付き Cookie を使用して CloudFront を介してこの非公開コンテンツを配信することで、選択したユーザー、たとえば有料のユーザーを対象としたコンテンツへのアクセスを制限できます。詳細については、「署名付き URL と署名付き Cookie を使用したプライベートコンテンツを提供する」を参照してください。
- Amazon S3 バケットのコンテンツへのアクセスを制限する
-
例えば、CloudFront 署名付き URL または署名付き Cookie を使用してコンテンツへのアクセスを制限する場合は、ファイルの直接 URL を使用して、ユーザーがファイルを表示できないようにします。代わりに、CloudFront URL を使用してファイルへのアクセスのみ許可するため、正常に保護されます。
CloudFront ディストリビューションのオリジンとして Amazon S3 バケットを使用する場合は、S3 バケットへのアクセスを制限することができるオリジンアクセスコントロール (OAC) を設定できます。詳細については、「Amazon Simple Storage Service オリジンへのアクセスを制限する」を参照してください。
- Application Load Balancer が提供するコンテンツへのアクセスを制限する
-
オリジンとして、Elastic Load Balancing の Application Load Balancer で CloudFront を使用する場合、ユーザーが Application Load Balancer に直接アクセスできないように CloudFront を設定できます。これにより、ユーザーは CloudFront 経由でしか Application Load Balancer にアクセスできず、CloudFront を使用するメリットを得ることができます。詳細については、「Application Load Balancer へのアクセスを制限する」を参照してください。
- AWS WAF ウェブ ACL の使用
-
ウェブアプリケーションファイアウォールサービスである AWS WAF を使用して、コンテンツへのアクセスを制限するためのウェブアクセス制御リスト (ウェブ ACL) を作成できます。指定した条件 (リクエスト送信元の IP アドレス、クエリ文字列の値など) に基づいて、CloudFront はリクエストされたコンテンツを返すか、HTTP 403 ステータスコード (Forbidden) を返すことで、リクエストに応答します。詳細については、「AWS WAF 保護を使用する」を参照してください。
- 地域制限を使用する
-
地域制限 (地理的ブロッキング) を使用すると、CloudFront ディストリビューションを通じて配信しているコンテンツについて、特定地域のユーザーによるアクセスを回避できます。地域制限を設定するときに選択できるオプションがいくつかあります。詳細については、「コンテンツの地理的配分を制限する」を参照してください。