

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

# 为用户或角色设置创建和管理知识库所需的权限
<a name="knowledge-base-prereq-permissions-general"></a>

要使用户或角色能够执行与 Amazon Bedrock 知识库相关的操作，您必须为其附加策略以授予执行这些操作所需的权限。它描述了用户从这些知识库中检索信息并从中生成响应所需的权限。

展开以下各个部分，了解如何针对特定使用案例设置权限：

## 使角色能够创建并管理知识库
<a name="w2aac28c10c21b7b1"></a>

要使 IAM 角色能够创建知识库、将知识库连接到结构化数据存储、管理知识库以及启动和管理从数据来源到知识库的摄取作业，您必须为 `KnowledgeBase`、`DataSource` 和 `IngestionJob` 操作提供权限。要提供知识库标记权限，请包含对 `bedrock:TagResource` 和 `bedrock:UntagResource` 的权限。

**注意**  
如果用户或角色附加了[AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess) AWS 托管策略，则可以跳过此先决条件。

要使角色能够执行这些操作，请将以下策略附加到该角色：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateKB",
            "Effect": "Allow",
            "Action": [
                "bedrock:CreateKnowledgeBase"
            ],
            "Resource": "*"
        },
        {
            "Sid": "KBDataSourceManagement",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetKnowledgeBase",
                "bedrock:ListKnowledgeBases",
                "bedrock:UpdateKnowledgeBase",
                "bedrock:DeleteKnowledgeBase",
                "bedrock:StartIngestionJob",
                "bedrock:GetIngestionJob",
                "bedrock:ListIngestionJobs",
                "bedrock:StopIngestionJob",
                "bedrock:TagResource",
                "bedrock:UntagResource"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/*"
            ]
        }
    ]
}
```

------

创建知识库后，我们建议您将通配符 (*\$1*) 替换`KBDataSourceManagement`为您创建的知识库的 ID，从而缩小语句中的权限范围。

## 使角色能够执行知识库 API 操作
<a name="w2aac28c10c21b7b3"></a>

此部分介绍为知识库执行 `Retrieve` 和 `RetrieveAndGenerate` API 操作时所需的权限。

将以下策略附加到角色：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetKB",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetKnowledgeBase"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/${KnowledgeBaseId}"
            ]
        },
        {
            "Sid": "Retrieve",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/${KnowledgeBaseId}"
            ]
        },
        {
            "Sid": "RetrieveAndGenerate",
            "Effect": "Allow",
            "Action": [
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

您可以根据使用案例移除不需要的语句：
+ `GetKB` 语句用于获取知识库信息。
+ 需要使用 `Retrieve` 语句来调用 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) 以从数据存储中检索数据。
+ 需要使用 `RetrieveAndGenerate` 语句来调用 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) 以从数据存储中检索数据，并根据该数据生成响应。

## 申请访问以下基础模型 RetrieveAndGenerate
<a name="knowledge-base-prereq-structured-model-access"></a>

如果您打算使用 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) 基于从数据来源中检索到的数据生成响应，请按照[访问 Amazon Bedrock 基础模型](model-access.md)中的步骤操作，请求对用于生成的基础模型的访问权限。

要进一步限制权限，您可以忽略操作，或者指定用于筛选权限的资源和条件键。有关操作、资源和条件键的更多信息，请参阅《服务授权参考》**中的以下主题：
+ [Amazon Bedrock 定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions) – 了解操作、您可以在 `Resource` 字段中限定范围的资源类型，以及 `Condition` 字段中可用于筛选权限的条件键。
+ [Amazon Bedrock 定义的资源类型](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-resources-for-iam-policies) – 了解 Amazon Bedrock 中的资源类型。
+ [Amazon Bedrock 的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) – 了解 Amazon Bedrock 中的条件键。