IAP(Identity-Aware Proxy)를 사용하여 Linux VM에 연결


이 문서에서는 IAP(Identity-Aware Proxy) TCP 전달을 사용하여 내부 IP 주소를 통해 가상 머신(VM) 인스턴스에 연결하는 방법을 설명합니다.

IAP TCP 전달을 사용하면 SSH 연결을 VM에 전달할 수 있는 암호화된 터널을 설정할 수 있습니다. IAP를 사용하는 VM에 연결할 때 IAP는 연결을 VM으로 전달하기 전에 HTTPS 내에서 SSH 연결을 래핑합니다. 그런 다음 IAP는 필수 IAM 권한이 있는지 확인하고, 있는 경우 VM에 대한 액세스 권한을 부여합니다.

외부 IP 주소가 없는 VM에 연결해야 하는 경우 IAP를 사용할 수 없으면 내부 전용 VM의 연결 옵션에 나열된 다른 방법을 검토하세요.

시작하기 전에

  • IAP에서 연결을 사용 설정하도록 방화벽 규칙을 만듭니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

지원되는 운영체제

이러한 연결 방법은 Compute Engine에서 사용할 수 있는 모든 공개 Linux 이미지에 지원됩니다. Fedora CoreOS 이미지의 경우 이러한 방법을 사용하기 전에 SSH 액세스를 설정해야 합니다.

VM에 연결

VM에 연결하려면 다음 탭 중 하나의 단계를 완료하세요.

콘솔

다음과 같이 브라우저에서 SSH를 통해 연결하여 VM의 내부 IP 주소를 통해 SSH 연결을 터널링합니다.

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

gcloud

--tunnel-through-iap 플래그와 함께 gcloud compute ssh 명령어를 사용하여 VM의 내부 IP 주소를 통해 SSH 연결을 터널링합니다.

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  1. 다음 명령어를 실행하여 VM에 연결합니다.

    gcloud compute ssh VM-NAME \
        --tunnel-through-iap
  2. VM_NAME을 연결하려는 VM의 이름으로 바꿉니다.

IAP 데스크톱

IAP 데스크톱을 사용하여 VM에 연결하려면 다음을 수행하세요.

  1. 아직 설치하지 않았다면 워크스테이션에 IAP 데스크톱을 설치합니다.

  2. IAP 데스크톱을 엽니다. 프로젝트 추가 창이 열립니다.

  3. 메시지가 표시되면 연결하려는 VM이 있는 프로젝트에 대한 액세스 권한이 있는 Google 계정을 사용하여 로그인합니다.

  4. 프로젝트 추가 창에서 연결하려는 VM이 포함된 프로젝트의 프로젝트 ID 또는 이름을 입력합니다.

  5. 프로젝트 탐색기 창에서 VM 이름을 다시 마우스 오른쪽 버튼으로 클릭하고 연결을 선택하여 VM에 연결합니다.

PuTTY 앱

다음을 수행하여 PuTTY를 사용하여 VM의 내부 IP 주소를 통해 SSH 연결을 터널링합니다.

  1. 아직 추가하지 않았으면 VM에 SSH 키를 추가합니다.
  2. 워크스테이션에 PuTTY 앱이 아직 설치되지 않았으면 PuTTY 패키지 파일을 다운로드합니다.
  3. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하고 연결하려는 VM의 이름을 찾습니다.

    VM 인스턴스로 이동

  4. PuTTY 앱을 엽니다. 연결 구성 창이 열립니다.
  5. Host Name 필드에 SSH 키와 연관된 사용자 이름 및 연결할 VM의 이름을 입력합니다. 다음 형식을 사용합니다.

    USERNAME@VM_NAME

    다음을 바꿉니다.

    • USERNAME: 사용자 이름. 메타데이터에서 SSH 키를 관리하는 경우, 사용자 이름은 SSH 키를 만들 때 지정한 사용자 이름입니다. OS 로그인 계정의 경우 사용자 이름이 Google 프로필에 정의되어 있습니다. 예를 들면 cloudysanfrancisco_example_com 또는 cloudysanfrancisco입니다.
    • NAME: VM의 이름입니다.
  6. 카테고리 메뉴에서 연결 > SSH > 인증으로 이동합니다.
  7. 인증용 비공개 키 파일 필드에서 VM에 추가한 공개 파일에 해당하는 비공개 SSH 키 파일을 선택합니다.
  8. 카테고리 메뉴에서 연결 > 프록시로 이동합니다.
  9. 프록시 유형 섹션에서 로컬을 선택합니다.
  10. Telnet command, or local proxy command(Telnet 명령어 또는 로컬 프록시 명령어) 필드에 다음 명령어를 입력합니다.

    gcloud.cmd compute start-iap-tunnel VM_NAME PORT_NUMBER --listen-on-stdin --project=PROJECT_ID --zone=ZONE

    다음을 바꿉니다.

    • VM_NAME: 연결할 VM의 이름
    • PORT_NUMBER: sshd 데몬이 실행되는 포트입니다. 기본 PORT_NUMBER 값은 22입니다.
    • PROJECT_ID: 연결할 VM을 호스팅하는 프로젝트
    • ZONE: VM이 있는 영역
  11. 열기를 클릭하여 VM에 연결합니다.

문제 해결

실패한 SSH 연결 진단 및 해결 방법을 찾으려면 SSH 문제 해결을 참조하세요.

다음 단계