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

인증서 기반 액세스는 X.509 인증서를 통해 기기를 식별함으로써 다양한 Google 리소스에 대한 무단 액세스를 제한합니다. 이 기능은 BeyondCorp Enterprise의 기존 컨텍스트 인식 액세스 기능(Endpoint Verification, Access Context Manager, VPC 서비스 제어, IAP(Identity-Aware Proxy) TCP 전달)을 기반으로 하며, 이 기능을 이용하면 Google에서 생성한 인증서가 있는 신뢰할 수 있는 기기의 사용자만이 IAP TCP 전달을 통해 관리 액세스 권한을 가지거나, Google Cloud Console 또는 Go용 Google Cloud 클라이언트 라이브러리를 사용하여 Google Cloud API에 액세스할 수 있습니다.

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

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

  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 도구를 사용하여 커스텀 액세스 수준을 만들 경우 다음 명령어를 사용할 수 있습니다.

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 도구 예시에서 TITLE의 값)을 사용하여 액세스 수준에 따라 액세스를 제한합니다.

Google Cloud API에 액세스 제한 적용

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

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

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

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

  • 사용자가 gcloud 도구를 설치하거나 업데이트하게 하여 인증서 기반 액세스와 호환되는 버전이 있는지 확인합니다.

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

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

    gcloud config set context_aware/use_client_certificate true
    
  • 그런 다음에는 평소와 같이 gcloud 도구에 로그인할 수 있습니다.

    gcloud auth login
    

위의 단계를 완료하면 사용자는 gcloud 도구를 사용하여 VM 인스턴스에 대한 관리 액세스 및 Google Cloud APIs에 액세스할 수 있습니다.