本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Google Drive 的服務帳戶身分驗證
服務帳戶身分驗證 (SERVICE_ACCOUNT) 是 Google Drive 資料來源的建議方法。Google Cloud 服務帳戶會使用私有金鑰進行身分驗證,然後模擬 Google Workspace 管理員使用者為您網域中的任何使用者爬取磁碟機內容。這是唯一支援文件層級存取控制 (ACLs的方法。
需要管理存取權
此設定需要 Google Workspace 管理員才能啟用 APIs、建立服務帳戶、設定全網域委派,以及建立委派的管理員使用者。 AWS 端需要管理員存取 AWS Secrets Manager 和 IAM。
步驟 1:建立 Google Cloud 專案
-
開啟 Google Cloud 主控台
。 -
從頁面頂端的專案選擇器中,選擇新專案。
-
輸入專案名稱,然後選擇建立。
-
建立專案之後,請從專案選擇器切換到專案。
步驟 2:啟用所需的 APIs
-
在 Google Cloud 主控台導覽功能表中,選擇 APIs Services,然後選擇程式庫。
-
搜尋並啟用下列每個 APIs:
Google Drive API
Google Drive 活動 API
管理員 SDK API
步驟 3:建立服務帳戶
-
在導覽功能表中,選擇 APIs & Services,然後選擇登入資料。
-
選擇建立登入資料,然後選擇服務帳戶。
-
輸入名稱 (例如
bedrock-google-drive-connector) 和選用描述,然後選擇完成。 -
在登入資料頁面上,選擇您剛建立的服務帳戶。
-
在詳細資訊索引標籤上,複製唯一 ID。您可以在步驟 5 中使用此選項來授予整個網域的委派。
步驟 4:產生私有金鑰
-
在服務帳戶詳細資訊頁面上,選擇金鑰索引標籤。
-
選擇新增金鑰,然後選擇建立新金鑰。
-
選取 JSON,然後選擇建立。您的瀏覽器會下載包含服務帳戶
client_email和 的 JSON 檔案private_key。安全地存放檔案。
注意
如果您收到錯誤,指出組織政策已停用服務帳戶金鑰建立,您必須覆寫專案iam.disableServiceAccountKeyCreation的限制。如需詳細資訊,請參閱 Google Cloud 文件中的限制服務帳戶用量
步驟 5:設定全網域委派
全網域委派可讓服務帳戶代表您 Google Workspace 中的使用者。
-
以 Google Workspace 管理員
身分登入 Google Workspace Admin Console。 -
在導覽窗格中,選擇安全性、存取和資料控制、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 -
選擇 Authorize (授權)。
步驟 6:建立委派的管理員使用者
服務帳戶會在爬取內容時模擬 Google Workspace 管理員使用者。我們建議您為此目的建立具有最低必要角色的專用管理員使用者。
-
在 Google Workspace Admin Console 中,選擇目錄,然後選擇使用者。
-
選擇新增使用者,輸入名字、姓氏和主要電子郵件地址,然後選擇新增使用者。
-
從使用者清單中,開啟您建立的使用者。
-
展開管理員角色和權限區段,並指派下列角色:
Groups Reader
使用者管理管理員
儲存管理員
-
選擇儲存。記錄此使用者的電子郵件地址;您可以將其存放在秘密中,做為
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 Drive 資料來源。若要依使用者許可篩選查詢結果,請參閱 文件層級存取控制。