인증서 기반 액세스로 리소스 보안

인증서 기반 액세스는 X.509 인증서를 통해 기기를 식별함으로써 다양한 Google 리소스에 대한 무단 액세스를 제한합니다. 인증서 기반 액세스를 사용하면 Google에서 생성된 인증서와 신뢰할 수 있는 기기를 사용하는 사용자만 IAP(Identity-Aware Proxy) TCP 전달을 통해 관리 액세스 권한을 갖거나 VPC 서비스 제어 서비스 경계를 통해 Google Cloud API에 액세스할 수 있습니다.

이 기능을 통해 기기 ID에 대한 더 강력한 신호를 제공할 수 있으며, 특히 사용자 인증 정보와 원본 기기 인증서가 모두 제공된 경우에만 액세스 권한을 부여함으로써 사용자 인증 정보 도난이나 실수로 인한 손실을 방지할 수 있습니다.

VPC 서비스 제어 서비스, 도구, 클라이언트 기반 액세스로 지원되는 클라이언트 라이브러리 목록을 보려면 인증서 기반 액세스 지원 서비스, 도구, 클라이언트 라이브러리를 참조하세요.

이 기능은 다음 단계에 따라 설정할 수 있습니다.

  1. 조직의 기기에 Endpoint Verification을 배포합니다.
  2. 액세스하려면 일치하는 기기 인증서가 필요한 Access Context Manager에서 액세스 수준을 생성합니다.
  3. IAP TCP 전달 또는 VPC 서비스 제어 서비스 경계를 통해 액세스 수준을 적용하여 액세스 제한을 시행합니다.
  4. 이제 사용자는 인증서 기반 액세스로 보호되는 VM 인스턴스 또는 Google Cloud API에 액세스할 수 있습니다.

Endpoint Verification 배포

Endpoint Verification을 사용하면 조직의 데이터에 액세스하는 기기의 인벤토리를 빌드할 수 있습니다. 또한 BeyondCorp Enterprise 솔루션의 일부로 중요한 기기 신뢰 및 보안 기반 액세스 제어를 제공하며 Google Cloud 리소스에 대한 세분화된 액세스 제어를 적용할 수 있습니다. 인증서 기반 액세스의 경우 Endpoint Verification은 신뢰할 수 있는 각 기기의 Google 인증 X.509 인증서를 생성, 등록, 제공하는 역할도 담당합니다.

Endpoint Verification은 Mac, Windows, Linux 사용자를 위한 데스크톱 및 노트북의 Chrome 확장 프로그램으로 실행됩니다. Google Workspace 관리 콘솔에서 조직의 회사 소유 기기에 관리자가 배포하거나 조직 구성원이 직접 설치할 수 있습니다.

처음 설치하는 사용자는 최신 버전을 사용해야 하지만 인증서 기반 액세스를 지원하려면 다음과 같은 버전의 Endpoint Verification이 필요합니다.

  • Endpoint Verification Chrome 확장 프로그램: 1.0.38 이상
  • 네이티브 도우미: Mac의 경우 0.4.40.0 이상, Windows의 경우 0.4.36.0 이상, Linux의 경우 20191007 이상

액세스 수준 만들기

Access Context Manager에서 커스텀 액세스 수준을 만들어 리소스에 대한 액세스를 결정할 때 인증서가 필요한 액세스 수준을 정의해야 합니다.

액세스 수준 이름, 설명, 사용자 친화적인 제목 등에 사용하는 값은 무엇이든 임의로 정할 수 있지만, 커스텀 액세스 수준의 표현식은 다음과 같아야 합니다.

certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE

예를 들어 gcloud CLI를 사용하여 커스텀 액세스 수준을 만든 경우 다음 명령어를 사용할 수 있습니다.

gcloud access-context-manager levels create LEVEL_NAME \
  --title=TITLE \
  --custom-level-spec=FILE \
  --description=DESCRIPTION \
  --policy=POLICY_NAME

FILE이 참조하는 .yaml 파일의 콘텐츠는 단순히 커스텀 표현식입니다.

expression: "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE"

액세스 수준 적용

액세스 수준이 생성되었으므로 마지막 관리 단계는 해당 액세스 수준을 적용하여 제한을 시행하는 것입니다.

VM에 대한 관리 액세스 제한 적용

IAP TCP 전달을 이용해 (SSH 및 RDP를 통해) VM 인스턴스에 대한 관리 액세스의 액세스 수준을 적용할 수 있습니다.

  • IAP 보안 터널 사용자 역할이 부여된 사용자 또는 그룹의 경우 조건을 추가할 수 있는 권한을 편집하세요.
  • 앞에서 정의한 액세스 수준 이름(gcloud CLI 예시에서 TITLE의 값)을 사용하여 액세스 수준에 따라 액세스를 제한합니다.

Google Cloud API에 대한 액세스 제한 적용

사용자가 VPC 서비스 제어 서비스 경계를 만들어 특정 관리 API에 액세스하려고 할 때마다 인증서 기반 액세스를 적용할 수 있습니다. 서비스 경계를 만들거나 수정할 때 경계 외부의 요청에 대한 액세스 수준을 지정하는 옵션은 인증서 기반 액세스에 필요합니다.

앞에서 만든 커스텀 액세스 수준 이름(gcloud CLI 예시의 TITLE 값)을 사용하여 서비스 경계에 포함하세요.

보호된 리소스에 대한 사용자 액세스 사용 설정

인증서 기반 액세스 제한이 적용되면 사용자는 보호된 리소스에 대한 자체 액세스를 사용 설정해야 합니다.

콘솔

사용자가 보안 Google Cloud Console로 이동하도록 지정하고 VPC 서비스 제어의 인증서 기반 액세스로 보호되는 서비스에 액세스할 수 있는지 확인합니다.

보안 Google Cloud Console로 이동

사용자가 Google Cloud Console에서 인증서 기반 액세스로 보호되는 서비스에 액세스하려고 할 때 정책에 포함되어 있지 않으면 다음 오류 메시지가 표시됩니다.

VPC Service Controls: Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier

gcloud

  1. 사용자가 gcloud CLI를 설치 또는 업데이트하도록 지정해서 버전 264.0.0 이상의 인증서 기반 액세스로 작동하는 버전이 있는지 확인합니다.

    이미 gcloud CLI가 설치된 사용자는 gcloud --version 명령어를 사용하여 버전 264.0.0 이상을 설치했는지 확인할 수 있습니다. 필요한 경우 다음 명령어를 사용하여 버전을 업데이트할 수 있습니다.

    gcloud components update
    
  2. 인증서 기반 액세스를 사용하려면 사용자가 다음 명령어를 실행해야 합니다.

    gcloud config set context_aware/use_client_certificate true
    
  3. 그런 다음에는 사용자가 평소와 같이 gcloud CLI에 로그인할 수 있습니다.

    gcloud auth login
    

    이전 단계를 완료하면 사용자가 gcloud CLI를 사용하여 VM 인스턴스에 대한 관리 액세스 및 Google Cloud APIs에 액세스할 수 있습니다.