【GCP】GCE에서 외부 IP 주소가 할당된 VM 인스턴스에 SSH 연결할 수 없음

2363 단어 SSHgcpgce
GCE에서 외부 IP 주소가 할당된 VM 인스턴스에 SSH 연결할 수 없는 경우의 대응 방법 중 하나를 소개합니다.

상황


  • 직접 만든 VPC 네트워크에 VM 인스턴스 만들기
  • 만든 VM 인스턴스에 외부 IP 주소가 할당되었습니다.
  • 아래 명령을 실행했지만 오류가 발생합니다.
    $ gcloud beta compute ssh --zone "ゾーン名" "VMインスタンス名" --project "GCPプロジェクト名"
    
    # エラー内容
    ssh: connect to host 34.84.16.138 port 22: Operation timed out
    ERROR: (gcloud.beta.compute.ssh) [/usr/bin/ssh] exited with return code [255].
    

    이 경우의 해결 방법


  • 연결 소스 IP 주소에서 tcp 프로토콜의 22 번 포트에 대한 액세스를 허용하는 방화벽 규칙을 만드는 것만으로 OK
  • VM 인스턴스에 tag를 설정하고있는 경우, Firewall 규칙으로 tag를 지정해도 OK

  • 공식 문서


  • h tps : // c ぉ d. 오, ぇ. 코 m / 코 m 뿌테 / 드 cs / t 로 b 〇 쇼오 친 g / t 로 ぇ 쇼오 친 g sh? hl = 그럼
  • 엄청나게 자세하게 다양한 패턴에 대해 쓰고 있기 때문에, 이쪽을 제대로 읽으면 대부분의 경우는 해결할 것 같다

  • 해설



    GCP VPC 네트워크의 특징



    AWS는 외부에서 액세스할 수 있는 인스턴스를 제공하기 위해 VPC, 서브넷, IGW, 라우팅 및 보안 그룹을 제공해야 합니다.

    GCP의 경우 VPC 네트워크를 만드는 것만으로 서브넷, 인터넷 게이트웨이, 라우팅, Firewall 등 다양한 것을 자동으로 만들어 줍니다.
    그래서 GCP에서는 기본적으로 VPC 네트워크를 만들고 그 안에 외부 IP 주소를 가진 VM 인스턴스를 시작하는 것만으로 외부 네트워크와 연결할 수 있는 상태가 됩니다.

    암시적인 Firewall 규칙



    GCP의 모든 VPC 네트워크에는 두 개의 암시적인 Firewall 규칙이 있습니다.
  • 대부분의 다운 링크 트래픽 허용
  • 모든 업 링크 트래픽 거부

  • (상세 -> htps : // c ぉ d. 오, ぇ. 이 m/vpc/어느 cs/vpc? hl = 그럼 # 아후 ぃ ぃ d_ 레소 r s )
    VPC 네트워크를 만들면 절대적으로 존재하는 Firewall 규칙이 됩니다.
    이 암시적 규칙은 콘솔에 표시되지 않습니다. 그래서 편집할 수 없습니다.

    위에서 볼 수 있듯이 암시적인 방화벽 규칙은 VM 인스턴스로 향하는 트래픽을 거부합니다.
    따라서 새로 Firewall 규칙을 설정하여 VM 인스턴스에 SSH 연결할 수 있도록 합니다.

    방화벽 규칙 만들기



    연결 소스 IP 주소에서 tcp 프로토콜의 22번 포트에 대한 액세스를 허용하는 Firewall 규칙을 만듭니다.
    VM 인스턴스에 tag를 붙이고 있는 경우는, tag를 설정해 주는 편이 좋다고 생각합니다.

    작성한 Firewall 규칙은 다음과 같이 느껴집니다.




    GCP는 여러가지 것을 마음대로 해 주기 때문에 편한 면도 있습니다만, 마음대로 여러가지 되고 있기 때문에 번거로운 면도 있네요😅

    좋은 웹페이지 즐겨찾기