认证 Google Sheets 数据源插件
Google Sheets 数据源插件使用 Google Sheet API 访问电子表格。它支持以下三种认证方式
使用 API key 认证
如果电子表格在互联网上公开共享,您可以使用 API key 在 Google Sheets 数据源中访问。请求无需授权,但需要附带一个标识符,即 API key。
生成 API key
- 在使用 Google API 之前,您需要在 Google Cloud 项目中启用它们。要启用 Google Sheets API,请参阅 Google Sheets API 页面。
- 在 Google API Console 中打开 凭据页面。
- 点击 创建凭据,然后点击 API key。
- 将 API key 复制到编辑器中,您稍后将使用它来配置插件。
注意
如果您想了解如何共享文件或文件夹,请参阅官方 Google Drive 文档。
使用服务账户 JWT 认证
如果您想访问私人电子表格,必须使用服务账户认证。Google 服务账户是属于账户或组织内某个项目的账户,而非属于个人终端用户。您的应用代表服务账户调用 Google API,因此用户不直接参与。
与服务账户关联的项目需要被授予访问 Google Sheets API 和 Google Drive API 的权限。
Google Sheets 数据源使用范围 https://www.googleapis.com/auth/spreadsheets.readonly
来获得对电子表格的只读访问权限。它还使用范围 https://www.googleapis.com/auth/drive.metadata.readonly
来列出服务账户在 Google Drive 中可以访问的所有电子表格。
创建服务账户、生成 Google JWT 文件并启用 API
在使用 Google API 之前,您需要在 Google Cloud 项目中启用它们。要启用 Google Sheets API,请参阅 Google Sheets API 页面。
在 Google API Console 中打开凭据页面。
点击 创建凭据,然后点击 服务账户。
填写服务账户详细信息表单,然后点击 创建。
在 服务账户权限 页面上,不要为服务账户添加角色,只需点击 继续。
下一步,点击 创建密钥。
选择密钥类型
JSON
,然后点击 创建。这将创建一个 JSON 密钥文件并下载到您的计算机上
打开 Google Sheets API 页面 并为您的账户启用访问权限。
打开 Google Drive API 页面 并为您的账户启用访问权限。您需要访问 Google Drive API 才能列出您有权访问的所有电子表格。
将您想要访问的任何私人文件和文件夹共享给服务账户的电子邮件地址。服务账户的电子邮件地址是 JWT 文件中的
client_email
字段。将 JWT 文件保存在您的机器上,您稍后将使用它来配置插件。
共享
默认情况下,服务账户无权访问与其关联的账户或组织内的任何电子表格。要授予服务账户访问 Google Drive 中文件和/或文件夹的权限,您需要将文件或文件夹共享给服务账户的电子邮件地址。服务账户的电子邮件地址是 JWT 文件中的 client_email
字段。要共享文件或文件夹,请参阅官方 Google Drive 文档。
注意
请注意,在您与服务账户共享文件或文件夹后,Grafana 中对此数据源具有权限的所有用户都能看到这些电子表格。
使用默认 GCE 服务账户认证
当 Grafana 在 Google Compute Engine (GCE) 虚拟机上运行时,Grafana 可以自动从元数据服务器检索默认凭据。因此,无需为服务账户生成私钥文件。您也无需将文件上传到 Grafana。
使用默认 GCE 服务账户进行认证
- 您必须创建一个供 GCE 虚拟机使用的服务账户。更多信息请参阅创建新的服务账户。
- 验证 GCE 虚拟机实例正以您创建的服务账户身份运行。更多信息请参阅设置实例以服务账户身份运行。
- 允许访问指定的 API 范围。
- 复制项目名称,您稍后将使用它来配置插件。