내용으로 건너뛰기

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

5분 분량
0

AWS Systems Manager의 기능인 Session Manager를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 액세스할 수 없습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

다음과 같은 이유로 인해 Session Manager가 EC2 인스턴스에 연결되지 않을 수 있습니다.

  • Session Manager 사전 요구 사항 누락
  • AWS Identity and Access Management(IAM) 권한 문제
  • 잘못된 Session Manager 기본 설정 구성
  • Session Manager 플러그인 문제
  • 연결 문제

연결 문제의 근본 원인을 파악하고 오류 메시지를 확인하려면 AWS Systems Manager Agent(SSM Agent) 로그를 확인하십시오.

Session Manager 사전 요구 사항을 충족하는지 확인

인스턴스가 관리형 노드를 사용하고 구성이 Session Manager 사전 요구 사항을 준수하는지 확인하십시오. 자세한 내용은 Systems Manager에서 Amazon EC2 인스턴스를 관리형 인스턴스로 표시하지 않는 이유는 무엇입니까?를 참조하십시오.

SSM Agent 버전 3.1.501.0을 실행하는 경우 ssm-cli를 사용하여 인스턴스가 Session Manager 사전 요구 사항을 충족하는지 확인할 수 있습니다. ssm-cli 도구는 Systems Manager가 관리형 인스턴스 목록에 실행 중인 인스턴스를 포함하지 않는 이유를 파악합니다.

IAM 사용자 또는 역할에 필요한 IAM 정책이 있는지 확인

EC2 인스턴스에 연결하는 데 사용하는 IAM 사용자 또는 역할에 Session Manager에 필요한 IAM 정책 및 권한이 있는지 확인합니다.

Session Manager 기본 설정 지정의 문제 해결

AWS KMS 구성 확인

Session Manager에서 AWS Key Management Service(AWS KMS) 암호화를 활성화할 수 있습니다. AWS KMS를 활성화했는데 인스턴스가 AWS KMS 엔드포인트에 연결할 수 없는 경우, 다음과 같은 오류 메시지가 표시됩니다.

"Your session has been terminated for the following reasons: ----------ERROR------- Encountered error while initiating handshake. Handshake timed out. Please ensure that you have the latest version of the session manager plugin."

AWS KMS 엔드포인트에 대한 연결을 확인하려면 다음 명령을 실행합니다.

telnet kms.RegionID.amazonaws.com 443

참고: RegionIDAWS 리전으로 바꾸십시오.

출력에서 AWS KMS 엔드포인트에 연결할 수 없는 것으로 표시되면 AWS KMS 가상 프라이빗 클라우드(VPC) 엔드포인트에 대한 연결을 설정하십시오.

인스턴스 프로파일 또는 IAM 사용자의 키에 대한 kms:Decrypt 권한이 없는 경우 다음과 같은 오류 메시지가 표시됩니다.

"Your session has been terminated for the following reasons: ----------ERROR------- Encountered error while initiating handshake. Fetching data key failed: Unable to retrieve data key, Error when decrypting data key AccessDeniedException: User: arn:aws:sts::account id:assumed-role/instance-profile/instance-id is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:region:account id:key/key-id because no identity-based policy allows the kms:Decrypt action status code: 400"

이 문제를 해결하려면 세션을 암호화하는 데 사용하는 AWS KMS 키에 kms:Decrypt 권한을 추가하십시오.

Session Manager에서 지정한 AWS KMS 키 Amazon 리소스 이름(ARN)이 올바르지 않거나 더 이상 존재하지 않는 경우, 다음과 같은 오류 메시지가 표시됩니다.

"Your session has been terminated for the following reasons: Error calling KMS GenerateDataKey API: NotFoundException: Key 'arn:aws:kms:region:account:key/abcdxyz' does not exist"

이 문제를 해결하려면 AWS KMS 키 ARN을 확인하여 올바른지 확인하십시오.

Amazon S3 구성 확인

Amazon Simple Storage Service(Amazon S3) 버킷에 세션 데이터를 저장할 수 있습니다. 로그 암호화를 사용하고 인스턴스 프로파일에 s3:GetEncryptionConfiguration 권한이 없는 경우 다음과 같은 오류 메시지가 표시됩니다.

"Your session has been terminated for the following reasons: Couldn't start the session because we are unable to validate encryption on Amazon S3 bucket. Error: AccessDenied: User:abcd is not authorized to perform: s3:GetEncryptionConfiguration on resource"

이 문제를 해결하려면 인스턴스 프로파일에 s3:GetEncryptionConfiguration 권한을 추가하십시오.

Session Manager에서 구성한 S3 버킷이 존재하지 않는 경우 다음과 같은 오류 메시지가 표시됩니다.

"Your session has been terminated for the following reasons: Couldn't start the session because we are unable to validate encryption on Amazon S3 bucket. Error: NoSuchBucket: The specified bucket does not exist status code: 404"

이 문제를 해결하려면 Session Manager에서 지정한 버킷이 올바르고 사용 가능한지 확인하십시오.

OS 구성 확인

Linux 인스턴스에서 Run As 지원을 활성화하면 운영 체제(OS) 사용자 자격 증명으로 세션을 시작할 수 있습니다. 그러나 OS 사용자 이름이 존재하지 않으면 다음과 같은 오류 메시지가 표시됩니다.

"Your session has been terminated for the following reasons: ----------ERROR------- Unable to start command: failed to start pty since RunAs user username does not exist "

이 문제를 해결하려면 OS에 맞는 기본 사용자 이름을 사용하거나 사용자 지정 사용자 이름이 정확한지 확인하십시오.

중요: OS 루트 사용자 계정을 사용하여 Session Manager와의 연결을 인증할 수 없습니다.

Session Manager 플러그인 문제 해결

인스턴스의 루트 Amazon Elastic Block Store(Amazon EBS) 볼륨이 가득 차면 SSM Agent가 필요한 파일을 생성할 수 없습니다. 다음과 같은 오류 메시지가 표시됩니다.

"Your session has been terminated for the following reasons: Plugin with name Standard_Stream not found. Step name: Standard_Stream"

이 문제를 해결하려면 Amazon EBS 볼륨 크기를 늘린 다음, 파일 시스템을 확장하십시오. 또는 사용하지 않는 파일을 삭제하여 인스턴스의 디스크 공간을 더 확보하십시오.

AWS CLI를 사용하여 인스턴스에 연결하는 경우 로컬 컴퓨터에 Session Manager 플러그인을 설치해야 합니다. 플러그인을 설치하지 않으면 다음과 같은 오류 메시지가 표시됩니다.

"SessionManagerPlugin is not found. Please refer to SessionManager Documentation here: http://docs.aws.amazon.com/console/systems-manager/session-manager-plugin-not-found"

연결 문제 해결

Session Manager 세션을 시작한 후 커서가 깜박이는 빈 화면이 표시될 수 있습니다. 이 문제가 발생하면 로컬 컴퓨터가 Session Manager 엔드포인트에 연결되지 않을 수 있습니다.

AWS Session Manager 엔드포인트에 대한 연결을 확인하려면 OS에 따라 다음 명령을 실행합니다.

Linux:

telnet ssmmessages.RegionID.amazonaws.com 443

참고: RegionID를 해당 리전으로 바꾸십시오.

Windows:

Test-NetConnection ssmmessages.RegionID.amazonaws.com -port 443

참고: RegionID를 해당 리전으로 바꾸십시오.

인스턴스가 프라이빗 서브넷에 있는 경우, Systems Manager를 사용하여 인터넷 액세스 없이 프라이빗 Amazon EC2 인스턴스를 관리할 수 있도록 Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트를 생성하려면 어떻게 해야 합니까?를 참조하십시오.

기타 문제 해결 시나리오는 AWS Systems Manager Session Manager와 관련된 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

관련 정보

Session Manager 문제 해결

Systems Manager를 통해 SSH 터널을 사용하여 프라이빗 VPC 리소스에 액세스하려면 어떻게 해야 합니까?

Session Manager를 통한 SSH 연결에 대한 권한 허용 및 제어

세션 로깅 활성화 및 비활성화

AWS 공식업데이트됨 5달 전