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을 권장합니다.

  • AWS CloudTrail(으)로 API 및 사용자 활동 로깅을 설정합니다.

  • AWS 암호화 솔루션을 AWS 서비스 내의 모든 기본 보안 제어와 함께 사용합니다.

  • Amazon S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용합니다.

  • 명령행 인터페이스 또는 API를 통해 AWS에 액세스할 때 FIPS 140-2 검증된 암호화 모듈이 필요한 경우, FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 FIPS(Federal Information Processing Standard) 140-2를 참조하십시오.

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

Amazon MQ for ActiveMQ와 Amazon MQ for RabbitMQ 브로커용의 경우 브로커 웹 콘솔 또는 Amazon MQ API를 통해 리소스를 생성할 때 브로커 이름이나 사용자 이름에 개인 식별 정보(PII) 또는 기타 기밀 정보 또는 민감한 정보를 사용하지 마십시오. 브로커 이름과 사용자 이름을 통해 CloudWatch Logs를 포함하여 다른 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 owned KMS key)(기본값) - 이 키는 Amazon MQ가 소유하고 관리하며 사용자 계정에 없습니다.

  • AWS 관리형 KMS 키 - AWS 관리형 KMS 키(aws/mq)는 사용자 계정의 KMS 키로, Amazon MQ가 사용자 대신 생성, 관리 및 사용합니다.

  • 기존 고객 관리형 KMS 키 선택 - 고객 관리형 KMS 키는 사용자가 AWS Key Management Service(KMS)에서 생성하고 관리합니다.

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

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

  • EBS를 사용하여 메시지 데이터를 저장하는 RabbitMQ용 Amazon MQActiveMQ용 Amazon MQ 브로커의 경우 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 키를 사용하여 클러스터 배포를 생성하면 5개의 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 권한 생성에 대한 이벤트가 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 단원을 참조하세요.

전송 중 암호화

ActiveMQ용 Amazon MQ: ActiveMQ용 Amazon MQ는 강력한 전송 계층 보안(TLS)을 요구하며 사용자의 Amazon MQ 배포 브로커 간에 전송 중 데이터를 암호화합니다. Amazon MQ 브로커 사이를 통과하는 모든 데이터는 강력한 전송 계층 보안(TLS)을 사용하여 암호화됩니다. 이것은 사용 가능한 모든 프로토콜에 적용됩니다.

RabbitMQ용 Amazon MQ: RabbitMQ용 Amazon MQ는 모든 클라이언트 연결에 강력한 전송 계층 보안(TLS) 암호화를 요구합니다. RabbitMQ 클러스터 복제 트래픽은 브로커의 VPC만 통과하며 AWS 데이터 센터 간의 모든 네트워크 트래픽은 물리 계층에서 투명하게 암호화됩니다. RabbitMQ용 Amazon MQ 클러스터 브로커는 현재 클러스터 복제에 노드 간 암호화를 지원하지 않습니다. 전송 중 데이터에 대한 자세한 내용은 저장 데이터 및 전송 중 데이터 암호화를 참조하세요.

ActiveMQ용 Amazon MQ 프로토콜

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

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

  • 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

RabbitMQ용 Amazon MQ 프로토콜

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

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

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256