SSM 세션의 추가 KMS 암호화 설정 점검

Session Manager의 기본 TLS 보호와 추가 KMS 암호화 요구사항을 구분하세요.

설명

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에 실제 키를 지정하고 이 문서를 사용하는 세션에 필요한 권한을 준비하세요. 사용자 정의 문서를 만드는 것만으로 모든 세션에 자동 적용되지는 않습니다.

참조