엔터프라이즈 인증서로 인증서 기반 액세스 사용 설정

이 페이지에서는 엔터프라이즈 인증서로 인증서 기반 액세스(CBA)를 사용 설정하는 방법을 설명합니다.

제로 트러스트 액세스 모델의 중요한 요구사항은 승인된 기기에 대한 액세스만 허용하는 것입니다. BeyondCorp Enterprise CBA는 기기의 보안 키 저장소에 저장된 인증서 및 비공개 키를 사용하여 기기가 승인되었는지 확인합니다. 이 기능을 사용하려면 다음 절차를 완료하세요.

시작하기 전에

Google Cloud 프로젝트의 CBA 액세스 수준을 만들었는지 확인합니다. 액세스 수준을 만들어야 하는 경우 인증서 기반 액세스의 액세스 수준 만들기를 참조하세요.

다음 방법 중 하나를 사용하여 Google Cloud 리소스에 CBA를 적용합니다.

Google Cloud 리소스에 CBA를 적용할 때 Google Cloud 리소스에 액세스하려면 승인된 사용자도 유효한 기기 인증서를 제시해야 합니다.

신뢰 앵커 업로드

BeyondCorp Enterprise에서 기기의 엔터프라이즈 인증서를 수집하고 검증할 수 있게 하려면 기기 인증서를 발급하는 데 사용되는 신뢰 앵커를 업로드해야 합니다. 신뢰 앵커는 자체 서명 루트 CA 인증서와 관련 중간 및 종속 인증서입니다. 신뢰 앵커를 업로드하려면 다음 단계를 완료하세요.

  1. Google 관리 콘솔에서 기기 > 네트워크 > 인증서로 이동한 후 신뢰 앵커를 업로드할 조직 단위를 선택합니다. 선택한 조직 단위에 액세스 권한을 부여할 사용자가 포함되어 있는지 확인합니다.

  2. 인증서 추가를 선택한 다음 루트 인증서의 이름을 입력합니다.

  3. 업로드를 클릭하여 인증서를 업로드합니다.

  4. 엔드포인트 확인 사용 설정을 선택한 다음 추가를 클릭합니다.

업로드할 인증서는 회사 기기에 설치된 클라이언트 인증서의 발급자인 CA 인증서여야 합니다. 회사에 아직 CA 인증서와 해당 클라이언트 인증서가 없으면 Google Cloud Certificate Authority Service를 통해 만들 수 있습니다. 클라이언트 인증서를 기본 키 저장소에 설치하는 단계는 운영체제마다 다르며 이 문서에서 다루지 않습니다.

엔터프라이즈 인증서를 사용하도록 사용자의 Chrome 브라우저 구성

엔드포인트 확인 설정의 안내에 따라 조직의 모든 사용자에게 Chrome용 엔드포인트 확인 확장 프로그램을 설치합니다. 이 확장 프로그램은 인증서 메타데이터를 Google Cloud의 백엔드로 동기화하는 데 사용됩니다.

브라우저 확장 프로그램을 설정한 후 엔드포인트 확인에서 기기 인증서를 검색하고 Chrome을 통해 수집하도록 AutoSelectCertificateForURLs Chrome 정책을 구성합니다.

  1. 사용자의 Chrome 브라우저가 Chrome 브라우저 클라우드 관리에서 관리되고 있는지 확인합니다.

  2. 관리 콘솔에서 AutoSelectCertificateForUrls 정책을 추가합니다.

    1. 기기 > Chrome > 설정 > 사용자 및 브라우저 설정 > 클라이언트 인증서로 이동합니다.

    2. 적절한 조직 단위를 선택합니다.

    3. 정책 추가

      다음 예시에서는 AutoSelectCertificateForUrls 정책을 추가합니다.

      {"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":<CERT_ISSUER>}}}
      {"pattern":"https://console-secure.cloud.google.com","filter":{"ISSUER":{"CN":<CERT_ISSUER>}}}
      {"pattern":"https://storage.mtls.cloud.google.com","filter":{"ISSUER":{"CN":<CERT_ISSUER>}}}
      

      이 예시에서 CERT_ISSUER는 CA 인증서의 일반 이름입니다.

이 구성이 완료되면 Chrome 브라우저에서 console-secure.cloud.google.com으로 보호된 Google Cloud 리소스에 액세스할 수 있습니다.

정책 구성 확인(선택사항)

  1. Chrome 브라우저에 chrome://policy를 입력합니다.

  2. AutoSelectCertificateForUrlsChrome 정책에 나열되어 있는지 확인합니다.

  3. 적용 대상 값이 머신인지 확인합니다. Chrome 운영체제에서 적용 대상 값은 현재 사용자입니다.

  4. 정책의 상태충돌이 없는지 확인합니다. 상태에 충돌이 있는 경우 Chrome 정책 관리 이해하기를 참고하세요.

엔터프라이즈 인증서를 사용하도록 명령줄 도구 구성

조직의 사용자가 명령줄에서 Google Cloud 리소스에 액세스해야 하는 경우 다음 절차를 완료하여 명령줄 도구에서 엔터프라이즈 인증서로 CBA를 사용 설정해야 합니다.

다음과 같은 명령줄 도구가 지원됩니다.

  • Google Cloud CLI

  • Terraform CLI(도우미 구성요소를 설치하고 구성하는 데 gcloud CLI 필요)

기기 인증서는 기본 키 저장소에 저장되므로 Google Cloud CLI는 키 관리 API와 상호작용하기 위해 엔터프라이즈 인증서 프록시(ECP)라는 오픈소스 구성요소와 함께 번들로 제공됩니다.

Windows 시스템을 사용하는 경우 Visual Studio C++ 런타임 라이브러리가 설치되어 있어야 합니다.

다음 운영체제와 각각의 기본 키 저장소가 지원됩니다.

  • 키체인을 사용하는 macOS

  • CryptoAPI를 사용하는 Microsoft Windows

  • PKCS #11을 사용하는 Linux

키 저장소에서 인증서의 위치를 확인하는 데 필요한 메타데이터 정보로 ECP를 구성해야 합니다.

Google Cloud CLI로 ECP 설치 및 구성

  1. Google Cloud CLI를 설치하고 CBA를 사용 설정합니다. bundled python 옵션을 사용 설정하여 설치합니다.

  2. macOS 및 Linux의 경우 다운로드 후 install.sh 스크립트를 실행합니다.

    $ ./google-cloud-sdk/install.sh
    
  3. Google Cloud CLI를 사용하여 ECP 도우미 구성요소를 설치합니다.

    gcloud components install enterprise-certificate-proxy
    
  4. Google Cloud CLI를 사용하여 ECP 인증서 구성을 초기화합니다.

Linux

$ gcloud auth enterprise-certificate-config create linux
  --label=<CERT_LABEL> --module=<PKCS11_MODULE_PATH> --slot=<SLOT_ID>

예를 들면 다음과 같습니다. $ gcloud auth enterprise-certificate-config create linux --label="Google Endpoint Verification" --module=/usr/lib/x86_64-linux-gnu/pkcs11/libcredentialkit_pkcs11.so.0 --slot=0x1234567

macOS

$ gcloud auth enterprise-certificate-config create macos
  --issuer=<CERT_ISSUER>

예를 들면 다음과 같습니다. $ gcloud auth enterprise-certificate-config create macos --issuer="Google Endpoint Verification"

Windows

$ gcloud auth enterprise-certificate-config create windows
  --issuer=<CERT_ISSUER> --provider=<PROVIDER> --store=<STORE>

예를 들면 다음과 같습니다. $ gcloud auth enterprise-certificate-config create windows --issuer="Google Endpoint Verification" --provider=current_user --store=MY

ECP 구성은 수동으로 구성할 수도 있습니다. 사용자 기기의 다음 위치에 JSON 파일로 저장됩니다.

  • Linux 및 macOS: ~/.config/gcloud/certificate_config.json

  • Windows: %APPDATA%\gcloud\certificate_config.json

구성 및 스키마의 추가 예시는 GitHub의 ECP 문서를 참조하세요.

Linux

{
  "cert_configs": {
    "pkcs11": {
      "label": "<CERT_LABEL>",
      "slot": "<SLOT_ID>",
      "module": "<PKCS11_MODULE_PATH>"
    }
  },
  "libs": {
    "ecp": "/usr/lib/google-cloud-sdk/bin/ecp",
    "ecp_client": "/usr/lib/google-cloud-sdk/platform/enterprise_cert/libecp.so",
    "tls_offload": "/usr/lib/google-cloud-sdk/platform/enterprise_cert/libtls_offload.so"
  }
}

macOS

{
  "cert_configs": {
      "macos_keychain": {
        "issuer": "<CERT_ISSUER>"
      }
  },
  "libs": {
    "ecp": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/bin/ecp",
    "ecp_client": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/platform/enterprise_cert/libecp.dylib",
    "tls_offload": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dylib"
  }
}

Windows

{
  "cert_configs": {
    "windows_store": {
      "store": "MY",
      "provider": "current_user",
      "issuer": "<CERT_ISSUER>"
    }
  },
  "libs": {
    "ecp": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/bin/ecp.exe",
    "ecp_client": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/enterprise_cert/libecp.dll",
    "tls_offload": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dll"
  }
}

구성이 완료되면 CBA 플래그를 사용 설정하여 명령줄 도구를 통해 보호된 Google Cloud 리소스에 액세스할 수 있습니다.

Google Cloud CLI에 CBA를 사용 설정하려면 context_aware/use_client_certificate 속성을 true로 설정합니다.

Terraform을 포함한 다른 모든 명령줄 도구에 CBA를 사용 설정하려면 환경 변수 GOOGLE_API_USE_CLIENT_CERTIFICATEtrue로 설정합니다.

다음 단계