

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

# 使用加密模型评估任务所需的密钥策略元素 AWS KMS
<a name="model-evaluation-security-kms"></a>

每个 AWS KMS 密钥必须只有一个密钥策略。密钥策略中的声明决定谁有权使用 AWS KMS 密钥以及他们如何使用密钥。您也可以使用 IAM 策略和授权来控制对 AWS KMS 密钥的访问权限，但每个 AWS KMS 密钥都必须有密钥策略。

**必需 AWS KMS Amazon Bedrock 中的关键政策要素**
+ `kms:Decrypt` – 对于您使用 AWS Key Management Service 密钥加密的文件，请向 Amazon Bedrock 提供访问和解密这些文件的权限。
+ `kms:GenerateDataKey` – 控制权限以使用 AWS Key Management Service 密钥来生成数据密钥。Amazon Bedrock 使用 `GenerateDataKey` 加密为评测作业存储的临时数据。
+ `kms:DescribeKey` – 提供有关 KMS 密钥的详细信息。

您必须将以下语句添加到现有的 AWS KMS 密钥策略中。它为 Amazon Bedrock 提供了使用您指定的 AWS KMS 将您的数据临时存储在 Amazon Bedrock 服务存储桶中的权限。

```
{
	"Effect": "Allow",
	"Principal": {
	    "Service": "bedrock.amazonaws.com"
	},
	"Action": [
	    "kms:GenerateDataKey",
	    "kms:Decrypt",
	    "kms:DescribeKey"
	],
	"Resource": "*",
	"Condition": {
	    "StringLike": {
	        "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:{{region}}:{{accountId}}:evaluation-job/*",
	        "aws:SourceArn": "arn:aws:bedrock:{{region}}:{{accountId}}:evaluation-job/*"
	    }
	}
}
```

以下是完整 AWS KMS 策略的示例。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-consolepolicy-3",
    "Statement": [
        {
            "Sid": "EnableIAMUserPermissions",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::{{111122223333}}:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "BedrockDataKeyAndDecrypt",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:{{us-east-1}}:{{123456789012}}:evaluation-job/*",
                    "aws:SourceArn": "arn:aws:bedrock:{{us-east-1}}:{{123456789012}}:evaluation-job/*"
                }
            }
        },
        {
            "Sid": "BedrockDescribeKey",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:bedrock:{{us-east-1}}:{{123456789012}}:evaluation-job/*"
                }
            }
        }
    ]
}
```

------

## 为调用 CreateEvaluationJob API 的角色设置 KMS 权限
<a name="model-evaluation-kms-create-job"></a>

确保您的角色具有 DescribeKey GenerateDataKey、和 Decrypt 权限，这些权限用于在评估作业中使用的 KMS 密钥上创建评估作业。

KMS 密钥策略示例

```
{
    "Statement": [
       {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::account-id:role/APICallingRole"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kmsDescribeKey"
            ],
            "Resource": "*"
       }
   ]
}
```

角色调用 CreateEvaluationJob API 的 IAM 策略示例

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CustomKMSKeyProvidedToBedrockEncryption",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{keyYouUse}}"
            ]
        }
    ]
}
```

------