View a markdown version of this page

文件層級存取控制 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

文件層級存取控制

SharePoint 資料來源可選擇性支援文件層級存取控制。啟用時,Bedrock 受管知識庫會在每個網路爬取期間從 SharePoint 同步存取控制清單 (ACLs),並在查詢時驗證每個使用者的許可,因此使用者只會看到他們獲授權在 SharePoint 中存取的文件結果。如需所有連接器的 ACL 意識概觀,請參閱 存取控制清單意識啟用

ACL 意識不是授權

Bedrock 受管知識庫提供 ACL 感知篩選,而不是安全界限。Bedrock 受管知識庫不會驗證最終使用者 — 您的應用程式負責驗證使用者並傳遞已驗證的身分內容。由於 Bedrock 受管知識庫無法驗證您提供的使用者內容的真實性,因此此功能會根據您提供的身分篩選結果,但不會構成真正的授權。在沒有上游身分驗證的情況下,您不得依賴此功能做為唯一存取控制機制。

運作方式

當使用者查詢使用啟用 ACL 的 SharePoint 資料來源的知識庫時,Bedrock 受管知識庫會分兩個階段強制執行存取控制:

  • 擷取前篩選 — Bedrock 受管知識庫會套用上次網路爬取期間從 SharePoint 同步的存取控制清單,只傳回允許使用者 (或其群組) 存取的候選文件。

  • 即時驗證 — Bedrock 受管知識庫會檢查使用者在 SharePoint 中的目前存取權,以即時驗證候選文件。回應中僅包含使用者目前獲授權存取的文件。

這種兩階段方法提供文件層級的存取控制,即使 SharePoint 許可在同步之間變更,也能保持最新狀態。

爬取的內容

啟用 ACLs時,Bedrock 受管知識庫會從 SharePoint 爬取下列許可結構:

  • 網站層級成員資格和角色指派

  • 文件程式庫層級許可

  • 項目層級 (檔案和頁面) 許可,包括破壞繼承的唯一許可

  • 安全群組成員資格,包括 Microsoft Entra ID (Azure AD) 安全群組、啟用郵件的安全群組和分發群組。巢狀 (暫時性) 群組成員資格也會獲得解決。

在查詢時,您傳遞使用者的電子郵件地址 (非群組)。Bedrock 受管知識庫會從其編目的資料解析該使用者的群組成員資格,並在篩選結果時套用。如需身分模型的詳細資訊,請參閱 存取控制清單意識啟用

啟用 ACL 意識

若要啟用 SharePoint 資料來源的 ACL 意識,請在 trueaclEnabled將 設定為 ENTRA_ID_APP_ONLY connectorParameters,並使用 身分驗證類型。此身分驗證類型使用憑證型應用程式許可,允許 Bedrock 受管知識庫在查詢時間爬取身分資訊並驗證文件存取。

重要

ACL 組態是永久的。您無法在無 ACLs 支援的情況下建立的資料來源上啟用 ACL,而且一旦啟用,就無法停用 ACLs。

您的 Entra ID 應用程式註冊必須具有下列應用程式許可:

  • User.Read.All Microsoft Graph GroupMember.Read.All上的 和 (用於身分爬取)

  • Sites.FullControl.All 在 SharePoint 上,或授予每個站台的許可 Sites.Selected (用於文件存取驗證)

connectionConfiguration 必須包含certificateS3Path指向 Amazon S3 中 PKCS#12 (.p12) 憑證檔案的 。

注意

秘密中的 certificatePassword 欄位是選用的。如果您省略它,Boodrock 受管知識庫會使用應用程式的用戶端 ID 做為密碼來開啟 PKCS#12 (.p12) 檔案,因此必須使用該密碼建立憑證。我們建議您一律設定明確的高certificatePassword熵,以保護憑證的靜態私有金鑰。

"connectorParameters": { "type": "SHAREPOINT", "version": "1", "aclEnabled": true, "connectionConfiguration": { "tenantId": "your-tenant-id", "authType": "ENTRA_ID_APP_ONLY", "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name", "certificateS3Path": { "s3BucketName": "your-certificate-bucket", "s3KeyName": "certs/certificate.p12" } }, "dataEntityConfiguration": { "siteUrls": [ "https://contoso.sharepoint.com/sites/engineering" ], "crawlFiles": true, "crawlPages": true } }
注意

啟用 ACL 的 SharePoint OAUTH2_APP 資料來源不支援身分驗證類型。您必須使用 ENTRA_ID_APP_ONLY

即時存取驗證

Bedrock 受管知識庫使用應用程式的憑證型許可 (為爬取設定ENTRA_ID_APP_ONLY的應用程式註冊),在查詢時間針對 SharePoint 驗證每個候選文件。與委派的使用者登入流程不同,不需要互動的每位使用者登入或同意 - 透過 Sites.FullControl.AllSites.Selected許可,驗證會使用相同的應用程式註冊和憑證,以確認查詢使用者仍然可以存取每個文件。

驗證您的組態

您可以獨立於擷取請求來驗證您的 Entra 應用程式許可。執行下列各項檢查:

  1. Microsoft Graph (網路爬取)

    • 取得具有範圍的應用程式字符https://graph.microsoft.com/.default,並確認roles宣告包含 User.Read.AllGroupMember.Read.All

    • 呼叫 Microsoft Graph 網站端點 (例如 GET https://graph.microsoft.com/v1.0/sites/{site}),並確認它傳回網站。

  2. SharePoint REST (即時驗證)

    • 使用範圍為 的憑證用戶端聲明來取得權杖https://{tenant}.sharepoint.com/.default

    • 確認字符的roles宣告包含 SharePoint Sites.FullControl.All(或 Sites.Selected) 許可。roles: null 值表示缺少許可或管理員同意。

    • 呼叫GET https://{tenant}.sharepoint.com/_api/web並確認成功 (HTTP 200)。失敗或未經授權的回應表示缺少 SharePoint 許可或管理員同意,這會導致所有文件被拒絕。

疑難排解

注意

ACL 設定錯誤不會在擷取期間產生明確的錯誤。擷取關閉失敗:會無提示地省略受影響的文件,因此查詢會傳回較少或零的結果,而不是錯誤。使用上述驗證檢查來診斷這些問題。

啟用 ACL 的 SharePoint 症狀、原因和修正
徵狀 可能原因 修正
擷取會傳回 0 個結果,但使用者在 SharePoint 中具有存取權。 SharePoint Sites.FullControl.All(或 Sites.Selected) 許可或管理員同意遺失,因此 SharePoint REST 呼叫會遭到拒絕,且每個文件都會遭到拒絕。 在獲得管理員同意的情況下授予 SharePoint Sites.FullControl.All許可 (或使用Sites.Selected每個站台的授予)。由於這些應用程式登入資料會快取,因此最多需要一小時的時間,變更才會生效,或是與not-yet-queried的使用者進行測試,以便更快確認。
使用者在 SharePoint 中的存取權已變更,但新結果不會立即反映。 每個使用者存取結果在資料來源和 Bedrock 受管知識庫 (通常在大約兩分鐘內) 之間最終一致,因此最近的存取變更可能不會立即反映。 在資料來源反映變更之後,請等待約兩分鐘,然後重試。
所有使用者在先前運作後都會遭到拒絕。 憑證已過期,或管理員同意已撤銷。 在 Entra 應用程式註冊和 Amazon S3 中續約憑證,並重新授予管理員同意。
雖然組態看起來正確,網路爬取或同步會失敗。 缺少必要的 Microsoft Graph 應用程式許可。 授予 User.Read.AllGroupMember.Read.All
憑證密碼或字符挖掘錯誤。 .p12 密碼不符合 certificatePassword certificatePassword設定為用來建立 .p12 檔案的密碼。