Amazon MQ のデータ保護 - Amazon MQ

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

Amazon MQ のデータ保護

Amazon MQ でのデータ保護には、AWS の責任共有モデルが適用されます。このモデルで説明されているように、AWS は、AWS クラウド のすべてを実行するグローバルインフラストラクチャを保護する責任を担います。ユーザーには、このインフラストラクチャでホストされているコンテンツに対する管理を維持する責任があります。また、使用する AWS のサービスのセキュリティ設定と管理タスクにも責任があります。データプライバシーの詳細については、データプライバシーのよくある質問を参照してください。欧州でのデータ保護の詳細については、AWS セキュリティブログに投稿されたAWS 責任共有モデルおよび GDPRのブログ記事を参照してください。

データを保護するため、AWS アカウント の認証情報を保護し、AWS IAM Identity Center または AWS Identity and Access Management (IAM) を使用して個々のユーザーをセットアップすることをお勧めします。こうすると、それぞれのジョブを遂行するために必要なアクセス許可のみを各ユーザーに付与できます。また、次の方法でデータを保護することをお勧めします。

  • 各アカウントで多要素認証 (MFA) を使用します。

  • SSL/TLS を使用して AWS リソースと通信します。TLS 1.2 が必須です。TLS 1.3 が推奨されます。

  • AWS CloudTrail で API とユーザーアクティビティログをセットアップします。

  • AWS のサービス内でデフォルトである、すべてのセキュリティ管理に加え、AWS の暗号化ソリューションを使用します。

  • Amazon Macie などの高度なマネージドセキュリティサービスを使用します。これらは、Amazon S3 に保存されている機密データの検出と保護を支援します。

  • コマンドラインインターフェイスまたは API を使用して AWS にアクセスするときに FIPS 140-2 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「連邦情報処理規格 (FIPS) 140-2」を参照してください。

顧客の E メールアドレスなどの機密情報や重要情報は、タグや Name フィールドなどの自由形式のフィールドに入力しないことを強くお勧めします。これには、コンソール、API、AWS CLI、または AWS SDK を使用して Amazon MQ またはその他の AWS のサービス で作業する場合が含まれます。名前に使用する自由記述のテキストフィールドやタグに入力したデータは、課金や診断ログに使用される場合があります。外部サーバーへ URL を提供する場合は、そのサーバーへのリクエストを検証するための認証情報を URL に含めないように強くお勧めします。

Amazon MQ for ActiveMQ と Amazon MQ for RabbitMQ ブローカーのどちらでも、ブローカーのウェブコンソールまたは Amazon MQ API を使用してリソースを作成するときに、ブローカー名またはユーザー名に個人を特定できる情報 (PII) またはその他の秘密情報や機密情報を使用しないでください。ブローカー名とユーザー名は、CloudWatch Logs を含む他の AWS サービスからアクセスできます。ブローカーのユーザー名は、プライベートデータや機密データとして使用することを意図していません。

暗号化

Amazon MQ に保存されているユーザーデータは、保管中暗号化されています。Amazon MQ による保管時の暗号化は、AWS Key Management Service (KMS) に保存されている暗号化キーを使用してデータを暗号化することによって、セキュリティを強化します。このサービスは、機密データの保護における負担と複雑な作業を減らすのに役立ちます。保管時に暗号化することで、セキュリティを重視したアプリケーションを構築して、暗号化のコンプライアンスと規制の要件を満たすことができます。

Amazon MQ ブローカー間のすべての接続は、転送時の暗号化を提供するために Transport layer Security (TLS) を使用します。

Amazon MQ は、Amazon MQ がセキュアな方法で管理して保存する暗号化キーを使用して、保管中および転送中のメッセージを暗号化します。詳細については、AWS Encryption SDK デベロッパーガイドを参照してください。

保管中の暗号化

Amazon MQ は、透過的なサーバー側暗号化を提供するために AWS Key Management Service (KMS) と統合します。Amazon MQ は、保管中のデータを常に暗号化します。

Amazon MQ for ActiveMQ ブローカーまたは Amazon MQ for RabbitMQ ブローカーを作成するときは、保管中のデータの暗号化に Amazon MQ が使用する AWS KMS key を指定できます。KMS キーを指定しない場合、Amazon MQ は自動的に AWS 所有の KMS キーを作成し、ユーザーに代わってそれを使用します。Amazon MQ は現在、対称 KMS キーをサポートしています。KMS キーに関する詳細については、「AWS KMS keys」を参照してください。

ブローカーを作成するときに以下のいずれかを選択することによって、Amazon MQ が暗号化キーに何を使用するかを選択できます。

  • Amazon MQ 所有の KMS キー (デフォルト) – キーは Amazon MQ が所有、管理し、ユーザーのアカウントにはありません。

  • AWS マネージド KMS キー – AWS マネージド KMS キー (aws/mq) は、Amazon MQ がユーザーに代わって作成、管理、および使用する、ユーザーのアカウントにある KMS キーです。

  • 既存のカスタマーマネージド KMS キーを選択する – カスタマーマネージド KMS キーは、ユーザーが AWS Key Management Service (KMS) で作成し、管理します。

重要
  • 付与の取り消しを元に戻すことはできません。アクセス権を取り消す必要がある場合は、ブローカーを削除することをお勧めします。

  • Amazon Elastic File System (EFS) を使用してメッセージデータを保存する Amazon MQ for ActiveMQ ブローカーの場合、アカウントで KMS キーを使用する許可を Amazon EFS に提供する付与を取り消すと、すぐには有効にはなりません。

  • EBS を使用してメッセージデータを保存する Amazon MQ for RabbitMQ ブローカーおよび Amazon MQ for ActiveMQ ブローカー場合、アカウントで KMS キーを使用する許可を Amazon EBS に提供する付与を無効にした、削除をスケジュールした、または取り消した場合、Amazon MQ はブローカーを維持できず、パフォーマンスが低下する可能性があります。

  • キーを無効にした場合、またはキーの削除をスケジュールした場合は、キーを再び有効にするか、キーの削除をキャンセルして、ブローカーの機能を維持できます。

  • キーを無効にするか、付与を取り消しても、すぐには有効にはなりません。

RabbitMQ の KMS キーを使用して単一インスタンスブローカーを作成すると、2 つの CreateGrant イベントが AWS CloudTrail に記録されます。最初のイベントは、Amazon MQ による KMS キー用の許可の作成です。2 つ目のイベントは、EBS による EBS 用の許可の作成です。

mq_grant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/AmazonMqConsole", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/AmazonMqConsole", "accountId": "111122223333", "userName": "AmazonMqConsole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-02-23T18:59:10Z", "mfaAuthenticated": "false" } }, "invokedBy": "mq.amazonaws.com" }, "eventTime": "2018-06-28T22:23:46Z", "eventSource": "amazonmq.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.0", "userAgent": "PostmanRuntime/7.1.5", "requestParameters": { "granteePrincipal": "mq.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:316438333700:key/bdbe42ae-f825-4e78-a8a1-828d411c4be2", "retiringPrincipal": "mq.amazonaws.com", "operations": [ "CreateGrant", "Decrypt", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "DescribeKey" ] }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
EBS grant creation

EBS の許可の作成に関するイベントが 1 つ表示されます。

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "mq.amazonaws.com" }, "eventTime": "2023-02-23T19:09:40Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "mq.amazonaws.com", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "granteePrincipal": "mq.amazonaws.com", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "constraints": { "encryptionContextSubset": { "aws:ebs:id": "vol-0b670f00f7d5417c0" } }, "operations": [ "Decrypt" ], "retiringPrincipal": "ec2.us-east-1.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventCategory": "Management" }

RabbitMQ の KMS キーを使用してクラスターのデプロイを作成すると、5 つの CreateGrant イベントが AWS CloudTrail に記録されます。最初の 2 つのイベントは、Amazon MQ 用の許可の作成です。次の 3 つのイベントは、EBS による EBS 用の許可の作成です。

mq_grant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/AmazonMqConsole", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/AmazonMqConsole", "accountId": "111122223333", "userName": "AmazonMqConsole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-02-23T18:59:10Z", "mfaAuthenticated": "false" } }, "invokedBy": "mq.amazonaws.com" }, "eventTime": "2018-06-28T22:23:46Z", "eventSource": "amazonmq.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.0", "userAgent": "PostmanRuntime/7.1.5", "requestParameters": { "granteePrincipal": "mq.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:316438333700:key/bdbe42ae-f825-4e78-a8a1-828d411c4be2", "retiringPrincipal": "mq.amazonaws.com", "operations": [ "CreateGrant", "Encrypt", "Decrypt", "ReEncryptFrom", "ReEncryptTo", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "DescribeKey" ] }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
mq_rabbit_grant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/AmazonMqConsole", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/AmazonMqConsole", "accountId": "111122223333", "userName": "AmazonMqConsole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-02-23T18:59:10Z", "mfaAuthenticated": "false" } }, "invokedBy": "mq.amazonaws.com" }, "eventTime": "2018-06-28T22:23:46Z", "eventSource": "amazonmq.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.0", "userAgent": "PostmanRuntime/7.1.5", "requestParameters": { "granteePrincipal": "mq.amazonaws.com", "retiringPrincipal": "mq.amazonaws.com", "operations": [ "DescribeKey" ], "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
EBS grant creation

EBS の許可の作成に関する 3 つのイベントが表示されます。

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "mq.amazonaws.com" }, "eventTime": "2023-02-23T19:09:40Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "mq.amazonaws.com", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "granteePrincipal": "mq.amazonaws.com", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "constraints": { "encryptionContextSubset": { "aws:ebs:id": "vol-0b670f00f7d5417c0" } }, "operations": [ "Decrypt" ], "retiringPrincipal": "ec2.us-east-1.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventCategory": "Management" }

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

転送中の暗号化

Amazon MQ for ActiveMQ: Amazon MQ for ActiveMQ は強力な Transport Layer Security (TLS) を必要とし、Amazon MQ デプロイのブローカー間で転送されるデータを暗号化します。Amazon MQ ブローカー間で渡されるすべてのデータは、強力な Transport Layer Security (TLS) を使用して暗号化されています。これはすべての利用可能なプロトコルに当てはまります。

Amazon MQ for RabbitMQ: Amazon MQ for RabbitMQ は、すべてのクライアント接続に強力な Transport Layer Security (TLS) 暗号化を必要とします。RabbitMQ クラスターレプリケーショントラフィックはブローカーの VPC を通過するだけで、AWS データセンター間のすべてのネットワークトラフィックは物理層で透過的に暗号化されます。Amazon MQ for RabbitMQ クラスター化ブローカーは、現在、クラスターレプリケーションのノード間暗号化をサポートしていません。転送中のデータの詳細については、「保管中および転送中のデータの暗号化」を参照してください。

Amazon MQ for ActiveMQ のプロトコル

ActiveMQ ブローカーには、TLS が有効化されている以下のプロトコルを使用してアクセスできます。

ActiveMQ on Amazon MQ は、以下の暗号スイートをサポートしています。

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA

  • TLS_RSA_WITH_AES_256_GCM_SHA384

  • TLS_RSA_WITH_AES_256_CBC_SHA256

  • TLS_RSA_WITH_AES_256_CBC_SHA

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256

  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA

  • TLS_RSA_WITH_AES_128_GCM_SHA256

  • TLS_RSA_WITH_AES_128_CBC_SHA256

  • TLS_RSA_WITH_AES_128_CBC_SHA

Amazon MQ for RabbitMQ のプロトコル

RabbitMQ ブローカーには、TLS が有効化されている以下のプロトコルを使用してアクセスできます。

RabbitMQ on Amazon MQ は、以下の暗号スイートをサポートしています。

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256