View a markdown version of this page

为 Google 云端硬盘设置服务帐号身份验证 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为 Google 云端硬盘设置服务帐号身份验证

对于 Google 云端硬盘数据源,推荐使用服务帐号身份验证 (SERVICE_ACCOUNT)。Google Cloud 服务帐号使用私钥进行身份验证,然后冒充 Google Workspace 管理员用户抓取您网域中任何用户的云端硬盘内容。这是唯一支持文档级访问控制 (ACL) 的方法。

需要管理权限

此设置要求 Google Workspace 管理员启用 API、创建服务帐号、配置全网域委托以及创建委派管理员用户。该 AWS 方需要管理员访问 AWS Secrets Manager 和 IAM。

第 1 步:创建谷歌云项目

  1. 打开谷歌云控制台

  2. 从页面顶部的项目选择器中选择 “新建项目”。

  3. 输入项目名称,然后选择 “创建”。

  4. 创建项目后,从项目选择器切换到该项目。

步骤 2:启用所需的 API

  1. 在 Google Cloud 控制台的导航菜单中,选择 API 和服务,然后选择资源库

  2. 搜索并启用以下每个 API:

    • 谷歌云硬盘 API

    • 谷歌云端硬盘活动 API

    • 管理员 SDK API

步骤 3:创建服务帐号

  1. 在导航菜单中,选择 API 和服务,然后选择 “凭据”。

  2. 选择创建凭证,然后选择服务帐号

  3. 输入名称(例如bedrock-google-drive-connector)和可选描述,然后选择 “完成”。

  4. 在 “凭据” 页面上,选择您刚刚创建的服务帐号。

  5. 详细信息选项卡上,复制唯一 ID。您可以在步骤 5 中使用它来授予全域授权。

步骤 4:生成私钥

  1. 在服务帐号详细信息页面上,选择密钥选项卡。

  2. 选择添加密钥,然后选择创建新密钥

  3. 选择 JSON,然后选择创建。您的浏览器会下载包含服务帐号client_email和的 JSON 文件private_key。安全地存储文件。

注意

如果您收到一条错误消息,指出服务帐号密钥创建已被组织政策禁用,则必须为项目覆盖该iam.disableServiceAccountKeyCreation限制。有关详细信息,请参阅 Google Cloud 文档中的限制服务帐号的使用

步骤 5:配置全网域授权

Domain-wide 委托允许服务帐号代表您的 Google Workspace 中的用户行事。

  1. Google 工作空间管理员的身份登录 Google Workspace 管理员控制台

  2. 在导航窗格中,选择安全访问和数据控制API 控件

  3. 选择 “管理全域授权”,然后选择 “新增”

  4. 客户端 ID 中,输入步骤 3 中服务帐号的唯一 ID。

  5. 对于 OAuth 作用域,请输入以下以逗号分隔的值:

    https://www.googleapis.com/auth/drive.readonly, https://www.googleapis.com/auth/drive.metadata.readonly, https://www.googleapis.com/auth/admin.directory.user.readonly, https://www.googleapis.com/auth/admin.directory.group.readonly, https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/forms.body.readonly
  6. 选择授权

步骤 6:创建委派管理员用户

该服务帐号在抓取内容时会冒充 Google Workspace 管理员用户。我们建议为此目的创建一个专门的管理员用户,其所需角色最少。

  1. 在 Google Workspace 管理员控制台中,选择目录,然后选择用户

  2. 选择 “添加新用户”,输入名字、姓氏和主电子邮件地址,然后选择 “添加新用户”。

  3. 在用户列表中,打开您创建的用户。

  4. 展开 “管理员角色和权限” 部分,然后分配以下角色:

    • 群组阅读器

    • 用户管理管理员

    • 存储管理员

  5. 选择保存。记录此用户的电子邮件地址;您可以将其存储在秘密中adminAccountEmail

第 7 步:创建 Secrets Manager 密钥

使用以下键值对将凭证存储在 AWS Secrets Manager 密钥中。privateKey从您在步骤 4 中下载的 JSON 密钥文件中复制clientEmail和(使用client_emailprivate_key值)。

{ "adminAccountEmail": "admin@your-domain.com", "clientEmail": "your-service-account@your-project.iam.gserviceaccount.com", "privateKey": "your-private-key-from-the-json-key-file" }

使用以下命令创建密钥 AWS Command Line Interface:

aws secretsmanager create-secret \ --name bedrock-google-drive-sa-creds \ --secret-string file://secret.json

记录响应中的秘密 ARN。您可以将其用作数据源secretArn

注意

privateKey值包含 JSON 密钥文件中的文字\n转义序列。将值复制到密钥中时,请保持原样。

后续步骤

存储密钥后,在authType设置为的情况下创建数据源SERVICE_ACCOUNT。请参阅连接 Google 云端硬盘数据源。要按用户权限筛选查询结果,请参阅Document-level 访问控制