保管時の暗号化 - Amazon Simple Queue Service

保管時の暗号化

サーバー側の暗号化 (SSE) を使用すると、暗号化されたキューで機密データを送信できます。SSE では、AWS Key Management Service (AWS KMS) で管理されているキーを使用してキュー内のメッセージの内容を保護します。AWS マネジメントコンソール または AWS SDK for Java (および CreateQueueSetQueueAttributesGetQueueAttributes の各アクション) を使用して SSE を管理する方法については、以下のチュートリアルを参照してください。

Amazon SQS が受信したメッセージはすぐに、SSE によって暗号化されます。メッセージは暗号化された形式で保存され、承認済みのコンシューマーに送信された場合のみ、Amazon SQS によって解読されます。

重要

SSE が有効なキューへのすべてのリクエストでは、HTTPS と署名バージョン 4 を使用する必要があります。

Amazon SQS 用 AWS マネージドカスタマーマスターキーを使用する暗号化されたキューを、別の AWS アカウントの Lambda 関数と関連付けることはできません。

AWS Security Token Service AssumeRole アクションを使用して Amazon SQS に通知を送信できる AWS のサービスの一部の機能は SSE と互換性がありますが、スタンダード キューでのみ動作します。

他のサービスと暗号化されたキューとの互換性については、「AWS のサービスの KMS アクセス許可の設定 」とサービスのドキュメントを参照してください。

AWS KMS は、安全で可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供します。AWS KMS と共に Amazon SQS を使用する場合は、メッセージデータを暗号化したデータキーも暗号化され、保護対象のデータと共に格納されます。

AWS KMS を使用する利点は次のとおりです。

  • カスタマーマスターキー (CMK) を自分で作成して管理することができます。

  • AWS で管理されている Amazon SQS 用 CMK を使用することもできます。このキーは、各アカウントおよびリージョンで一意です。

  • AWS KMS のセキュリティ標準は、暗号化関連のコンプライアンス要件を満たすために役立ちます。

詳細については、AWS Key Management Service Developer Guide の「AWS Key Management Service とは」および「AWS Key Management Service 暗号化の詳細」ホワイトペーパーを参照してください。

暗号化スコープ

SSE では、Amazon SQS キュー内のメッセージの本文が暗号化されます。

SSE では、以下は暗号化されません。

  • キューのメタデータ (キュー名と属性)

  • メッセージのメタデータ (メッセージ ID、タイムスタンプ、属性)

  • キューごとのメトリクス

メッセージを暗号化すると、未承認ユーザーまたは匿名ユーザーはそのメッセージを利用できなくなります。これは、Amazon SQS の正常な機能には影響しません。

  • メッセージが暗号化されるのは、キューの暗号化が有効になった後に送信される場合のみです。Amazon SQS では、バックログメッセージの暗号化は行われません。

  • キューの暗号化が無効になっても、暗号化されたメッセージは暗号化された状態で維持されます。

メッセージをデッドレターキューに移動しても、暗号化には影響しません。

  • 暗号化されたソースキューから暗号化されていないデッドレターキューにメッセージが Amazon SQS によって移動された場合も、メッセージは暗号化された状態で維持されます。

  • 暗号化されていないソースキューから暗号化されたデッドレターキューにメッセージが Amazon SQS によって移動された場合、メッセージは暗号化されていない状態で維持されます。

重要な用語

以下の重要な用語は、SSE の機能を理解するうえで役立ちます。詳細については、Amazon Simple Queue Service API Referenceを参照してください。

データキー

データ暗号化キー (DEK) は、Amazon SQS メッセージの内容を暗号化します。

詳細については、AWS 暗号化 SDK 開発者ガイドAWS Key Management Service Developer Guideの「データキー」を参照してください。

データキー再利用期間

Amazon SQS がデータキーを再利用して、もう一度 AWS KMS を呼び出す前にメッセージを暗号化または復号できる時間の長さ (秒)。60 秒 (1 分) ~ 86,400 秒 (24 時間) の秒数を表す整数。デフォルトは 300 (5 分) です。詳細については、「データキー再利用期間について」を参照してください。

注記

万一 AWS KMS に到達できない場合には、接続が再度確立されるまで、Amazon SQS ではキャッシュされたデータキーが継続的に使用されます。

カスタマーマスターキー ID

AWS によってユーザーのアカウント内または別のアカウント内で管理されているカスタマーマスターキー (CMK) またはカスタム CMK— のエイリアス、エイリアス ARN、キー ID、またはキー ARN。AWS で管理されている Amazon SQS 用 CMK のエイリアスは常に alias/aws/sqs ですが、カスタム CMK のエイリアスは、alias/MyAlias のように設定できます。これらの CMK を使用して、Amazon SQS キュー内のメッセージを保護することができます。

注記

以下に留意してください。

  • カスタム CMK を指定しない場合、Amazon SQS は AWS に Amazon SQS 管理の CMK を使用します。カスタム CMK を作成する手順については、AWS Key Management Service Developer Guideの「キーの作成」を参照してください。

  • 初めて AWS マネジメントコンソールを使用してキューに Amazon SQS の AWS 管理の CMK を指定する場合、AWS KMS は Amazon SQS 用に AWS 管理の CMK を作成します。

  • または、SSE が有効なキューで SendMessage または SendMessageBatch アクションを初めて使用する場合、AWS KMS は Amazon SQS の AWS 管理の CMK を作成します。

CMK の作成、CMK の使用方法を制御するポリシーの定義、CMK の使用状況の監査を行うには、AWS KMS コンソールの [カスタマー管理型のキー] セクション、または CreateKey AWS KMS アクションを使用します。詳細については、AWS Key Management Service Developer Guideの「カスタマーマスターキー (CMK)」および「キーの作成」を参照してください。CMK 識別子のその他の例については、AWS Key Management Service API Referenceの「KeyId」を参照してください。CMK ID を見つける方法については、AWS Key Management Service Developer Guideの「キー ID と ARN を検索する」を参照してください。

重要

AWS KMS キーを使用するための追加料金はかかります。詳細については、「AWS KMS コストの見積もり」と「AWS Key Management Service 料金表」を参照してください。

エンベロープ暗号化

暗号化されたデータのセキュリティは、そのデータを復号できるデータキーの保護に一部依存します。Amazon SQS は CMK を使用してデータキーを暗号化し、暗号化されたデータキーは暗号化されたメッセージと共に保存されます。データキーを暗号化するためにマスターキーを使用するこの方法は、エンベロープ暗号化と呼ばれています。

詳細については、AWS 暗号化 SDK 開発者ガイドの「エンベロープ暗号化」を参照してください。