2024. 5. 27. 12:00ㆍ공부/GCP
https://growth-coder.tistory.com/281
[GCP] public Compute Engine 생성하기
GCP에서 public Compute Engine을 생성하자. Compute Engine은 Google Cloud Ploatform에서 가상 머신을 만들거나 실행할 수 있게 해주는 서비스이다. AWS로 따지자면 EC2의 역할을 한다고 보면 된다. GCP에 가입하
growth-coder.tistory.com
이전 포스팅에서 public Compute Engine을 생성해보았다.
public Compute Engine의 단점은 인터넷을 통해 직접적으로 compute engine에 접근하기 때문에 보안이 약하다고 볼 수 있다.
그래서 직접적인 인터넷 연결을 막고 간접적으로 연결할 수 있도록 private compute engine을 사용하는 것이 좋다.
private compute engine을 사용하면 어떻게 이 vm에 접근할 수 있을까?
1. bastion host
첫 번째로 bastion Host를 사용하는 방법이 있다.
bastion host를 생성해서 인터넷 연결을 열어두고 이 bastion host를 통해서 private compute engine에 접근하는 방법이다.
대표적인 방법이지만 private compute engine에 접근하기 위해서 public compute engine을 하나 더 생성해야 한다.
즉 compute engine 비용이 두 배 발생할 수 있다.
2. IAP TCP 전달
두 번째 방법으로는 GCP 제공해주는 IAP를 사용하여 private compute engine에 접근하는 방법이 있다.
IAP는 Identity-Aware Proxy로 간접적으로 private compute engine에 접근할 수 있도록 해준다.
IAP TCP 전달 설정을 해서 private compute engine에 접근해보자.
이 부분은 공식 문서에 굉장히 자세하게 나와있기 때문에 공식 문서를 보고 따라해도 문제는 없다.
https://cloud.google.com/iap/docs/using-tcp-forwarding?hl=ko
TCP 전달을 위한 IAP 사용 | IAP(Identity-Aware Proxy) | Google Cloud
의견 보내기 TCP 전달을 위한 IAP 사용 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 IAP(Identity-Aware Proxy) TCP 전달을 사용하여 외부 IP 주소가
cloud.google.com
private compute engine 생성
private compute engine을 만드는 방법은 간단하다.
ip 주소를 부여하지 않으면 된다.
먼저 compute engine과 연결할 서브넷을 생성하자.
이름, 리전, 영역, 머신 구성은 이전 포스팅과 똑같이 구성하고 고급 옵션 -> 네트워킹 부분만 수정하면 된다.
기존 default 네트워크 인터페이스는 삭제하고 네트워크 인터페이스를 하나 추가하자.
서브 네트워크에 위에서 만든 서브넷을 선택하고 외부 IPv4 주소에 없음을 선택하고 생성하자.
생성했으면 ssh 연결을 시도해보자.
방화벽 규칙 생성
IAP가 TCP 전달을 위해 사용하는 IP 주소 범위는 현 시점 35.235.240.0/20이다.
이 범위에 맞게 private compute engine에서 트래픽을 허용해야 한다.
방화벽 규칙 만들기를 클릭하고 다음 설정대로 입력하자.
나는 ssh 연결만 허용할 것이기 때문에 22번 포트만 열어두었고 rdp 연결도 허용하려면 3389를 추가로 입력해주면 된다.
VM에 대한 액세스 권한 부여
액세스 권한 부여할 때는 프로젝트의 모든 VM 인스턴스에 부여하는 방법이 있고 특정 VM에 대해서만 부여하는 방법이 있는데 모든 VM 인스턴스에 부여해보자.
IAM -> IAM에 들어간다.
보안 -> IAP에 들어간다.
기존에 존재하는 사용자에게 역할을 부여해보자.
다른 역할 추가
IAP 보안 터널 사용자 선택
IAM 조건 추가
조건 편집자에서 다음 명령어 입력 (rdp 사용한다면 3389)
destination.port == 22
이제 private compute engine에 ssh 연결을 해서 ping 8.8.8.8 명령어를 통해 핑을 날려보자.
private이기 때문에 100% packet loss인 것을 확인할 수 있다.
public compute engine와 비교하면 보안 계층이 하나 추가되었다.
그런데 만약 private compute engine에서 외부 인터넷에 있는 api를 사용하는 것처럼 인터넷에 접근해야 한다면 어떻게 할까?
NAT 설정을 추가적으로 해주면 된다.
다음 포스팅에서는 NAT 설정을 통해 인터넷에 접속할 수 있게 할 예정이다.
'공부 > GCP' 카테고리의 다른 글
[GCP] public Compute Engine 생성하기 (0) | 2024.05.26 |
---|