본문으로 건너뛰기

[EC2] Private EC2 SSM 접속 가이드

Prerequisite

  • AWS 계정 접근 권한: IAM Role 생성 및 EC2 설정을 변경할 수 있는 권한이 필요합니다.

  • VPC 네트워크 환경: 아래와 같이 대상 Private Subnet이 외부 통신이 가능해야 합니다.

    • SSM 전용 VPC 엔드포인트 생성

    • Subnet의 트래픽이 NAT Gateway를 통해 외부로 아웃바운드 허용

Process

1. IAM 역할(Role) 생성 및 설정

EC2 인스턴스가 SSM 서비스와 통신할 수 있는 권한을 부여하는 단계입니다.

  1. AWS Console에서 IAM 서비스로 이동합니다.

     

  2. 역할(Roles) 메뉴를 클릭합니다.

     

  3. 역할 생성(Create role) 버튼을 클릭합니다.

     

  4. 신뢰할 수 있는 엔티티 유형에서 AWS 서비스를 선택하고, 하단 사용 사례에서 EC2를 선택합니다.

     

  5. 권한 정책 검색창에 AmazonSSMManagedInstanceCore를 입력하고 해당 정책을 체크합니다.

    • (Notice: 이 정책은 SSM 기능을 사용하기 위한 필수 최소 권한입니다.)
       
  6. 역할 이름을 입력하고(예: EC2-SSM-Role) 생성을 완료합니다.

     

2. EC2 인스턴스 구성

대상 EC2 인스턴스에 위에서 생성한 권한을 연결합니다.

  • IAM 역할 연결

    1. EC2 콘솔에서 대상 인스턴스를 선택합니다.

       

    2. 인스턴스를 선택해 인스턴스 목록을 확인합니다.

       

    3. 해당 인스턴스를 선택하고 작업(Actions) > 보안(Security) > IAM 역할 수정(Modify IAM role)을 클릭합니다.

       

    4. 앞서 생성한 IAM Role (예 : EC2-SSM-Role )을 선택하고 저장합니다.

3. 로컬 환경 설정 (필수 설치)

로컬 터미널에서 EC2에 접속하기 위해 필요한 도구들을 설치합니다.

  1. AWS CLI 설치

    • macOS: 터미널에서 brew install awscli 명령어를 실행합니다.

    • Windows: AWS 공식 사이트에서 [AWSCLIV2.msi] 설치 파일을 다운로드하여 실행합니다.

      • 여기를 클릭하시면 공식 설치 사이트로 이동됩니다.
    • 설치 후 터미널에 aws --version을 입력하여 버전 정보를 확인합니다.

  2. Session Manager Plugin 설치

    • (중요) AWS CLI만으로는 접속이 불가능하며, 반드시 이 플러그인이 설치되어야 합니다.

    • macOS: 서명된 설치 관리자를 사용하여 Session Manager 플러그인을 설치하려면(macOS) 터미널에서

      • Apple 실리콘 탑재 Mac

        curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac_arm64/session-manager-plugin.pkg" -o "session-manager-plugin.pkg"
      • Intel 칩이 탑재 된 Mac

        curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/session-manager-plugin.pkg" -o "session-manager-plugin.pkg"
    • Windows: 다음 URL을 PowerShell에 입력하여 설치 관리자를 다운로드합니다.

      https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionManagerPluginSetup.exe
    • 설치 후 터미널/Pow에 session-manager-plugin을 입력하여 설치 성공 메시지를 확인합니다.

4. AWS Access Key 발급

CLI 사용을 위해 IAM 사용자 자격 증명(Access Key)을 생성합니다.

  1. AWS Console 우측 상단의 계정 이름을 클릭하고 보안 자격 증명(Security credentials)을 선택합니다.

     

    • (또는 IAM 대시보드 -> 사용자 -> 본인 ID 클릭 -> 보안 자격 증명 탭 이동)
  2. 액세스 키(Access keys) 섹션에서 액세스 키 만들기(Create access key) 버튼을 클릭합니다.

     

  3. 사용 사례로 CLI(Command Line Interface)를 선택하고, 하단의 확인 체크박스를 선택 후 다음을 누릅니다.

     

  4. 설명 태그는 생략 가능하며 액세스 키 만들기를 클릭합니다.

     

  5. (중요) .csv 파일 다운로드를 클릭하여 키 파일을 안전한 곳에 저장합니다.

    • Access Key ID: 공개되어도 식별 가능한 ID입니다.

    • Secret Access Key: 비밀번호와 같습니다. 이 화면을 벗어나면 다시는 확인할 수 없으므로 반드시 지금 복사하거나 다운로드해야 합니다.

5. AWS CLI 자격 증명 설정

로컬 터미널이 AWS 리소스에 접근할 수 있도록 인증 정보를 입력합니다.

  1. 터미널에서 다음 명령어를 실행합니다.

    aws configure
  2. 발급받은 액세스 키 정보를 차례대로 입력합니다.

    • AWS Access Key ID: (액세스 키 입력)

    • AWS Secret Access Key: (시크릿 키 입력)

    • Default region name: ap-northeast-2 (서울 리전인 경우)

    • Default output format: json

5. 접속 테스트 (Start Session)

설정이 완료되었으므로 터미널을 통해 Private EC2에 접속합니다.

  1. AWS 콘솔에서 접속하려는 인스턴스 ID (예: i-0xxxx)를 확인합니다.

  2. 터미널에서 아래 명령어를 입력합니다.

    aws ssm start-session --target <인스턴스-ID>
    • 예시: aws ssm start-session --target i-0123456789abcdef0
  3. sh-4.2$ 또는 bash-4.2$와 같은 쉘 프롬프트가 출력되면 접속 성공입니다!

Trouble Shooting

접속 명령어 입력 시 에러가 발생하거나 반응이 없는 경우 확인 사항입니다.

  • An error occurred (TargetNotConnected)...

    • EC2 인스턴스가 실행 중(Running) 상태인지 확인합니다.

    • IAM 역할(AmazonSSMManagedInstanceCore) 연결 후 약 5~10분이 지났는지 확인합니다. (Agent 초기화 시간 필요)

  • 반응 없이 멈춰 있는 경우

    • Private Subnet의 라우팅 테이블에 NAT Gateway가 연결되어 있는지 확인합니다.

또 다른 질문이 있으십니까? 문의 등록