googleapis/enterprise-certificate-proxy

GitHub: googleapis/enterprise-certificate-proxy

Google 企业证书代理(ECP)是一组代理与动态库模块,使 gcloud CLI 等客户端能够利用操作系统密钥库中的设备证书完成与 Google Cloud 的相互 TLS 认证。

Stars: 32 | Forks: 21

# Google 企业证书代理 (GA) ## 基于证书的访问 如果您使用[基于证书的访问][cba]来保护您的 Google Cloud 资源,终端用户[设备证书][clientcert]是在授予资源访问权限之前验证的凭据之一。通过使用企业证书功能,您可以配置 Google Cloud 在验证来自 gcloud CLI 或 Terraform 的资源访问时,使用操作系统密钥库中的设备证书。 ## Google 企业证书代理 (ECP) Google 企业证书代理 (ECP) 是 [Google Cloud 零信任架构][zerotrust]的一部分,可实现与[客户端证书][clientcert]的相互认证。此代码库包含一组代理/模块,可供客户端或工具用来与存储在[受保护的密钥存储系统][keystore]中的证书进行交互。 要与客户端证书进行交互,应用程序代码无需直接使用此代码库中的大多数代理。相反,应用程序应利用 Google 提供的客户端和工具(例如 [Cloud SDK](https://cloud.google.com/sdk)),以获得更便捷的开发者体验。 ## 兼容性 ECP 支持以下平台/密钥库: - MacOS: __Keychain__ - Linux: __PKCS#11__ - Windows: __MY__ ## 用户指南 在您的应用程序/客户端中使用 ECP 之前,您应完成[为企业证书启用 CBA][enterprisecert] 中记录的策略配置。本 README 的其余部分重点介绍客户端配置。 ### 快速开始 1. 通过以下链接安装 gcloud CLI (Cloud SDK): https://cloud.google.com/sdk/docs/install。安装时请启用捆绑的 python 选项。 1. **注意:** 需要 gcloud 416.0 或更高版本。建议使用 430.0 或更高版本。 2. 对于 macOS 和 Linux,下载后请运行 install.sh 脚本以完成安装。 $ ./google-cloud-sdk/install.sh 3. 安装 ECP 辅助组件: $ gcloud components install enterprise-certificate-proxy 4. 初始化 ECP 证书配置: * **MacOS** `$ gcloud auth enterprise-certificate-config create macos --issuer=` * **Linux** `$ gcloud auth enterprise-certificate-config create linux --label= --module= --slot=` * **Windows** `$ gcloud auth enterprise-certificate-config create windows --issuer= --provider= --store=` 5. 通过 gcloud CLI config 命令启用客户端证书的使用: $ gcloud config set context_aware/use_client_certificate true 6. 您现在可以使用 gcloud 访问受 CBA 保护的 GCP 资源。例如: $ gcloud pubsub topics list ### 手动证书配置 ECP 依赖于证书配置 JSON 文件来读取用于定位证书的所有元数据信息。 默认情况下,它被命名为 `certificate_config.json` 并存储在用户设备上的以下位置: * **Linux 和 MacOS**: `~/.config/gcloud/certificate_config.json` * **Windows**: `%APPDATA%\gcloud\certificate_config.json` 您可以将该 JSON 文件放在您选择的位置,并使用以下命令设置其路径: ``` $ gcloud config set context_aware/certificate_config_file_path "" ``` 设置 JSON 文件位置的另一种方法是使用 `GOOGLE_API_CERTIFICATE_CONFIG` 环境变量。 ``` $ export GOOGLE_API_CERTIFICATE_CONFIG="" ``` 以下是证书配置文件的示例: #### MacOS (Keychain) ``` { "cert_configs": { "macos_keychain": { "issuer": "YOUR_CERT_ISSUER" } }, "libs": { "ecp": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/bin/ecp", "ecp_client": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/platform/enterprise_cert/libecp.dylib", "tls_offload": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dylib" }, "version": 1 } ``` #### Windows (MyStore) ``` { "cert_configs": { "windows_store": { "store": "MY", "provider": "current_user", "issuer": "YOUR_CERT_ISSUER" } }, "libs": { "ecp": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/bin/ecp.exe", "ecp_client": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/platform/enterprise_cert/libecp.dll", "tls_offload": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dll" }, "version": 1 } ``` #### Linux (PKCS#11) ``` { "cert_configs": { "pkcs11": { "label": "YOUR_TOKEN_LABEL", "user_pin": "YOUR_PIN", "slot": "YOUR_SLOT", "module": "The PKCS #11 module library file path" } }, "libs": { "ecp": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/bin/ecp", "ecp_client": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/platform/enterprise_cert/libecp.so", "tls_offload": "[GCLOUD-INSTALL-LOCATION]/google-cloud-sdk/platform/enterprise_cert/libtls_offload.so" }, "version": 1 } ``` ### 日志记录 要启用日志记录,请设置 `ENABLE_ENTERPRISE_CERTIFICATE_LOGS` 环境变量。 #### 示例 ``` $ export ENABLE_ENTERPRISE_CERTIFICATE_LOGS=1 # Now the enterprise-certificate-proxy will output logs to stdout. ``` ## 从源码构建 ECP 二进制文件 对于 amd64 MacOS,运行 `./build/scripts/darwin_amd64.sh`。二进制文件将被放置在 `build/bin/darwin_amd64` 文件夹中。 对于 amd64 Linux,运行 `./build/scripts/linux_amd64.sh`。二进制文件将被放置在 `build/bin/linux_amd64` 文件夹中。 对于 amd64 Windows,在 powershell 终端中,运行 `.\build\scripts\windows_amd64.ps1`。二进制文件将被放置在 `build\bin\windows_amd64` 文件夹中。 请注意,编译 Windows 共享库需要 gcc。在 Windows 上获取 gcc 的最简单方法是下载 Mingw64,并将 "gcc.exe" 添加到 powershell 路径中。 ## 许可证 Apache - 有关更多信息,请参阅 [LICENSE](./LICENSE)。
标签:AI合规, Cutter, EVTX分析, 日志审计