翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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/
のように設定できます。これらの KMS キーで Amazon SQS キューのメッセージを保護することができます。MyAlias
注記
以下に留意してください。
-
カスタム 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 デベロッパーガイドの「エンベロープ暗号化」を参照してください。