使用 JSON - Amazon Kendra

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

使用 JSON

以下示例说明如何在创建索引时使用 JSON 进行用户访问控制。

警告

JSON 令牌是未经验证的有效负载。只有当对 Amazon Kendra 的请求来自可信服务器而不是浏览器时,才应使用此选项。

Console
  1. 选择创建索引以开始创建新索引。

  2. 指定索引详细信息页面上,为您的索引指定名称和描述。

  3. 对于 IAM 角色,选择一个角色或选择创建新角色,并指定角色名称来创建新角色。该 IAM 角色将带有前缀 “AmazonKendra-”。

  4. 将所有其他字段保留为默认值。选择下一步

  5. 配置用户访问控制页面上,在访问控制设置下,选择以使用令牌进行访问控制。

  6. 令牌配置下,选择 JSON 作为令牌类型

  7. 指定要在 ACL 检查中使用的用户名

  8. 指定要在 ACL 检查中使用的一个或多个

  9. 选择下一步

  10. 配置详细信息页面中,选择开发者版本

  11. 选择创建以创建索引。

  12. 等待您的索引创建完成。 Amazon Kendra 为您的索引配置硬件。此操作可能需要一些时间。

CLI

要使用 JSON 输入文件创建索引,请先 AWS CLI 使用所需参数创建一个 JSON 文件:

{ "Name": "user-context", "Edition": "ENTERPRISE_EDITION", "RoleArn": "arn:aws:iam::account-id:role:/my-role", "UserTokenConfigurations": [ { "JsonTokenTypeConfiguration": { "UserNameAttributeField": "user", "GroupAttributeField": "group" } } ], "UserContextPolicy": "USER_TOKEN" }

接下来,使用输入文件调用 create-index。例如,如果您的 JSON 文件名为 create-index-openid.json,则可以使用以下名称:

aws kendra create-index --cli-input-json file://create-index-openid.json

如果您未使用 Open ID AWS IAM Identity Center,则可以将 JSON 格式的令牌发送给我们。如果这样做,则必须指定 JSON 令牌中的哪个字段包含用户名,哪个字段包含组。组字段值必须是 JSON 字符串数组。例如,如果您使用 SAML,您的令牌可能类似于以下内容:

{ "username" : "user1", "groups": [ "group1", "group2" ] }

TokenConfiguration 指定用户名和组字段名称:

{ "UserNameAttributeField":"username", "GroupAttributeField":"groups" }
Python
response = kendra.create_index( Name='user-context', Edition='ENTERPRISE_EDITION', RoleArn='arn:aws:iam::account-id:role:/my-role', UserTokenConfigurations=[ { "JwtTokenTypeConfiguration": { "UserNameAttributeField": "user", "GroupAttributeField": "group", } } ], UserContextPolicy='USER_TOKEN' )