Amazon MQ 的資料保護 - Amazon MQ

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon MQ 的資料保護

AWS 共同責任模型適用於 Amazon MQ 中的資料保護。如本模型所述, AWS 負責保護執行所有 的全域基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。您也同時負責所使用 AWS 服務 的安全組態和管理任務。如需資料隱私權的詳細資訊,請參閱資料隱私權。 FAQ如需歐洲資料保護的相關資訊,請參閱AWS 安全部落格 上的AWS 共同責任模型和GDPR部落格文章。

為了資料保護目的,我們建議您保護 AWS 帳戶 憑證,並使用 AWS IAM Identity Center 或 AWS Identity and Access Management () 設定個別使用者IAM。如此一來,每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料:

  • 對每個帳戶使用多重要素驗證 (MFA)。

  • 使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 和 建議 TLS 1.3。

  • 使用 設定 API 和使用者活動日誌 AWS CloudTrail。如需使用 CloudTrail 線索擷取 AWS 活動的資訊,請參閱 AWS CloudTrail 使用者指南 中的使用 CloudTrail 線索

  • 使用 AWS 加密解決方案,以及 中的所有預設安全控制項 AWS 服務。

  • 使用進階的受管安全服務 (例如 Amazon Macie),協助探索和保護儲存在 Amazon S3 的敏感資料。

  • 如果您在 AWS 透過命令列介面或 FIPS 存取 時需要 140-3 個經過驗證的密碼編譯模組API,請使用 FIPS端點。如需可用FIPS端點的詳細資訊,請參閱聯邦資訊處理標準 (FIPS) 140-3

我們強烈建議您絕對不要將客戶的電子郵件地址等機密或敏感資訊,放在標籤或自由格式的文字欄位中,例如名稱欄位。這包括當您使用 Amazon MQ 或其他 AWS 服務 使用主控台API AWS CLI、 或 時 AWS SDKs。您在標籤或自由格式文字欄位中輸入的任何資料都可能用於計費或診斷日誌。如果您將 URL提供給外部伺服器,強烈建議您在 中不要包含憑證資訊,URL以驗證您對該伺服器的請求。

對於 Amazon MQ for ActiveMQ 和 Amazon MQ for RabbitMQ 代理程式,在透過代理程式 Web 主控台或 Amazon MQ 建立資源時,請勿將任何個人識別資訊 (PII) 或其他機密或敏感資訊用於代理程式名稱或使用者名稱API。其他 AWS 服務可存取代理程式名稱和使用者名稱,包括 CloudWatch Logs。代理程式使用者名稱不適用於私有或敏感資料。

加密

存放在 Amazon MQ 中的使用者資料會靜態加密。Amazon MQ 靜態加密透過使用 () AWS Key Management Service 中存放的加密金鑰加密您的資料,提供增強的安全性KMS。此服務協助降低了保護敏感資料所涉及的操作負擔和複雜性。您可以透過靜態加密,建立符合加密合規和法規要求,而且對安全性要求甚高的應用程式。

Amazon MQ 代理程式之間的所有連線都會使用 Transport layer Security (TLS) 來提供傳輸中的加密。

Amazon MQ 使用其安全管理和儲存的加密金鑰來加密靜態和傳輸中的訊息。如需詳細資訊,請參閱AWS Encryption SDK 開發人員指南》

靜態加密

Amazon MQ 與 AWS Key Management Service (KMS) 整合,以提供透明的伺服器端加密。Amazon MQ 一律會在靜態時加密您的資料。

當您建立 Amazon MQ for ActiveMQ 代理程式或 Amazon MQ for RabbitMQ 代理程式 AWS KMS key 時,您可以指定要 Amazon MQ 用來加密靜態資料的 。如果您未指定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) 是帳戶中的KMS金鑰,由 Amazon MQ 代表您建立、管理和使用。

  • 選取現有的客戶受管KMS金鑰 — 客戶受管KMS金鑰是由您在 (KMS) 中 AWS Key Management Service 建立和管理。

重要
  • 撤銷授予是無法復原的。如果您需要撤銷存取權限,我們建議您改為刪除代理程式。

  • 對於使用 Amazon MQ Elastic File System () 來儲存訊息資料的 Amazon ActiveMQ 代理程式,如果您撤銷授予 Amazon EFS許可以在您的帳戶中使用KMS金鑰的授予,將不會立即發生。 Amazon Elastic File System EFS

  • 對於使用 EBS儲存訊息資料的 Amazon MQ for RabbitMQAmazon MQ for ActiveMQ 代理程式,如果您停用、排程刪除或撤銷授予 Amazon EBS許可以使用您帳戶中的KMS金鑰的授予,Amazon MQ 將無法維護您的代理程式,並且可能會變更為降級狀態。

  • 如果您已停用金鑰或已排定該金鑰的刪除時程,您可以重新啟用金鑰或取消金鑰刪除作業,保持代理程式的維護狀態。

  • 停用金鑰或撤銷授予不會立即執行。

使用 RabbitMQ 的KMS金鑰建立單一執行個體代理程式時,您會看到在 中記錄的兩個CreateGrant事件 AWS CloudTrail。第一個事件是 Amazon MQ 為KMS金鑰建立授予。第二個事件正在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授予的事件。

{ "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金鑰建立叢集部署時,您會看到登入 的五個CreateGrant事件 AWS CloudTrail。前兩個事件是 Amazon MQ 的授權建立。接下來的三個事件是由 建立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授予的事件。

{ "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 KMS keys 中的 。 AWS Key Management Service

傳輸中加密

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 叢集複寫流量只會在 AWS 資料中心之間傳輸代理程式VPC和所有網路流量,並在實體層透明加密。Amazon MQ for RabbitMQ 叢集化代理程式目前不支援叢集複寫的節點間加密。若要進一步了解 data-in-transit,請參閱加密靜態資料和傳輸中資料。

Amazon MQ for ActiveMQ 通訊協定

您可以使用下列TLS已啟用的通訊協定來存取 ActiveMQ 代理程式:

Amazon MQ 上的 ActiveMQ 支援下列密碼套件:

  • TLS_ECDHE_RSA_WITHAES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITHAES_256_CBC_SHA384

  • TLS_ECDHE_RSA_WITHAES_256_CBC_SHA

  • TLS_DHE_RSA_WITHAES_256_GCM_SHA384

  • TLS_DHE_RSA_WITHAES_256_CBC_SHA256

  • TLS_DHE_RSA_WITHAES_256_CBC_SHA

  • TLS_RSA_WITHAES_256_GCM_SHA384

  • TLS_RSA_WITHAES_256_CBC_SHA256

  • TLS_RSA_WITHAES_256_CBC_SHA

  • TLS_ECDHE_RSA_WITHAES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITHAES_128_CBC_SHA256

  • TLS_ECDHE_RSA_WITHAES_128_CBC_SHA

  • TLS_DHE_RSA_WITHAES_128_GCM_SHA256

  • TLS_DHE_RSA_WITHAES_128_CBC_SHA256

  • TLS_DHE_RSA_WITHAES_128_CBC_SHA

  • TLS_RSA_WITHAES_128_GCM_SHA256

  • TLS_RSA_WITHAES_128_CBC_SHA256

  • TLS_RSA_WITHAES_128_CBC_SHA

Amazon MQ for RabbitMQ 通訊協定

您可以使用下列TLS已啟用的通訊協定來存取 RabbitMQ 代理程式:

Amazon MQ 上的 RabbitMQ 支援下列密碼套件:

  • TLS_ECDHE_RSA_WITHAES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITHAES_128_GCM_SHA256