설명
Session Manager는 세션 통신에 기본적으로 TLS를 사용합니다. kmsKeyId를 생략했다고 세션이 평문으로 전송되는 것은 아닙니다. KMS 설정은 지원되는 세션 유형에서 이 기본 보호에 추가 암호화 계층을 제공합니다.
운영 명령과 응답에 조직이 관리하는 키를 추가로 적용해야 한다면, 실제 세션에 사용하는 문서와 키 권한을 함께 구성해야 합니다.
잠재적 영향
추가 KMS 암호화를 요구하는 운영 기준을 충족하지 못할 수 있습니다. 키 권한이 잘못되면 세션 시작이 실패할 수 있으며, 추가 암호화도 과도한 운영 접근 권한을 대신 제한하지는 않습니다.
해결 방법
- 필요한 경우 지원되는 Session 문서의
inputs.kmsKeyId에 대칭 KMS 키를 지정하세요. - 세션 시작 사용자와 관리형 노드 모두에 필요한 키 권한을 부여하고 지원되는 SSM Agent를 사용하세요.
- 실제 세션 시작에 이 문서가 사용되는지 확인하고 새 세션으로 연결을 검증하세요. 세션 로그의 저장 위치와 암호화는 별도로 설정하세요.
예시
Standard_Stream 세션 환경설정의 발췌입니다. 로그 암호화 플래그만으로 로그 대상이 지정되지는 않으므로 필요한 로그 저장 설정은 별도로 준비하세요.
기본 TLS 보호
hcl
resource "aws_ssm_document" "example" {
name = "test_document"
document_type = "Session"
content = <<DOC
{
"schemaVersion": "1.0",
"description": "Session preferences",
"sessionType": "Standard_Stream",
"inputs": {
"s3EncryptionEnabled": true,
"cloudWatchEncryptionEnabled": true,
"cloudWatchStreamingEnabled": true,
"runAsEnabled": false
}
}
DOC
}
추가 KMS 키를 지정하지 않으며 기본 TLS 보호는 유지됩니다.
추가 KMS 암호화
hcl
resource "aws_ssm_document" "example" {
name = "test_document"
document_type = "Session"
content = <<DOC
{
"schemaVersion": "1.0",
"description": "Session preferences",
"sessionType": "Standard_Stream",
"inputs": {
"s3EncryptionEnabled": true,
"cloudWatchEncryptionEnabled": true,
"cloudWatchStreamingEnabled": true,
"runAsEnabled": false,
"kmsKeyId": "${var.kms_key_id}"
}
}
DOC
}
var.kms_key_id에 실제 키를 지정하고 이 문서를 사용하는 세션에 필요한 권한을 준비하세요. 사용자 정의 문서를 만드는 것만으로 모든 세션에 자동 적용되지는 않습니다.