대표적인 VM 인스턴스 SSH 접속 방법은 아래와 같다.
-
콘솔에서 SSH로 접속

-
키가 있을 경우 키를 갖고 접속
ssh -i <키 파일> <사용자 이름>@<외부 IP>
- IAP 사용
default 네트워크를 사용하는 경우 0.0.0.0/0에 대해 SSH가 허용되어 있지만 커스텀 네트워크를 사용하는 경우 방화벽에서 35.235.240.0/20(IAP IP)에 대해 SSH를 허용해줘야 한다

gcloud compute ssh --zone=<zone> <vm 이름> --tunnel-through-iap
- OS Login 사용
그리고 OS Login이 있다.
gcloud compute ssh --zone <zone> <vm 이름> --project <프로젝트 이름>
OS Login

- IAM 권한 기반으로 VM에 대한 액세스를 제어할 수 있는 기능
- OS Login이 사용설정되면 Linux 사용자 계정을 사용자의 Google ID에 직접 연결할 수 있으므로 같은 프로젝트 또는 조직의 모든 인스턴스에서 동일한 Linux 계정 정보가 사용된다.
- 관리자는 온프레미스에 설정된 AD(Active Directory) 및 LDAP(Lightweight Directory Access Protocol)의 Linux 계정 정보를 동기화하도록 선택할 수 있다. 예를 들어 사용자가 클라우드 환경과 온프레미스 환경 모두에서 동일한 사용자 ID(UID)를 사용하도록 할 수 있음.
- Root 접근 제한 가능
- 개별 VM 또는 프로젝트의 모든 VM에 대해 OS Login 활성화 가능
- VM에 2단계 인증 적용 가능
Google OTP
문자 or 전화
디바이스에서 Google 알림받기
보안 키 사용
VM 생성시 OS Login 설정

기존에 있던 VM에 OS Login 설정
(OS Login만 설정할 수는 있지만 OS Login 설정 없이 2FA 설정할 수는 없음)

프로젝트에서 생성되는 VM 전체에 적용할 시 Compute Engine의 메타데이터에 태그를 달아주면 된다.

VM에 액세스할 사용자에게 권한 부여
OS Login 설정을 통해 필요한 권한을 확인할 수 있다.
- osLogin - sudo 안됨
- osAdminLogin - sudo 가능


OS Login으로 접속
Username은 기본적으로 "계정명_도메인"으로 만들어지게 된다.

2FA 인증 적용 후 접속

[OS Login 참고]
https://www.youtube.com/watch?reload=9&v=I29400R8tXg