Amazon SQS での保管中の暗号化 - Amazon Simple Queue Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SQS での保管中の暗号化

サーバー側の暗号化 (SSE)では、機密データを暗号化されたキューで送信できます。SSEは、SQS マネージド暗号化キー(SSE-SQS)または AWS Key Management Service でマネージドされているキー (SSE-KMS) を使用して、キューのメッセージの内容を保護します。AWS Management Console SSEを使用したタグの管理については、以下を参照してください。

AWS SDK for Java を使用して(CreateQueueまたはSetQueueAttributesの各GetQueueAttributesアクション)SSEを管理する方法については、以下の例を参照してください:

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

重要

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

デフォルトキー (Amazon SQS の AWS マネージド KMS キー) を使用した暗号化されたキューは、別な AWS アカウント の Lambda 関数を呼び出せません。

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

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

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

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

  • お客様自身で AWS KMS keys を作成および管理できます。

  • アカウントとリージョンごとに固有である AWS マネージド KMS キーを Amazon SQS に使用することもできます。

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

詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS Key Management Service とは」を参照してください。

暗号化スコープ

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

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

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

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

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

メッセージを暗号化すると、未承認ユーザーまたは匿名ユーザーはそのメッセージを利用できなくなります。SSE を有効にすると、暗号化されたキューへの匿名の SendMessage リクエストと ReceiveMessage リクエストは拒否されます。Amazon SQS セキュリティベストプラクティスでは、匿名リクエストを使用しないことを推奨しています。Amazon SQS キューに匿名リクエストを送信する場合は、必ず SSE を無効にしてください。これは、Amazon SQSの正常な機能には影響しません。

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

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

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

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

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

重要な用語

以下の重要なキーは、SSEの機能を理解するうえで役立ちます。詳細については、「Amazon Simple キューサ-ビス API リファレンス」を参照してください。

データキー

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

詳細については、AWS Encryption SDKデベロッパーガイド。の「AWS Key Management Serviceデベロッパーガイドデータキー」を参照してください。

データキー再利用期間

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

注記

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

KMS キー ID

お客様アカウントまたは別のアカウントにある AWS マネージド KMS キーまたはカスタム KMS キーのエイリアス、エイリアス ARN、キー ID またはキー ARN。Amazon SQS の AWS マネージド KMS キーのエイリアスは常に alias/aws/sqs ですが、カスタム KMS キーのエイリアスは alias/MyAlias のように設定できます。これらの KMS キーで Amazon SQS キューのメッセージを保護することができます。

注記

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

  • カスタム KMS キーを指定しない場合、Amazon SQS は Amazon SQS 用の AWS マネージド KMS キーを使用します。

  • 初めて AWS Management Console を使用してキュー用に Amazon SQS の AWS マネージド KMS キーを指定する場合、AWS KMS は Amazon SQS の AWS マネージド KMS キーを作成します。

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

KMS キーの作成、KMS キーの使用方法を制御するポリシーの定義、AWS KMS コンソールまたは CreateKey AWS KMS アクションの [Customer managed keys] (カスタマーマネージドキー) セクションで KMS キーの使用状況を監査することができます。詳しい情報については、AWS Key Management Service デベロッパーガイドKMS キーおよびキー作成をご参照ください。KMS キー識別子の詳しい例については、AWS Key Management Service API リファレンスKeyId をご参照ください。KMS キー識別子の検索については、AWS Key Management Service デベロッパーガイドキー ID と ARN の検索を参照してください。

重要

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

エンベロープ暗号化

暗号化されたデータのセキュリティは、復号できるデータキーを保護することによって部分的に異なります。Amazon SQS は KMS キーを使用してデータキーを暗号化し、暗号化されたデータキーは暗号化されたメッセージと一緒に保存されます。データキーを暗号化するために KMS キーを使用するこの方法は、エンベロープ暗号化と呼ばれます。

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