Session Manager를 사용하여 Amazon EC2 인스턴스에 연결할 수 없는 이유는 무엇입니까?

최종 업데이트 날짜: 2021년 4월 29일

AWS Systems Manager Session Manager를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 액세스할 수 없습니다. 이 문제를 해결하려면 어떻게 해야 하나요?

해결 방법

Session Manager를 사용한 인스턴스 액세스는 다음과 같은 이유로 실패할 수 있습니다.

  • 잘못된 세션 기본 설정
  • AWS Identity and Access Management(IAM) 권한 문제
  • 인스턴스의 높은 리소스 사용률

Session Manager에 연결할 수 없는 경우 다음을 검토하여 문제를 해결하세요.

Systems Manager 사전 조건 확인

인스턴스가 관리형 인스턴스로 나타나는지 확인한 다음 모든 Session Manager 사전 조건이 충족되었는지 확인합니다. 자세한 내용은 EC2 인스턴스가 Systems Manager 콘솔의 [관리형 인스턴스(Managed Instances)] 아래에 나타나지 않는 이유는 무엇입니까?를 참조하세요.

AWS KMS 구성 문제

Session Manager 오류 메시지를 검토하여 문제 유형을 결정합니다. 그런 다음 관련된 문제 해결 단계를 수행하여 문제를 해결합니다.

오류: "Encountered error while initiating handshake. Handshake timed out. Please ensure that you have the latest version of the session manager plugin"

Session Manager 기본 설정에 AWS Key Management Service(AWS KMS) 암호화가 활성화되어 있지만 인스턴스에서 AWS KMS 엔드포인트에 연결할 수 없습니다.

다음 명령을 실행하여 AWS KMS 엔드포인트에 대한 연결을 확인합니다. RegionID를 사용 중인 AWS 리전으로 바꿉니다.

$ telnet kms.RegionID.amazonaws.com 443

AWS KMS 엔드포인트에 연결하는 방법에 대한 자세한 내용과 지침은 VPC 엔드포인트를 통해 AWS KMS에 연결을 참조하세요.

오류: "Encountered error while initiating handshake. Fetching data key failed: Unable to retrieve data key, Error when decrypting data key AccessDeniedException"

인스턴스 프로파일 또는 사용자에게 세션 암호화에 사용되는 AWS KMS 키에 필요한 kms:Decrypt 권한이 있는지 확인합니다. 자세한 내용은 기존 인스턴스 프로파일에 Session Manager 권한 추가를 참조하세요.

오류: "Invalid Keyname:Your session has been terminated for the following reasons: NotFoundException: Invalid keyId xxxx"

세션 암호화를 위해 Session Manager 기본 설정에 지정된 AWS KMS 키 Amazon 리소스 이름(ARN)이 올바른지 확인합니다. 사용 가능한 키 ARN을 확인한 다음 Session Manager 기본 설정에 지정된 ARN이 사용 가능한 ARN 중 하나와 일치하는지 확인합니다. 자세한 내용은 키 ID 및 ARN 찾기를 참조하세요.

RunAs 사용자 이름이 올바르지 않음

오류: "Invalid RunAs username"

-또는-

오류: "Unable to start shell: failed to start pty since RunAs user xyz does not exist"

[Linux 인스턴스에 대해 다른 사용자로 실행 지원 활성화(Enable Run As support for Linux instances)]가 비어 있거나 올바르지 않은 운영 체제 사용자 이름이 지정된 경우 Session Manager가 실패합니다.

이 문제를 해결하려면 올바른 운영 체제 사용자 이름(예: ubuntu, ec2-user 또는 centos)을 제공하면 됩니다. 그런 다음 세션을 시작하는 IAM 사용자 또는 역할에 SSMSessionRunAs = os-user-account-name 태그가 지정되었는지 확인합니다. 이 사용자 계정은 운영 체제에도 있어야 합니다. 자세한 내용은 Linux 및 macOS 인스턴스에 대해 다른 사용자로 실행 지원 활성화를 참조하세요.

또는 [Linux 인스턴스에 대해 다른 사용자로 실행 지원 활성화(Enable Run As support for Linux instances)]를 선택 취소할 수 있습니다.

세션을 시작한 후 빈 화면이 표시됨

세션을 시작하면 Session Manager에 빈 화면이 표시됩니다. 문제 해결 단계는 세션을 시작한 후 빈 화면이 표시됨을 참조하세요.

기타 문제 해결

자세한 내용 및 기타 문제 해결 시나리오는 AWS Systems Manager Session Manager의 문제를 해결하려면 어떻게 해야 합니까?를 참조하세요.