type
status
date
slug
summary
tags
category
icon
password

理論

1. データ暗号化の基本

データ暗号化は、データが送受信される際に不正アクセスを防ぐための方法です。暗号化により、第三者がデータを傍受しても、内容を理解できないようにします。

対称暗号化 vs 非対称暗号化

  • 対称暗号化:データを暗号化するための鍵(暗号鍵)と復号化するための鍵(復号鍵)が同じです。例えば、AWS KMSの対称キーを使った暗号化がこれに該当します。
  • 非対称暗号化:暗号化用の鍵と復号化用の鍵が異なります。公開鍵で暗号化し、秘密鍵で復号化します。これは、RSA暗号方式のような方式です。

2. AWSの暗号化サービス

AWSは、データの暗号化を管理するためにいくつかのツールを提供しています。

AWS KMS (Key Management Service)

AWS KMSは、対称鍵や非対称鍵の作成、管理、使用を行うサービスです。データの暗号化や復号化を簡単に管理できます。KMSは、AWS内で安全に鍵を保管し、アクセス制御を設定できます。

Lambda@Edge

Lambda@Edgeは、CloudFrontと連携して、エッジロケーションでコードを実行するサービスです。これを使うと、ユーザーのリクエストやレスポンスを動的に処理できます。データの暗号化・復号化など、リクエスト/レスポンスをカスタマイズするために利用されます。

3. CloudFrontと暗号化

CloudFrontは、コンテンツ配信ネットワーク(CDN)サービスで、コンテンツをエンドユーザーに高速に配信します。データがCloudFrontを通過する際に、暗号化を行うためには、公開鍵と秘密鍵のペアを利用することが一般的です。公開鍵を使ってCloudFrontでデータを暗号化し、秘密鍵を使ってデータ処理マイクロサービスで復号化する方法が多く採用されます。

4. セキュリティ要件

  • データの機密性:データが適切に暗号化され、第三者がアクセスできないようにする。
  • アクセス制御:誰が暗号化されたデータにアクセスできるかを制限する。データ処理マイクロサービスだけが復号化できるように鍵を管理します。
  • 暗号鍵の管理:秘密鍵を厳密に管理し、必要なサービスやユーザーだけがアクセスできるようにします。これにより、データのセキュリティを確保します。

5. 最適なアプローチ

  • データを暗号化する際には、最小限のアクセス権限の原則に従い、復号化できるのは特定のサービスやユーザーに限定します。例えば、非対称鍵を使って、CloudFrontでデータを暗号化し、データ処理マイクロサービスが秘密鍵で復号化する方法が最も適切です。
  • Lambda@Edgeなどのツールを使う場合、必要以上に複雑化しないように注意し、シンプルで管理しやすいセキュリティアーキテクチャを設計することが大切です。

まとめ

AWSでのデータ暗号化において、非対称暗号化(RSAキー対など)を使用することで、公開鍵でデータを暗号化し、秘密鍵で復号化する方法が一般的です。CloudFrontRSA暗号方式を組み合わせることで、安全にデータを転送し、復号化は特定のマイクロサービスだけに許可できます。この方法はシンプルで、セキュリティ要件を満たす効果的なアプローチです。
 

実践

一問道場


質問 #303
あるオンラインアンケート会社は、アプリケーションをAWSクラウドで実行しています。アプリケーションは分散型で、Amazon Elastic Container Service(Amazon ECS)クラスターで実行されているマイクロサービスで構成されています。このECSクラスターは、アプリケーションロードバランサー(ALB)のターゲットです。ALBは、Amazon CloudFrontディストリビューションのカスタムオリジンです。
この会社には、機密データを含むアンケートがあります。機密データはアプリケーション内を移動する際に暗号化する必要があります。また、そのデータを復号化できるのは、アプリケーションのデータ処理マイクロサービスだけである必要があります。
この要件を満たすソリューションはどれですか?
A. データ処理マイクロサービス専用の対称AWS Key Management Service(AWS KMS)キーを作成します。フィールドレベルの暗号化プロファイルと構成を作成し、そのKMSキーと構成をCloudFrontのキャッシュ動作に関連付けます。
B. データ処理マイクロサービス専用のRSAキー対を作成します。公開鍵をCloudFrontディストリビューションにアップロードします。フィールドレベルの暗号化プロファイルと構成を作成し、その構成をCloudFrontのキャッシュ動作に追加します。
C. データ処理マイクロサービス専用の対称AWS Key Management Service(AWS KMS)キーを作成します。Lambda@Edge関数を作成し、その関数を使用してKMSキーで機密データを暗号化するようにプログラムします。
D. データ処理マイクロサービス専用のRSAキー対を作成します。Lambda@Edge関数を作成し、その関数を使用してRSAキー対の秘密鍵で機密データを暗号化するようにプログラムします。

解説

質問の要点:

  • アプリケーションは AWSクラウド 上で実行され、Amazon ECS クラスターでマイクロサービスとして動作しています。
  • 機密データはアプリケーション内で移動する際に 暗号化 する必要があります。
  • そして、そのデータを復号化できるのは アプリケーションのデータ処理マイクロサービスだけ である必要があります。
この要件を満たすために最も適切なソリューションはどれかを問う質問です。

各選択肢の解説:

A. データ処理マイクロサービス専用の対称AWS KMSキーを作成します。フィールドレベルの暗号化プロファイルと構成を作成し、そのKMSキーと構成をCloudFrontのキャッシュ動作に関連付けます。

  • AWS KMS(Key Management Service) を使って対称キーを作成し、暗号化と復号化を行う方法です。
  • ただし、この方法ではデータの 暗号化と復号化をKMSが管理 するため、データ処理マイクロサービスだけ が復号化できるという要件を完全には満たせません。
  • KMSキーは複数のリソース(ECS、CloudFrontなど)からアクセス可能 になり、特定のマイクロサービスにのみ復号化を許可することはできません。

B. データ処理マイクロサービス専用のRSAキー対を作成します。公開鍵をCloudFrontディストリビューションにアップロードします。フィールドレベルの暗号化プロファイルと構成を作成し、その構成をCloudFrontのキャッシュ動作に追加します。

  • RSAキー対(公開鍵と秘密鍵)を使用する方法です。
  • 公開鍵はCloudFrontにアップロードされ、データがCloudFrontを通過する際にデータを暗号化します。
  • 秘密鍵はデータ処理マイクロサービス専用にして、これだけがデータを復号化できるようにします。
  • この方法は、要件に完全に適合しています。「データを復号化できるのはデータ処理マイクロサービスだけ」という要件を満たすため、秘密鍵の管理をデータ処理マイクロサービスに限定できます。

C. データ処理マイクロサービス専用の対称AWS KMSキーを作成します。Lambda@Edge関数を作成し、その関数を使用してKMSキーで機密データを暗号化するようにプログラムします。

  • この方法では、Lambda@Edge を使ってデータを暗号化し、AWS KMSを使って暗号化キーを管理します。
  • Lambda@Edgeを使う理由は不明確で、暗号化と復号化の処理が CloudFrontエッジロケーション で行われるため、データの流れが複雑になり、効率的ではない可能性があります。
  • また、Lambda@Edgeを使うことで データ処理マイクロサービス専用の復号化 を実現するのが難しくなります。単純に RSAキー対 を使う方が明確でシンプルです。

D. データ処理マイクロサービス専用のRSAキー対を作成します。Lambda@Edge関数を作成し、その関数を使用してRSAキー対の秘密鍵で機密データを暗号化するようにプログラムします。

  • ここでも RSAキー対 を使用していますが、Lambda@Edge を使って秘密鍵でデータを暗号化しようとしています。
  • 秘密鍵 は復号化専用で、データの暗号化には公開鍵を使うのが正しい方法です。秘密鍵で暗号化するのは誤った使用方法です。
  • さらに、Lambda@Edgeを使う必要がないため、この方法も過剰で複雑です。

結論:

B が最も適切な選択肢です。
  • RSA公開鍵暗号方式を使用し、公開鍵でデータを暗号化し、秘密鍵で復号化するという方法が、要件を満たす最もシンプルで効果的な方法です。
  • データ処理マイクロサービス専用に秘密鍵を管理でき、データの暗号化と復号化の制御が明確に行えます。
これが選択肢 B の正当性の理由です。
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
304-AWS SAP AWS 「理論・実践・一問道場」DHCPオプションセット302-AWS SAP AWS 「理論・実践・一問道場」AWS MGN
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
02-生成AIパスポート試験対策:第2章「生成AI」
2025-2-1
01-生成AIパスポート試験対策:第1章「人口知能」
2025-2-1
究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
2025-1-27
不要再傻傻的直接买NISA啦
2025-1-27
Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
2025-1-24
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
2025-1-22
公告
🎉欢迎访问我的博客🎉
- 感谢您的支持 --
本站点于2024/09/01建立
👏主要分享IT相关主题👏
系统管理:
Redhat…
容器和编排:
Kubernetes、Openshift…
云计算:
AWS、IBM…
AI入门
以及技术笔记和考证经验
定期更新,欢迎互动。
感谢访问!
快速浏览相关标签