

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 모델 평가 작업을 암호화하는 데 필요한 키 정책 요소 AWS KMS
<a name="model-evaluation-security-kms"></a>

모든 AWS KMS 키에는 정확히 하나의 키 정책이 있어야 합니다. 키 정책의 문에 따라 AWS KMS 키를 사용할 권한이 있는 사용자와 키 사용 방법이 결정됩니다. IAM 정책 및 권한 부여를 사용하여 AWS KMS 키에 대한 액세스를 제어할 수도 있지만 모든 AWS KMS 키에는 키 정책이 있어야 합니다.

**Amazon Bedrock의 필수 AWS KMS 키 정책 요소**
+ `kms:Decrypt` - AWS Key Management Service 키로 암호화한 파일의 경우, Amazon Bedrock에 해당 파일에 대한 액세스 및 복호화 권한을 제공합니다.
+ `kms:GenerateDataKey` - AWS Key Management Service 키를 사용하여 데이터 키를 생성할 수 있는 권한을 제어합니다. Amazon Bedrock은 `GenerateDataKey`를 사용하여 평가 작업에 대해 저장하는 임시 데이터를 암호화합니다.
+ `kms:DescribeKey` - KMS 키에 관한 세부 정보를 제공합니다.

기존 AWS KMS 키 정책에 다음 문을 추가해야 합니다. 이 문은 사용자가 지정한 AWS KMS 를 사용하여 Amazon Bedrock 서비스 버킷에 사용자의 데이터를 일시적으로 저장할 수 있는 권한을 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>

평가 작업에 사용하는 KMS 키에서 평가 작업을 생성하는 데 사용되는 역할에 대한 DescribeKey, GenerateDataKey 및 Decrypt 권한이 있는지 확인합니다.

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}}"
            ]
        }
    ]
}
```

------