エンタープライズ証明書を使用した証明書ベースのアクセスを有効にする

このページでは、エンタープライズ証明書を使用して証明書ベースのアクセス(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 ブラウザを構成する

Endpoint Verification を設定するの手順に沿って、組織内のすべてのユーザーに Chrome 用の Endpoint Verification 拡張機能をインストールします。この拡張機能は、証明書のメタデータを Google Cloud のバックエンドと同期するために使用されます。

ブラウザ拡張機能を設定したら、AutoSelectCertificateForURLs Chrome ポリシーを構成して、Endpoint Verification が Chrome でデバイス証明書を検索して収集できるようにします。

  1. ユーザーの Chrome ブラウザが Chrome ブラウザ クラウド管理で管理されていることを確認します。

  2. 管理コンソールで、AutoSelectCertificateForUrls ポリシーを追加します。

    1. [デバイス] > [ Google 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 証明書の共通名です。

この構成後、ユーザーは console-secure.cloud.google.com で Chrome ブラウザを使用して、保護された Google Cloud リソースにアクセスできます。

ポリシー構成を確認する(省略可)

  1. Chrome ブラウザで「chrome://policy」と入力します。

  2. AutoSelectCertificateForUrls が [Chrome ポリシー] に表示されていることを確認します。

  3. [対象] の値が [マシン] であることを確認します。Chrome オペレーティング システムでは、[対象] の値は [現在のユーザー] です。

  4. ポリシーのステータス競合がないことを確認します。ステータスに競合がある場合は、Chrome のポリシー管理についてをご覧ください。

コマンドライン ツールを構成してエンタープライズ証明書を使用する

組織内のユーザーがコマンドラインから Google Cloud リソースにアクセスする必要がある場合は、次の手順に従って、コマンドライン ツールでエンタープライズ証明書を使用して CBA を有効にしなければなりません。

次のコマンドライン ツールがサポートされています。

  • Google Cloud CLI

  • Terraform CLI(ヘルパー コンポーネントをインストールして構成するには gcloud CLI が必要です)。

デバイス証明書はネイティブ キーストアに保存されるため、Google Cloud CLI は Enterprise Certificate Proxy(ECP)と呼ばれるオープンソース コンポーネントとバンドルされ、鍵管理 API とやり取りします。

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 に設定します。

次のステップ