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 S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용하세요.

  • 명령줄 인터페이스 또는 FIPS 를 AWS 통해 에 액세스할 때 140-3 검증 암호화 모듈이 필요한 경우 FIPS 엔드포인트를 API사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 연방 정보 처리 표준(FIPS) 140-3을 참조하세요.

고객의 이메일 주소와 같은 기밀 정보나 중요한 정보는 태그나 이름 필드와 같은 자유 양식 필드에 입력하지 않는 것이 좋습니다. 여기에는 콘솔, 또는 를 사용하여 Amazon MQ 또는 기타 AWS 서비스 로 작업하는 경우가 포함됩니다API AWS CLI AWS SDKs. 이름에 사용되는 태그 또는 자유 형식 텍스트 필드에 입력하는 모든 데이터는 청구 또는 진단 로그에 사용될 수 있습니다. 외부 서버에 URL를 제공하는 경우 해당 서버에 대한 요청을 검증URL하기 위해 에 보안 인증 정보를 포함하지 않는 것이 좋습니다.

ActiveMQ용 Amazon MQ와 RabbitMQ용 Amazon MQ 브로커의 경우 브로커 웹 콘솔 또는 Amazon MQ를 통해 리소스를 생성할 때 브로커 이름 또는 사용자 이름에 개인 식별 정보(PII) 또는 기타 기밀 또는 민감한 정보를 사용하지 마십시오API. 브로커 이름과 사용자 이름은 CloudWatch 로그를 포함한 다른 AWS 서비스에서 액세스할 수 있습니다. 브로커 사용자 이름은 개인 데이터나 민감한 데이터에 사용하기 위한 것이 아닙니다.

암호화(Encryption)

Amazon MQ에 저장된 사용자 데이터는 유휴 시 암호화됩니다. 저장 Amazon MQ 암호화는 ()에 AWS Key Management Service 저장된 암호화 키를 사용하여 데이터를 암호화하여 보안을 강화합니다KMS. 이 서비스를 사용하면 중요한 데이터 보호와 관련된 운영 부담 및 복잡성을 줄일 수 있습니다. 유휴 시 암호화를 사용하면 암호화 규정 준수 및 규제 요구 사항이 필요한, 보안에 민감한 애플리케이션을 구축할 수 있습니다.

Amazon MQ 브로커 간의 모든 연결은 전송 계층 보안(TLS)을 사용하여 전송 중 암호화를 제공합니다.

Amazon MQ는 유휴 상태이거나 전송 중인 메시지를 암호화 키로 암호화하여 안전하게 관리 및 저장합니다. 자세한 내용은 AWS Encryption SDK 개발자 안내서를 참조하세요.

저장 중 암호화

Amazon MQ는 AWS Key Management Service (KMS)와 통합되어 투명한 서버 측 암호화를 제공합니다. Amazon MQ는 유휴 시 데이터를 항상 암호화합니다.

ActiveMQ용 Amazon MQ 브로커 또는 RabbitMQ용 Amazon MQ 브로커를 생성할 때 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 키 선택 - ()에서 AWS Key Management Service 고객 관리형 KMS 키가 생성되고 관리됩니다KMS.

중요
  • 권한 부여 취소는 실행 취소할 수 없습니다. 액세스 권한을 취소해야 하는 경우 브로커를 삭제하는 방법이 있습니다.

  • Amazon Elastic File System(EFS)을 사용하여 메시지 데이터를 저장하는 Amazon Amazon MQ for ActiveMQ 브로커의 경우 Amazon에 계정의 KMS 키를 사용할 수 있는 EFS 권한을 부여하는 권한을 취소하면 즉시 수행되지 않습니다.

  • 메시지 데이터를 저장하는 EBS 데 사용하는 Amazon MQ for RabbitMQAmazon MQ for ActiveMQ 브로커의 경우 계정의 KMS 키를 사용할 수 있는 EBS 권한을 부여하는 권한을 비활성화, 삭제 예약 또는 취소하면 Amazon MQ는 브로커를 유지할 수 없으며 성능이 저하된 상태로 변경될 수 있습니다.

  • 키를 비활성화했거나 키 삭제를 예약한 경우 키를 다시 활성화하거나 키 삭제를 취소하고 브로커를 유지할 수 있습니다.

  • 키 비활성화 또는 권한 부여 취소는 바로 적용되지 않습니다.

RabbitMQ용 KMS 키로 단일 인스턴스 브로커를 생성할 때 에 기록된 두 개의 CreateGrant 이벤트가 표시됩니다 AWS CloudTrail. 첫 번째 이벤트는 KMS 키에 대한 권한을 생성하는 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", "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 키로 클러스터 배포를 생성할 때 에 기록된 5개의 CreateGrant 이벤트가 표시됩니다 AWS CloudTrail. 처음 두 가지 이벤트는 Amazon MQ에 대한 권한을 생성하는 이벤트입니다. 다음 세 가지 이벤트는 에서 EBSEBS를 사용하여 생성한 권한 부여입니다.

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에는 강력한 전송 계층 보안(TLS)이 필요하며 Amazon MQ 배포의 브로커 간에 전송 중인 데이터를 암호화합니다. Amazon MQ 브로커 간에 전달되는 모든 데이터는 강력한 전송 계층 보안()을 사용하여 암호화됩니다TLS. 이것은 사용 가능한 모든 프로토콜에 적용됩니다.

Amazon MQ for RabbitMQ : Amazon MQ for RabbitMQ에는 모든 클라이언트 연결에 강력한 전송 계층 보안(TLS) 암호화가 필요합니다. RabbitMQ 클러스터 복제 트래픽은 브로커의 트래픽만 전송VPC하며 AWS 데이터 센터 간의 모든 네트워크 트래픽은 물리적 계층에서 투명하게 암호화됩니다. RabbitMQ용 Amazon MQ 클러스터 브로커는 현재 클러스터 복제에 노드 간 암호화를 지원하지 않습니다. 에 대한 자세한 내용은 데이터 저장 및 전송 중 암호화를 data-in-transit참조하세요. https://docs.aws.amazon.com/whitepapers/latest/logical-separation/encrypting-data-at-rest-and--in-transit.html

ActiveMQ용 Amazon MQ 프로토콜

TLS 활성화된 다음 프로토콜을 사용하여 ActiveMQ 브로커에 액세스할 수 있습니다.

Amazon MQ에서 ActiveMQ는 다음 암호 제품군을 지원합니다.

  • TLS_ECDHE_RSAWITH_AES__256_GCM_SHA384

  • TLS_ECDHE_RSAWITH_AES_256_CBC_SHA384

  • TLS_ECDHE_RSAWITH_AES_256_CBC_SHA

  • TLS_DHE_RSAWITH_AES_256_GCM_SHA384

  • TLS_DHE_RSAWITH_AES__256_CBC_SHA256

  • TLS_DHE_RSAWITH_AES__256_CBC_SHA

  • TLS_RSA_WITHAES__256_GCM_SHA384

  • TLS_RSA_WITHAES__256_CBC_SHA256

  • TLS_RSA_WITHAES__256_CBC_SHA

  • TLS_ECDHE_RSAWITH_AES__128_GCM_SHA256

  • TLS_ECDHE_RSAWITH_AES__128_CBC_SHA256

  • TLS_ECDHE_RSAWITH_AES__128_CBC_SHA

  • TLS_DHE_RSAWITH_AES__128_GCM_SHA256

  • TLS_DHE_RSAWITH_AES__128_CBC_SHA256

  • TLS_DHE_RSAWITH_AES__128_CBC_SHA

  • TLS_RSA_WITHAES__128_GCM_SHA256

  • TLS_RSA_WITHAES__128_CBC_SHA256

  • TLS_RSA_WITHAES__128_CBC_SHA

RabbitMQ용 Amazon MQ 프로토콜

TLS 활성화된 다음 프로토콜을 사용하여 RabbitMQ 브로커에 액세스할 수 있습니다.

Amazon MQ에서 RabbitMQ는 다음 암호 제품군을 지원합니다.

  • TLS_ECDHE_RSAWITH_AES__256_GCM_SHA384

  • TLS_ECDHE_RSAWITH_AES__128_GCM_SHA256