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キー対など)を使用することで、公開鍵でデータを暗号化し、秘密鍵で復号化する方法が一般的です。CloudFrontとRSA暗号方式を組み合わせることで、安全にデータを転送し、復号化は特定のマイクロサービスだけに許可できます。この方法はシンプルで、セキュリティ要件を満たす効果的なアプローチです。
実践
略
一問道場
質問 #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 の正当性の理由です。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/175d7ae8-88e2-80ed-bf4e-f049b546a1ef
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章