

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

# 模型评估作业的服务角色要求
<a name="model-evaluation-security-service-roles"></a>

要创建模型评估作业，必须指定服务角色。服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

所需的 IAM 操作和资源取决于您将创建的模型评测作业的类型。参阅以下各个部分，详细了解所需的 Amazon Bedrock、Amazon SageMaker AI 以及 Amazon S3 IAM 操作、服务主体和资源。您可以选择使用 AWS Key Management Service 对数据进行加密。

**Topics**
+ [自动模型评估作业的服务角色要求](automatic-service-roles.md)
+ [基于人工的模型评测作业的服务角色要求](model-eval-service-roles.md)
+ [创建使用评判模型的模型评测作业所需的服务角色权限](judge-service-roles.md)
+ [知识库评测作业的服务角色要求](rag-eval-service-roles.md)

# 自动模型评估作业的服务角色要求
<a name="automatic-service-roles"></a>

要创建自动模型评估作业，必须指定服务角色。您附加的策略将授予 Amazon Bedrock 访问您账户中资源的权限，并允许 Amazon Bedrock 代表您调用所选模型。

还必须附加一项信任策略，将 Amazon Bedrock 定义为使用 `bedrock.amazonaws.com` 的服务主体。以下各个策略示例将根据自动模型评估作业中调用的各项服务，为您展示所需的确切 IAM 操作。

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

**必要的 Amazon S3 IAM 操作**  
以下策略示例将授予对 S3 存储桶（用于保存模型评估结果）的访问权限，以及对您指定的任何自定义提示数据集的访问权限（可选）。

------
#### [ 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 调用您计划在自动模型评估作业中指定的模型。要了解有关管理 Amazon Bedrock 模型访问权限的更多信息，请参阅[访问 Amazon Bedrock 基础模型](model-access.md)。在策略的 `"Resource"` 部分，您必须至少指定一个您也可以访问的模型的 ARN。要使用客户自主管理型 KMS 密钥加密的模型，您必须在 IAM 服务角色策略中添加所需的 IAM 操作和资源。您还必须将服务角色添加到AWS KMS密钥策略中。

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

****  

```
{
		    "Version":"2012-10-17",		 	 	 
            "Statement": [
        {
            "Sid": "AllowAccessToBedrockResources",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile", 
                "bedrock:ListInferenceProfiles",
                "bedrock:GetImportedModel",
                "bedrock:GetPromptRouter",
                "sagemaker:InvokeEndpoint"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/*",
                "arn:aws:bedrock:*:111122223333:inference-profile/*",
                "arn:aws:bedrock:*:111122223333:provisioned-model/*",
                "arn:aws:bedrock:*:111122223333:imported-model/*",
                "arn:aws:bedrock:*:111122223333:application-inference-profile/*",
                "arn:aws:bedrock:*:111122223333:default-prompt-router/*",
                "arn:aws:sagemaker:*:111122223333:endpoint/*",
                "arn:aws:bedrock:*:111122223333:marketplace/model-endpoint/all-access"
            ]
        }
    ]
}
```

------

**服务主体要求**  
还必须指定将 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": "111122223333"
        },
        "ArnEquals": {
            "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:evaluation-job/*"
        }
    }
}]
}
```

------

# 基于人工的模型评测作业的服务角色要求
<a name="model-eval-service-roles"></a>

要创建使用评估人员的模型评估作业，必须指定两个服务角色。

以下列表总结了必须在 Amazon Bedrock 控制台中指定的每个必要服务角色的 IAM 策略要求。

**Amazon Bedrock 服务角色的 IAM 策略要求摘要**
+ 必须添加将 Amazon Bedrock 定义为服务主体的信任策略。
+ 必须允许 Amazon Bedrock 代表您调用所选模型。
+ 必须允许 Amazon Bedrock 访问保存提示数据集的 S3 存储桶和将要保存结果的 S3 存储桶。
+ 必须允许 Amazon Bedrock 在您的账户中创建所需的人工循环资源。
+ （推荐）使用 `Condition` *块*来指定可以访问的账户。
+ （可选）如果您已加密提示数据集存储桶或将要保存结果的 Amazon S3 存储桶，则必须允许 Amazon Bedrock 解密您的 KMS 密钥。

**亚马逊 A SageMaker I 服务角色的 IAM 政策要求摘要**
+ 您必须附上将 A SageMaker I 定义为服务主体的信任策略。
+ 您必须允许 SageMaker AI 访问保存提示数据集的 S3 存储桶和要保存结果的 S3 存储桶。
+ （可选）如果您已加密提示数据集存储桶或想要获得结果的位置，则必须允许 SageMaker AI 使用您的客户托管密钥。

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

**必要的 Amazon S3 IAM 操作**  
以下策略示例将授予对保存模型评估结果的 S3 存储桶的访问权限，以及您指定的自定义提示数据集的访问权限。您需要将此策略附加到 SageMaker AI 服务角色和 Amazon Bedrock 服务角色。

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

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "AllowAccessToCustomDatasets",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::custom-prompt-dataset"
        ]
    },
    {
        "Sid": "AllowAccessToOutputBucket",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket",
            "s3:PutObject",
            "s3:GetBucketLocation",
            "s3:AbortMultipartUpload",
            "s3:ListBucketMultipartUploads"
        ],
        "Resource": [
            "arn:aws:s3:::model_evaluation_job_output"
        ]
    }
]
}
```

------

**必要的 Amazon Bedrock IAM 操作**  
要允许 Amazon Bedrock 调用您计划在自动模型评测作业中指定的模型，请将以下策略附加到 Amazon Bedrock 服务角色。在策略的 `"Resource"` 部分，您必须至少指定一个您也可以访问的模型的 ARN。要使用通过客户自主管理型 KMS 密钥加密的模型，您必须向 IAM 服务角色添加所需的 IAM 操作和资源。您还必须添加任何必需的 AWS KMS 关键策略元素。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccessToBedrockResources",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile", 
                "bedrock:ListInferenceProfiles",
                "bedrock:GetImportedModel",
                "bedrock:GetPromptRouter",
                "sagemaker:InvokeEndpoint"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/*",
                "arn:aws:bedrock:*:111122223333:inference-profile/*",
                "arn:aws:bedrock:*:111122223333:provisioned-model/*",
                "arn:aws:bedrock:*:111122223333:imported-model/*",
                "arn:aws:bedrock:*:111122223333:application-inference-profile/*",
                "arn:aws:bedrock:*:111122223333:default-prompt-router/*",
                "arn:aws:sagemaker:*:111122223333:endpoint/*",
                "arn:aws:bedrock:*:111122223333:marketplace/model-endpoint/all-access"
            ]
        }
    ]
}
```

------

**必要的 Amazon Augmented AI IAM 操作**  
您还必须创建一个策略，以便允许 Amazon Bedrock 创建与基于人工的模型评测作业相关的资源。由于 Amazon Bedrock 创建了启动模型评估作业所需的资源，因此您必须使用 `"Resource": "*"`。必须将此策略附加到 Amazon Bedrock 服务角色中。

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

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "ManageHumanLoops",
        "Effect": "Allow",
        "Action": [
            "sagemaker:StartHumanLoop",
            "sagemaker:DescribeFlowDefinition",
            "sagemaker:DescribeHumanLoop",
            "sagemaker:StopHumanLoop",
            "sagemaker:DeleteHumanLoop"
        ],
        "Resource": "*"
    }
]
}
```

------

**服务主体要求 (Amazon Bedrock)**  
还必须指定将 Amazon Bedrock 定义为服务主体的信任策略，以允许 Amazon Bedrock 担任该角色。

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

****  

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

------

**服务主体要求 (SageMaker AI)**  
还必须指定将 Amazon Bedrock 定义为服务主体的信任策略，这允许 SageMaker AI 扮演这个角色。

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

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
{
  "Sid": "AllowSageMakerToAssumeRole",
  "Effect": "Allow",
  "Principal": {
    "Service": "sagemaker.amazonaws.com"
  },
  "Action": "sts:AssumeRole"
}
]
}
```

------

# 创建使用评判模型的模型评测作业所需的服务角色权限
<a name="judge-service-roles"></a>

要创建使用 LLM 作为评判工具的模型评测作业，必须指定服务角色。您附加的策略将授予 Amazon Bedrock 访问您账户中资源的权限，并允许 Amazon Bedrock 代表您调用所选模型。

信任策略将 Amazon Bedrock 定义为使用 `bedrock.amazonaws.com` 的服务主体。以下各个策略示例将根据自动模型评测作业中调用的各项服务，为您展示所需的确切 IAM 操作。

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

## 必要的 Amazon Bedrock IAM 操作
<a name="judge-service-roles-br"></a>

您需要创建一个策略，允许 Amazon Bedrock 调用您计划在模型评测作业中指定的模型。要了解有关管理 Amazon Bedrock 模型访问权限的更多信息，请参阅[访问 Amazon Bedrock 基础模型](model-access.md)。在策略的 `"Resource"` 部分，您必须至少指定一个您也可以访问的模型的 ARN。要使用客户自主管理型 KMS 密钥加密的模型，您必须在 IAM 服务角色策略中添加所需的 IAM 操作和资源。您还必须将服务角色添加到AWS KMS密钥策略中。

服务角色必须包括对至少一个支持的评测器模型的访问权限。有关当前支持的评测器模型列表，请参阅[支持的模型](evaluation-judge.md#evaluation-judge-supported)。

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "BedrockModelInvoke",
			"Effect": "Allow",
			"Action": [
				"bedrock:InvokeModel",
				"bedrock:CreateModelInvocationJob",
				"bedrock:StopModelInvocationJob"
			],
			"Resource": [
				"arn:aws:bedrock:us-east-1::foundation-model/*",
				"arn:aws:bedrock:us-east-1:111122223333:inference-profile/*",
				"arn:aws:bedrock:us-east-1:111122223333:provisioned-model/*",
				"arn:aws:bedrock:us-east-1:111122223333:imported-model/*"
			]
		}
	]
}
```

------

## 必要的 Amazon S3 IAM 操作和资源
<a name="judge-service-roles-s3"></a>

服务角色策略必须包括对您希望保存模型评测作业输出的 Amazon S3 存储桶的访问权限，以及对您在 `CreateEvaluationJob` 请求中指定的或通过 Amazon Bedrock 控制台指定的提示数据集的访问权限。

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "FetchAndUpdateOutputBucket",
			"Effect": "Allow",
			"Action": [
				"s3:GetObject",
				"s3:ListBucket",
				"s3:PutObject",
				"s3:GetBucketLocation",
				"s3:AbortMultipartUpload",
				"s3:ListBucketMultipartUploads"
			],
			"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"
			]
		}
	]
}
```

------

# 知识库评测作业的服务角色要求
<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/*"
                }
            }
        }
    ]
}
```

------