

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

# 知识库评测作业的服务角色要求
<a name="rag-eval-service-roles"></a>

要创建知识库评测作业，必须指定服务角色。您附加到角色的策略将授予 Amazon Bedrock 访问您账户中资源的权限，并允许 Amazon Bedrock 执行以下操作：
+ 使用 `RetrieveAndGenerate` API 操作调用您为生成输出选择的模型，并评估知识库输出。
+ 在您的知识库实例上，调用 Amazon Bedrock 知识库 `Retrieve` 和 `RetrieveAndGenerate` API 操作。

要创建自定义服务角色，请参阅《IAM 用户指南》**中的[使用自定义信任策略创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

**访问 Amazon S3 所需的 IAM 操作**  
以下示例策略将授予对满足以下两种情况的 S3 存储桶的访问权限：
+ 您保存知识库评测结果。
+ Amazon Bedrock 读取您的输入数据集。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Sid": "AllowAccessToCustomDatasets",
            "Effect": "Allow",
            "Action":
            [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource":
            [
                "arn:aws:s3:::my_customdataset1_bucket",
                "arn:aws:s3:::my_customdataset1_bucket/myfolder",
                "arn:aws:s3:::my_customdataset2_bucket",
                "arn:aws:s3:::my_customdataset2_bucket/myfolder"
            ]
        },
        {
            "Sid": "AllowAccessToOutputBucket",
            "Effect": "Allow",
            "Action":
            [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetBucketLocation",
                "s3:AbortMultipartUpload",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource":
            [
                "arn:aws:s3:::my_output_bucket",
                "arn:aws:s3:::my_output_bucket/myfolder"
            ]
        }
    ]
}
```

------

**必要的 Amazon Bedrock IAM 操作**  
您还需创建策略来允许 Amazon Bedrock 执行以下操作：

1. 调用您计划为以下任务指定的模型：
   + 使用 `RetrieveAndGenerate` API 操作生成结果。
   + 评估结果。

   对于策略中的 `Resource` 密钥，您必须指定至少一个自己可以访问的模型的 ARN。要使用通过客户自主管理型 KMS 密钥加密的模型，您必须向 IAM 服务角色策略添加所需的 IAM 操作和资源。您还必须将服务角色添加到 AWS KMS 密钥策略中。

1. 调用 `Retrieve` 和 `RetrieveAndGenerate` API 操作。请注意，在控制台的自动角色创建中，我们会同时授予对 `Retrieve` 和 `RetrieveAndGenerate` API 操作的权限，无论您选择为该作业评估什么操作。这样做可以提高角色的灵活性和可重用性。但是，为了增强安全性，自动创建的角色会与单个知识库实例绑定。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSpecificModels",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile",
                "bedrock:GetImportedModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/*",
                "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:imported-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/*"
            ]
        },
        {
            "Sid": "AllowKnowledgeBaseAPis",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve",
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id"
            ]
        }
    ]
}
```

------

**服务主体要求**  
还必须指定将 Amazon Bedrock 定义为服务主体的信任策略，此策略允许 Amazon Bedrock 代入该角色。需要使用通配符 (`*`) 模型评估任务 ARN，这样 Amazon Bedrock 才能在您的账户中创建模型评估任务。 AWS 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBedrockToAssumeRole",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:evaluation-job/*"
                }
            }
        }
    ]
}
```

------