

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 知識庫評估任務的服務角色需求
<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/*"
                }
            }
        }
    ]
}
```

------