이 페이지에서는 Cloud Workstations에서 보안 및 데이터 보호 상태를 향상시키기 위해 권장되는 보안 권장사항 개요를 제공합니다. 이 목록은 보안을 보장하는 전체 체크리스트가 아니고 기존 보안 상황을 대체하지도 않습니다.
목표는 Cloud Workstations를 통해 가능한 보안 권장사항에 대한 가이드를 제공하는 것입니다. 계층화된 보안 접근 방식을 빌드하기 위해 적용 가능한 경우 보안 솔루션 포트폴리오에 이러한 권장사항을 추가하세요. 계층화된 보안 방법은 Google Cloud에서 안전하고 호환되는 서비스를 실행하는 데 적용되는 핵심 보안 원칙 중 하나입니다.
배경
Cloud Workstations 서비스는 서비스에 사용하기 위한 사전 정의된 기본 이미지를 제공합니다. 이 서비스는 번들 소프트웨어에 최신 보안 패치가 포함되도록 보장하기 위해 이러한 이미지를 매주 다시 빌드하고 다시 게시합니다. 또한 이 서비스는 워크스테이션 구성에서 기본 실행 시간 제한 값을 사용해서 워크스테이션이 자동으로 업데이트되고 패치가 적용되지 않은 이미지가 활성 상태로 유지되지 않도록 보장합니다.
하지만 Google Cloud는 이러한 이미지에 번들로 포함된 모든 패키지를 소유하지 않습니다. 패키지 관리자는 버그 또는 일반적인 취약점 및 노출(CVE)이 제품에 미치는 영향에 따라 서로 다르게 업데이트 우선순위를 지정할 수 있습니다. 제품에 라이브러리 일부만 사용될 경우 라이브러리의 다른 부분에서 발견된 항목의 영향을 받지 않을 수 있습니다. 따라서 이미지의 취약점 스캔으로 CVE 발견 항목이 존재하더라도 Cloud Workstations가 계속 보안 제품을 제공할 수 있습니다.
Cloud Workstations에서 이렇게 할 수 있는 이유는 지정된 개발자만 워크스테이션에 액세스할 수 있도록 보장하는 인증 및 권한 부여 시스템을 제공하기 때문입니다. 부서 환경에 따라 개발자는 워크스테이션을 사용할 때 권장사항을 적용해야 합니다. 가능한 한 보안을 유지하기 위해서는 신뢰할 수 있는 코드만 실행하고, 신뢰할 수 있는 입력으로만 작업하고, 신뢰할 수 있는 도메인만 액세스해야 합니다. 또한 워크스테이션을 사용해서 프로덕션 서버를 호스팅하거나 여러 개발자와 함께 단일 워크스테이션을 공유하는 것은 적합하지 않습니다.
조직 워크스테이션 이미지 보안을 더욱 세부적으로 제어하려는 경우 자체 맞춤설정된 컨테이너 이미지를 만들 수도 있습니다.
공개 네트워크 액세스 제한
워크스테이션 구성을 사용하여 워크스테이션에서 공개 IP 주소를 사용 중지하고 Cloud Workstations 내에서 일상 작업에 필요하지 않은 공개 인터넷 대상에 대한 액세스를 제한하는 방화벽 규칙을 구성합니다.
공개 IP 주소를 사용 중지하는 경우 네트워크에서 비공개 Google 액세스 또는 Cloud NAT를 설정해야 합니다.
비공개 Google 액세스를 사용하고 Artifact Registry(또는 Container Registry)에 private.googleapis.com
또는 restricted.googleapis.com
을 사용하는 경우 도메인*.pkg.dev
및 *.gcr.io
에 대한 DNS 레코드를 설정해야 합니다.
직접 SSH 액세스 제한
Identity and Access Management(IAM) 정책이 적용되고 VPC 흐름 로그를 사용 설정할 수 있는 Cloud Workstations 게이트웨이를 통해서만 액세스할 수 있도록 Cloud Workstations를 호스팅하는 프로젝트에서 VM에 대한 직접 SSH 액세스를 제한해야 합니다.
VM에 대한 직접 SSH 액세스를 사용 중지하려면 다음 Google Cloud CLI 명령어를 실행합니다.
gcloud workstations configs update CONFIG \ --cluster=CLUSTER \ --region=REGION \ --project=PROJECT \ --disable-ssh-to-vm
민감한 리소스 액세스 제한
워크스테이션에서 민감한 리소스에 대한 액세스를 제한하도록 VPC 서비스 제어 서비스 경계를 설정하여 소스 코드와 데이터 무단 반출을 방지합니다.
최소 권한의 원칙 준수
권한 및 리소스 할당 시 최소 권한의 원칙을 따르세요.
IAM 권한
기본 Identity and Access Management 구성을 사용해서 워크스테이션 액세스를 단일 개발자로 제한합니다. 이렇게 하면 각 개발자가 고유한 기본 VM에서 고유한 워크스테이션 인스턴스를 사용할 수 있게 되어 환경 격리 수준이 향상됩니다. Cloud Workstations 코드 편집기 및 애플리케이션은 개발자 유연성 향상을 위해 권한 모드 및 루트 액세스 권한으로 실행되는 컨테이너 내에서 실행됩니다. 이렇게 하면 개발자마다 고유한 워크스테이션이 제공되고 사용자가 컨테이너에서 탈출하더라도 여전히 VM 내에 존재해서 추가적인 외부 리소스에 대한 액세스 권한을 얻을 수 없습니다.
Artifact Registry에서 워크스테이션 구성 및 컨테이너 이미지를 수정하도록 비관리자 액세스를 제한하는 IAM 권한을 설정합니다.
또한 Cloud Workstations를 호스팅하는 프로젝트의 기본 Compute Engine 리소스에 대한 비관리자 액세스를 제한하는 IAM 권한을 설정하는 것이 좋습니다.
자세한 내용은 안전하게 IAM 사용을 참조하세요.
Cloud KMS 권한
최소 권한의 원칙을 지원하기 위해서는 Cloud KMS 리소스 및 Cloud Workstations 리소스를 개별 Google Cloud 프로젝트에 유지하는 것이 좋습니다. 프로젝트 수준에서 owner
없이 Cloud KMS 키 프로젝트를 만들고 조직 수준에서 부여된 조직 관리자를 지정합니다.
owner
와 달리 조직 관리자는 키를 직접 관리하거나 사용할 수 없습니다. 조직 관리자의 업무 범위는 키를 관리하고 사용할 수 있는 사용자를 제한하는 IAM 정책 설정으로 제한됩니다.
이를 업무 분장이라고도 부릅니다. 이것은 한 명의 개인이 악의적인 작업을 수행하는 데 필요한 모든 권한을 갖지 않도록 보장하는 것을 나타냅니다. 자세한 내용은 업무 분장을 참조하세요.
자동 이미지 업데이트 및 패치 적용
워크스테이션에 최신 보안 패치 및 수정이 포함된 최신 버전의 Cloud Workstations 기본 이미지가 사용되는지 확인합니다. 워크스테이션 구성에서 실행 제한 시간 값은 이 구성으로 생성된 워크스테이션이 워크스테이션 구성에 정의된 컨테이너 이미지의 최신 버전과 일치하도록 다음 세션에서 자동으로 업데이트됩니다.
- 조직에서 Cloud Workstations 기본 이미지 중 하나가 사용되는 경우 워크스테이션을 다음에 종료하고 다시 시작할 때 워크스테이션이 워크스테이션 구성에 대한 모든 업데이트를 자동으로 선택합니다.
runningTimeout
을 설정하거나 기본값을 사용하면 이러한 워크스테이션이 종료되도록 보장할 수 있습니다. - 조직에서 커스텀 이미지를 사용하는 경우 이미지를 정기적으로 다시 빌드해야 합니다. 다음 섹션의 설명대로 보안 이미지 파이프라인을 만드는 것이 좋습니다.
커스텀 이미지에 대해 보안 이미지 파이프라인 만들기
커스텀 이미지에 추가된 커스텀 패키지 및 종속 항목을 사용자가 유지 보수하고 업데이트해야 합니다.
커스텀 이미지를 만들 때 권장사항은 다음과 같습니다.
Cloud Workstations 기본 이미지가 업데이트될 때 이러한 이미지를 자동으로 다시 빌드하여 이미지 파이프라인을 보호할 수 있습니다.
Artifact Analysis와 같은 컨테이너 스캔 도구를 실행해서 추가한 종속 항목을 검사합니다.
이미지를 매주 다시 빌드하도록 빌드를 예약하거나 컨테이너 이미지 다시 빌드 자동화 방법을 확인합니다.
VPC 흐름 로그 설정
워크스테이션 클러스터를 만들면 Cloud Workstations가 클러스터를 특정 서브넷과 연결하고 모든 워크스테이션이 이 서브넷에 배치됩니다. VPC 흐름 로그를 사용 설정하려면 이 서브넷에 대해 로깅을 사용 설정해야 합니다. 자세한 내용은 기존 서브넷에 대해 VPC 흐름 로그 사용 설정을 참조하세요.