설명
메시지 브로커는 애플리케이션 간 전달 데이터와 연결 정보를 다룹니다. Amazon MQ는 저장 데이터를 항상 암호화하며, 기본적으로 AWS 소유 키를 사용합니다. encryption_options를 생략했다고 평문 저장을 뜻하지는 않습니다.
별도의 키 정책이나 수명주기 관리가 필요한 경우 ActiveMQ 브로커에 고객 관리형 KMS 키를 지정하세요. 기본 키가 조직의 요구사항을 충족하는지도 확인해야 합니다.
잠재적 영향
키 관리 요구사항을 충족하지 못하거나 필요한 키 권한을 잃으면 규정 준수와 브로커 운영에 영향을 줄 수 있습니다. 저장 시 암호화가 메시지 접근 권한이나 전송 구간 보호를 대신하지는 않습니다.
해결 방법
- 기본 키와 고객 관리형 키 중 요구사항에 맞는 방식을 선택하세요. 고객 관리형 키에는
kms_key_id와use_aws_owned_key = false를 지정하세요. - 실제 키와 필요한 권한을 확인하고 Terraform 계획에서 브로커 교체 여부를 검토하세요. 암호화 키 구성 변경은 교체를 요구하므로 메시지 보존과 클라이언트 전환을 계획해야 합니다.
예시
ActiveMQ 설정의 발췌입니다. 참조 리소스와 변수를 정의하고 지원되는 엔진 버전·인스턴스 조합을 선택하세요. 비밀번호는 안전하게 공급하고 값이 저장되는 Terraform 상태에 대한 접근을 제한하세요.
기본 암호화 키 사용
hcl
resource "aws_mq_broker" "mq_broker" {
broker_name = "example"
configuration {
id = aws_mq_configuration.test.id
revision = aws_mq_configuration.test.latest_revision
}
engine_type = "ActiveMQ"
engine_version = var.activemq_engine_version
host_instance_type = "mq.t2.micro"
security_groups = [aws_security_group.test.id]
user {
username = "ExampleUser"
password = var.broker_password
}
}
기본 저장 암호화가 적용됩니다. 별도의 키 관리 요구가 있는지 확인하세요.
고객 관리형 키 지정
hcl
resource "aws_mq_broker" "mq_broker" {
broker_name = "example"
configuration {
id = aws_mq_configuration.test.id
revision = aws_mq_configuration.test.latest_revision
}
engine_type = "ActiveMQ"
engine_version = var.activemq_engine_version
host_instance_type = "mq.t2.micro"
security_groups = [aws_security_group.test.id]
user {
username = "ExampleUser"
password = var.broker_password
}
encryption_options {
kms_key_id = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
use_aws_owned_key = false
}
}
예시 ARN을 같은 리전의 실제 사용 가능한 키 ARN으로 바꾸세요. 키 지정만으로 메시지 권한이나 네트워크 구성이 완성되지는 않습니다.