本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Google 云端硬盘设置服务帐号身份验证
对于 Google 云端硬盘数据源,推荐使用服务帐号身份验证 (SERVICE_ACCOUNT)。Google Cloud 服务帐号使用私钥进行身份验证,然后冒充 Google Workspace 管理员用户抓取您网域中任何用户的云端硬盘内容。这是唯一支持文档级访问控制 (ACL) 的方法。
需要管理权限
此设置要求 Google Workspace 管理员启用 API、创建服务帐号、配置全网域委托以及创建委派管理员用户。该 AWS 方需要管理员访问 AWS Secrets Manager 和 IAM。
第 1 步:创建谷歌云项目
-
打开谷歌云控制台
。 -
从页面顶部的项目选择器中选择 “新建项目”。
-
输入项目名称,然后选择 “创建”。
-
创建项目后,从项目选择器切换到该项目。
步骤 2:启用所需的 API
-
在 Google Cloud 控制台的导航菜单中,选择 API 和服务,然后选择资源库。
-
搜索并启用以下每个 API:
谷歌云硬盘 API
谷歌云端硬盘活动 API
管理员 SDK API
步骤 3:创建服务帐号
-
在导航菜单中,选择 API 和服务,然后选择 “凭据”。
-
选择创建凭证,然后选择服务帐号。
-
输入名称(例如
bedrock-google-drive-connector)和可选描述,然后选择 “完成”。 -
在 “凭据” 页面上,选择您刚刚创建的服务帐号。
-
在详细信息选项卡上,复制唯一 ID。您可以在步骤 5 中使用它来授予全域授权。
步骤 4:生成私钥
-
在服务帐号详细信息页面上,选择密钥选项卡。
-
选择添加密钥,然后选择创建新密钥。
-
选择 JSON,然后选择创建。您的浏览器会下载包含服务帐号
client_email和的 JSON 文件private_key。安全地存储文件。
注意
如果您收到一条错误消息,指出服务帐号密钥创建已被组织政策禁用,则必须为项目覆盖该iam.disableServiceAccountKeyCreation限制。有关详细信息,请参阅 Google Cloud 文档中的限制服务帐号的使用
步骤 5:配置全网域授权
Domain-wide 委托允许服务帐号代表您的 Google Workspace 中的用户行事。
-
在导航窗格中,选择安全、访问和数据控制、API 控件。
-
选择 “管理全域授权”,然后选择 “新增”。
-
在客户端 ID 中,输入步骤 3 中服务帐号的唯一 ID。
-
对于 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:创建委派管理员用户
该服务帐号在抓取内容时会冒充 Google Workspace 管理员用户。我们建议为此目的创建一个专门的管理员用户,其所需角色最少。
-
在 Google Workspace 管理员控制台中,选择目录,然后选择用户。
-
选择 “添加新用户”,输入名字、姓氏和主电子邮件地址,然后选择 “添加新用户”。
-
在用户列表中,打开您创建的用户。
-
展开 “管理员角色和权限” 部分,然后分配以下角色:
群组阅读器
用户管理管理员
存储管理员
-
选择保存。记录此用户的电子邮件地址;您可以将其存储在秘密中
adminAccountEmail。
第 7 步:创建 Secrets Manager 密钥
使用以下键值对将凭证存储在 AWS Secrets Manager 密钥中。privateKey从您在步骤 4 中下载的 JSON 密钥文件中复制clientEmail和(使用client_email和private_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 \ --namebedrock-google-drive-sa-creds\ --secret-string file://secret.json
记录响应中的秘密 ARN。您可以将其用作数据源secretArn。
注意
该privateKey值包含 JSON 密钥文件中的文字\n转义序列。将值复制到密钥中时,请保持原样。
后续步骤
存储密钥后,在authType设置为的情况下创建数据源SERVICE_ACCOUNT。请参阅连接 Google 云端硬盘数据源。要按用户权限筛选查询结果,请参阅Document-level 访问控制。