VPC 서비스 제어 및 비공개 게이트웨이 구성

이 페이지에서는 VPC 서비스 제어 및 비공개 클러스터의 작동 방법과 Cloud Workstations에서 이를 설정하는 방법을 설명합니다.

VPC 서비스 제어

VPC 서비스 제어는 데이터 유출 위험을 완화하기 위해 워크스테이션에 대해 추가적인 보안을 제공합니다. VPC 서비스 제어를 사용하면 서비스 경계에 프로젝트를 추가하여 경계 외부 요청으로부터 리소스와 서비스를 보호할 수 있습니다.

VPC 서비스 경계에서 Cloud Workstations를 사용하기 위한 요구사항은 다음과 같습니다.

  • Cloud Workstations를 보호하려면 Cloud Workstations API를 제한할 때마다 서비스 경계에서 Compute Engine API를 제한해야 합니다.
  • Google Cloud Storage API, Google Container Registry API, Artifact Registry API가 서비스 경계에서 VPC에 액세스할 수 있는지 확인합니다. 이렇게 하면 이미지를 워크스테이션으로 가져와야 합니다. 또한 Cloud Workstations을 사용하는 데 필수적인 것은 아니지만 Cloud Logging API 및 Cloud Error Reporting API가 서비스 경계에서 VPC에 액세스할 수 있도록 허용하는 것이 좋습니다.

  • 워크스테이션 클러스터가 비공개인지 확인합니다. 비공개 클러스터를 구성하면 VPC 서비스 경계 외부에서 워크스테이션에 연결할 수 없습니다. Cloud Workstations 서비스는 VPC 서비스 경계에 공개 클러스터를 만들지 못하게 합니다.
  • 워크스테이션 구성에서 공개 IP 주소를 사용 중지해야 합니다. 그렇지 않으면 프로젝트에 공개 IP 주소를 사용하는 VM이 생성됩니다. VPC 서비스 경계에서 모든 VM에 대해 공개 IP 주소를 사용 중지하도록 constraints/compute.vmExternalIpAccess 조직 정책 제약조건을 사용하는 것이 좋습니다. 자세한 내용은 외부 IP 주소를 특정 VM으로 제한을 참조하세요.

서비스 경계에 대한 자세한 내용은 서비스 경계 세부정보 및 구성을 참조하세요.

아키텍처

워크스테이션 클러스터를 비공개로 구성하면 워크스테이션 클러스터의 제어 영역에는 내부 IP 주소만 있습니다. 즉, 공개 인터넷의 클라이언트가 워크스테이션 클러스터에 속하는 워크스테이션에 연결할 수 없습니다. 비공개 클러스터를 사용하려면 Private Service Connect 엔드포인트를 통해 비공개 클러스터를 Virtual Private Cloud(VPC) 네트워크에 직접 연결해야 합니다.

비공개 클러스터를 사용하는 구성에는 2개의 PSC 엔드포인트가 필요합니다.

  • 기본적으로 Cloud Workstations는 제어 영역을 워크스테이션 VM에 연결하기 위해 별개의 PSC 엔드포인트를 만듭니다.

  • 비공개 클러스터에 대해 추가 PSC 엔드포인트를 만들어야 합니다. 로컬 머신에서 비공개 클러스터의 워크스테이션에 연결하려면 로컬 머신이 VPC 네트워크에 연결되어 있어야 합니다. Cloud VPN 또는 Cloud Interconnect를 사용해서 머신을 실행하는 외부 네트워크를 VPC 네트워크에 연결합니다.

다음 다이어그램은 비공개 클러스터의 아키텍처 예시를 보여줍니다.

그림 1. 비공개 클러스터

시작하기 전에

시작하기 전에 다음과 같은 필수 설정 단계를 완료해야 합니다.

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  6. Cloud Workstations API 사용 설정

    API 사용 설정

  7. 워크스테이션 구성을 만들 수 있도록 프로젝트에 Cloud Workstations 관리자 IAM 역할이 있는지 확인합니다. Google Cloud 콘솔에서 IAM 역할을 확인하려면 IAM 페이지로 이동합니다.

    IAM으로 이동

  8. constraints/compute.trustedimageProjects 조직 정책 제약조건이 적용되면 이미지가 생성된 원래 프로젝트를 허용 목록에 추가해야 합니다.
    • 중첩된 가상화가 없으면 cos-cloud 프로젝트에서 유래한 Compute Engine VM 이미지를 사용할 수 있는 권한을 프로젝트에 부여해야 합니다.
    • 중첩된 가상화의 경우 ubuntu-os-gke-cloud 프로젝트에서 유래한 Compute Engine VM 이미지를 사용할 수 있는 권한을 프로젝트에 부여해야 합니다.

    자세한 내용은 이미지 액세스 제약조건 설정을 참조하세요.

  9. 선택사항: 더 빠른 워크스테이션 시작을 허용하려면 Container File System API를 사용 설정합니다.

    Container File System API 사용 설정

    자세한 내용은 이미지 스트리밍으로 워크스테이션 시작 시간 단축을 참조하세요.

비공개 클러스터 만들기

다음 단계에 따라 비공개 클러스터를 만듭니다.

  1. Google Cloud 콘솔에서 Cloud Workstations 페이지로 이동합니다.

    Cloud Workstations로 이동

  2. 워크스테이션 클러스터 관리 페이지로 이동합니다.

  3. 만들기를 클릭합니다.

  4. 이름을 입력하고 워크스테이션 클러스터의 리전을 선택합니다.

  5. 네트워킹 섹션에서 이 프로젝트의 네트워크를 선택합니다.

  6. 네트워크서브네트워크를 선택합니다.

  7. 게이트웨이 유형비공개 게이트웨이를 선택합니다.

  8. 선택사항: 비공개 클러스터에 대해 HTTP 액세스를 사용 설정하는 Private Service Connect 엔드포인트를 호스팅하는 하나 이상의 추가 프로젝트를 지정합니다. 기본적으로 이 엔드포인트는 워크스테이션 클러스터 프로젝트 및 VPC 네트워크 호스트 프로젝트(서로 다른 경우)에서만 만들 수 있습니다. 필요한 경우 클러스터를 만든 후 이러한 프로젝트를 지정할 수도 있습니다.

  9. 만들기를 클릭합니다.

비공개 클러스터 연결 사용 설정

클라이언트는 공개 인터넷에서 비공개 워크스테이션 클러스터의 워크스테이션에 연결할 수 없습니다. 클라이언트는 Private Service Connect(PSC)를 사용하여 워크스테이션 클러스터에 연결하는 네트워크에 있어야 합니다. 이 섹션의 단계에 따라 워크스테이션에 연결합니다.

  1. 워크스테이션 서비스 연결을 대상으로 하는 PSC 엔드포인트를 만듭니다.

  2. 비공개 DNS 영역을 만듭니다.

  3. Cloud DNS를 사용해서 클러스터의 호스트 이름을 PSC 엔드포인트에 매핑하는 DNS 레코드를 만듭니다.

Private Service Connect 엔드포인트 만들기

PSC 엔드포인트를 만들려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 Private Service Connect로 이동합니다.

    Private Service Connect로 이동

  2. 연결된 엔드포인트 탭을 클릭한 후 add엔드포인트 연결을 클릭합니다.

  3. 대상에서 게시된 서비스를 선택합니다.

  4. 대상 서비스 필드에서 워크스테이션 클러스터에 대해 생성된 서비스 연결 URI를 입력합니다. 콘솔에서 워크스테이션 클러스터로 이동하고 네트워크 설정에서 서비스 연결 URI 필드를 찾아 이를 찾습니다.

  5. 엔드포인트 필드에 엔드포인트 이름을 입력합니다.

  6. 엔드포인트의 네트워크를 선택한 후 서브네트워크를 선택합니다. 이 네트워크는 워크스테이션에 연결하기 위해 사용하려는 네트워크여야 합니다.

  7. 엔드포인트의 IP 주소를 선택합니다.

    새 IP 주소가 필요하면 IP 주소 만들기를 선택합니다.

    1. IP 주소의 이름과 선택적인 설명을 입력합니다.
    2. 고정 IP 주소에 대해 자동 할당을 선택합니다. 커스텀 IP 주소에 대해 직접 선택을 선택하고 사용하려는 IP 주소를 입력합니다.
    3. 용도에 대해 비공유를 선택합니다.
    4. 예약을 클릭합니다.
  8. 드롭다운 목록에서 네임스페이스를 선택하거나 새 네임스페이스를 만듭니다. 리전은 선택한 서브네트워크를 기반으로 채워집니다.

  9. 엔드포인트 추가를 클릭합니다.

  10. 다음 섹션에서 비공개 DNS 영역 및 DNS 레코드 만들기를 위해 사용할 수 있도록 엔드포인트의 IP 주소를 복사합니다.

비공개 DNS 영역 만들기

다음 단계에 따라 콘솔에서 워크스테이션 클러스터로 이동하여 찾을 수 있는 clusterHostname으로 설정된 DNS 이름을 사용해서 이 워크스테이션 클러스터에 대해 비공개 DNS 영역을 만듭니다.

  1. Google Cloud 콘솔에서 DNS 영역 만들기 페이지로 이동합니다.

    DNS 영역 만들기로 이동

  2. 영역 유형으로 비공개를 선택합니다.

  3. 영역 이름을 입력합니다(예: private-workstations-cluster-zone).

  4. 비공개 영역의 DNS 이름 서픽스를 입력합니다. 영역의 모든 레코드는 이 서픽스를 공유합니다. 이 이름을 clusterHostname으로 설정합니다.

    clusterHostname을 찾으려면 Google Cloud 콘솔에서 Cloud Workstations > 클러스터 관리 페이지로 이동한 후 워크스테이션 클러스터를 클릭하여 호스트 이름을 확인합니다.

  5. 선택사항: 설명을 추가합니다.

  6. 옵션에서 기본값(비공개)을 선택합니다.

  7. 이전 섹션에서 PSC 엔드포인트를 만든 네트워크에서만 IP 주소가 유효하기 때문에 이 네트워크를 선택합니다.

  8. 만들기를 클릭합니다.

비공개 DNS 영역에 대한 자세한 내용은 비공개 영역 만들기 방법 및 Cloud DNS 비공개 영역 권장사항에 대한 Cloud DNS 문서를 참조하세요.

DNS 레코드 만들기

*.<clusterHostname>을 Private Service Connect 엔드포인트를 만들 때 예약한 IP 주소에 매핑하는 레코드를 추가하려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 Cloud DNS 영역 페이지로 이동합니다.

    Cloud DNS 영역으로 이동

  2. 레코드를 추가할 관리형 영역의 이름을 클릭합니다.

  3. 영역 세부정보 페이지에서 표준 추가를 클릭합니다.

  4. 레코드 모음 만들기 페이지의 DNS 이름 필드에서 *.<clusterHostname>을 입력합니다.

  5. IP 주소 필드에 이전 섹션에서 Private Service Connect 엔드포인트에 대해 예약한 IP 주소를 입력합니다.

  6. 만들기를 클릭합니다.

  7. 이제 VPC 네트워크가 워크스테이션 클러스터에 연결되고 이 네트워크를 사용해서 워크스테이션에 연결할 수 있습니다.

온프레미스에서 DNS 변환 사용 설정

워크스테이션에서 기본 브라우저 기반 편집기를 사용하여 VPC 네트워크에 연결된 머신에서 브라우저를 사용합니다. Cloud VPN 또는 Cloud Interconnect를 사용해서 브라우저를 실행하는 외부 네트워크에서 VPC 네트워크로 연결할 수 있습니다.

외부 네트워크에서 연결하려면 외부 네트워크에 DNS를 구성해야 합니다. 이전 단계와 마찬가지로, clusterHostname에 대한 DNS 영역을 만들고 Private Service Connect 엔드포인트를 만들 때 예약된 IP 주소에 *.<clusterHostname>을 매핑하는 레코드를 추가할 수 있습니다. 또는 온프레미스와 Google Cloud 환경 간에 DNS 이름을 조회할 수 있도록 DNS 전달 영역이나 DNS 서버 정책을 설정할 수 있습니다.

온프렘 인프라 허용 목록에 *cloudworkstations.dev를 추가해야 할 수도 있습니다.

다음 단계