このページでは、エンタープライズ証明書を使用して証明書ベースのアクセス(CBA)を有効にする方法について説明します。
ゼロトラスト アクセスモデルの重要な要件は、承認されたデバイスのみにアクセスを許可することです。BeyondCorp Enterprise CBA は、デバイス上の安全なキーストアに保存されている証明書と秘密鍵を使用して、デバイスが承認されているかどうかを判断します。この機能を有効にするには、次の手順を行います。
始める前に
Google Cloud プロジェクトの CBA アクセスレベルが作成されていることを確認します。アクセスレベルを作成する必要がある場合は、証明書ベースのアクセスのアクセスレベルを作成するをご覧ください。
次のいずれかの方法で、Google Cloud リソースに CBA を適用します。
VPC Service Controls で証明書ベースのアクセスを適用する: データに関するルールを構成します。
ユーザー グループで証明書ベースのアクセスを適用する: ユーザーに関するルールを構成します。
Google Cloud リソースに CBA を適用する場合、Google Cloud リソースにアクセスするには承認済みユーザーが有効なデバイス証明書を提示する必要があります。
トラスト アンカーをアップロードする
BeyondCorp Enterprise がデバイスのエンタープライズ証明書を収集して検証できるようにするには、デバイス証明書の発行に使用するトラストアンカーをアップロードする必要があります。トラスト アンカーは、自己署名のルート CA 証明書および関連する中間証明書と下位証明書です。トラスト アンカーをアップロードするには、次の手順を行います。
Google 管理コンソールで、[デバイス] > [ネットワーク] > [証明書] に移動し、トラスト アンカーをアップロードする組織部門を選択します。選択した組織部門に、アクセス権を付与するユーザーが含まれていることを確認してください。
[証明書を追加] を選択し、ルート証明書の名前を入力します。
[アップロード] をクリックして証明書をアップロードします。
[エンドポイントの確認を有効にする] を選択して、[追加] をクリックします。
アップロードする証明書は、企業デバイスにインストールされているクライアント証明書の発行元である CA 証明書である必要があります。会社に CA 証明書と対応するクライアント証明書がない場合は、Google Cloud の Certificate Authority Service で作成できます。クライアント証明書をネイティブ キーストアにインストールする手順は、オペレーティング システムごとに異なり、このドキュメントの対象外です。
エンタープライズ証明書を使用するようにユーザーの Chrome ブラウザを構成する
Endpoint Verification を設定するの手順に沿って、組織内のすべてのユーザーに Chrome 用の Endpoint Verification 拡張機能をインストールします。この拡張機能は、証明書のメタデータを Google Cloud のバックエンドと同期するために使用されます。
ブラウザ拡張機能を設定したら、AutoSelectCertificateForURLs
Chrome ポリシーを構成して、Endpoint Verification が Chrome でデバイス証明書を検索して収集できるようにします。
ユーザーの Chrome ブラウザが Chrome ブラウザ クラウド管理で管理されていることを確認します。
管理コンソールで、
AutoSelectCertificateForUrls
ポリシーを追加します。[デバイス] > [ Google Chrome] > [設定] > [ユーザーとブラウザの設定] > [クライアント証明書] に移動します。
適切な組織部門を選択します。
ポリシーを追加します。
次の例では、
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 リソースにアクセスできます。
ポリシー構成を確認する(省略可)
Chrome ブラウザで「
chrome://policy
」と入力します。AutoSelectCertificateForUrls
が [Chrome ポリシー] に表示されていることを確認します。[対象] の値が [マシン] であることを確認します。Chrome オペレーティング システムでは、[対象] の値は [現在のユーザー] です。
ポリシーのステータスに競合がないことを確認します。ステータスに競合がある場合は、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 をインストールして構成する
Google Cloud CLI をインストールし、CBA を有効にします。
bundled python
オプションを有効にしてインストールします。macOS と Linux の場合、ダウンロード後に
install.sh
スクリプトを実行します。$ ./google-cloud-sdk/install.sh
Google Cloud CLI を使用して ECP ヘルパー コンポーネントをインストールします。
gcloud components install enterprise-certificate-proxy
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_CERTIFICATE
を true
に設定します。