View a markdown version of this page

Document-level 访问控制 - Amazon Bedrock

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

Document-level 访问控制

ACL 感知不是授权

Bedrock 管理知识库提供 ACL-aware 过滤功能,而不是安全边界。Bedrock Managed Knowledge Base 不对最终用户进行身份验证——您的应用程序负责对用户进行身份验证并传递经过验证的身份上下文。由于 Bedrock Managed Knowledge Base 无法验证您提供的用户上下文的真实性,因此此功能会根据您提供的身份筛选结果,但不构成真正的授权。在没有上游身份验证的情况下,您不得依赖此功能作为唯一的访问控制机制。

Confluence 数据源可选地支持文档级访问控制。启用后,Bedrock Managed 知识库会在每次抓取期间同步 Confluence 的访问控制列表 (ACL),并在查询时验证每个用户的权限,因此用户只能在 Confluence 中看到他们有权访问的文档的结果。有关所有连接器上的 ACL 感知概述,请参阅访问控制列表感知启用

工作原理

当用户查询使用 ACL-enabled Confluence 数据源的知识库时,Bedrock 管理知识库分两个阶段强制执行访问控制:

  • Pre-retrieval 过滤 — Bedrock 托管知识库应用上次抓取期间从 Confluence 同步的访问控制列表,仅返回允许用户(或其群组)访问的候选文档。

  • Real-time 验证 — Bedrock 托管知识库通过检查查询用户在 Confluence 中的当前访问权限来实时验证候选文档。响应中仅包含用户当前有权访问的文档。

这种两阶段方法提供了文档级访问控制,即使 Confluence 权限在两次同步之间发生变化,也能保持最新状态。

爬行了什么

启用 ACL 后,Bedrock 托管知识库会从 Confluence 中抓取以下权限结构:

  • 空间 -默认情况下,空间权限适用于空间中的所有文档。

  • 页面 — 页面可以仅限于特定的用户和群组。嵌套页面继承父页面的限制。

  • 博客 — 博客文章可以仅限于特定的用户和群组。

  • 附件 -附加到页面或博客文章的文件继承其父文档的访问控制。

启用 ACL 感知

要启用 Confluence 数据源的 ACL 感知,请在true中设置aclEnabledconnectorParameters并使用BASIC身份验证类型。除了标准的电子邮件和 API 令牌外,该密钥还必须包括 Atlassian 组织管理员凭据。这些管理员凭据是进行身份抓取所必需的。

重要

ACL 配置是永久性的。您无法在不支持 ACL 的情况下创建的数据源上启用 ACL,也无法在启用 ACL 后将其禁用。

除了标准usernamepassword(API 令牌)和hostUrl字段外, AWS Secrets Manager 密钥还必须包括以下组织管理员字段。有关获取这些值的分步说明,请参阅为 Confluence 设置基本身份验证

  • adminApiKey— 具有read:directories:adminread:workspaces:admin范围的 Atlassian 组织 API 密钥。

  • organizationId— 您的 Atlassian 组织的 UUID。

  • directoryId— 您的 Confluence 工作空间的用户目录的 UUID。

注意

ACL-enabled Confl OAUTH2 uence 数据源不支持身份验证类型。您必须在密钥中BASIC使用 Atlassian 组织管理员凭据。

Real-time 访问验证

Bedrock Managed Knowledge Base 在查询时使用密钥中配置的 Atlassian Admin API 令牌完全在服务器端根据 Confluence 验证每个候选文档,无需最终用户登录。管理员令牌会检查查询用户的当前空间、页面和博客限制,因此自上次抓取以来所做的访问权限更改将得到尊重。

验证配置

您可以独立于检索请求来验证您的证书。执行以下每项检查:

  1. Confluence 内容访问权限(抓取):

    • 使用密钥中的username和 API 令牌 (password) 调用 Confluence REST API(例如,列表空间)并确认它返回 HTTP 200。

  2. Atlassian 管理员 API(身份爬取和实时验证):

    • 确认adminApiKey具有read:directories:adminread:workspaces:admin范围。

    • 使用adminApiKey,为您调用 Atlassian 管理员目录 API,organizationIddirectoryId然后确认它会返回您组织的用户和群组。

问题排查

注意

ACL 配置错误不会在检索期间产生明显的错误。检索失败关闭:受影响的文档会被静默忽略,因此查询返回的结果较少或为零,而不是错误。使用上面的验证检查来诊断这些问题。

ACL-enabled Confluence 症状、原因和修复方法
症状 可能原因 Fix
检索返回 0 个结果,但用户在 Confluence 中有访问权限。 Atlassian 管理员 API 密钥缺失范围,或者organizationId/directoryId错误,因此无法解决用户和群组限制。 确认adminApiKeyread:workspaces:adminread:directories:admin和、正确无directoryId误。organizationId
抓取或同步失败。 username或 API 令牌 (password) 无效。 验证密钥中的BASIC用户名和 API 令牌。
所有用户在先前工作后都将被拒绝。 API 令牌或管理员 API 密钥已过期或已被撤销。 轮换密钥中受影响的证书。