

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

# 지식 기반 평가 작업을 위한 데이터 암호화
<a name="rag-evaluation-security-data"></a>

지식 기반 평가 작업 중에 Amazon Bedrock은 데이터의 임시 사본을 만듭니다. Amazon Bedrock은 작업이 완료된 후 데이터를 삭제합니다. Amazon Bedrock은 데이터를 암호화하기 위해 KMS 키를 사용합니다. 지정한 KMS 키 또는 Amazon Bedrock이 소유한 키를 사용합니다.

Amazon Bedrock은 KMS 키를 사용하여 다음을 수행할 수 있도록 다음 섹션의 IAM 및 AWS KMS 권한이 필요합니다.
+ 데이터를 해독합니다.
+ Amazon Bedrock이 생성하는 임시 사본을 암호화합니다.

지식 기반 평가 작업을 생성할 때 Amazon Bedrock이 소유한 KMS 키를 사용하도록 선택하거나 자체 고객 관리형 키를 선택할 수 있습니다. 고객 관리형 키를 지정하지 않으면 Amazon Bedrock은 기본적으로 해당 키를 사용합니다.

고객 관리형 키를 사용하려면 먼저 다음을 수행해야 합니다.
+ IAM 서비스 역할의 정책에 필요한 IAM 작업 및 리소스를 추가합니다.
+ 필요한 KMS 키 정책 요소를 추가합니다.
+ 고객 관리형 키와 상호 작용할 수 있는 정책을 만듭니다. 이는 별도의 KMS 키 정책에 지정되어 있습니다.

## 필수 정책 요소
<a name="rag-evel-policy-elements"></a>

다음 섹션의 IAM 및 KMS 키 정책에는 다음과 같은 필수 요소가 포함되어 있습니다.
+ `kms:Decrypt` - KMS 키로 암호화한 파일의 경우, Amazon Bedrock에 해당 파일에 대한 액세스 및 복호화 권한을 제공합니다.
+ `kms:GenerateDataKey` - KMS 키를 사용하여 데이터 키를 생성할 수 있는 권한을 제어합니다. Amazon Bedrock은 `GenerateDataKey`를 사용하여 평가 작업에 대해 저장하는 임시 데이터를 암호화합니다.
+ `kms:DescribeKey` - KMS 키에 관한 세부 정보를 제공합니다.
+ `kms:ViaService` - 조건 키는 지정된 AWS 서비스에서 요청할 KMS 키 사용을 제한합니다. 다음 서비스를 지정해야 합니다.
  + Amazon S3. Amazon Bedrock은 소유한 Amazon S3 위치에 데이터의 임시 사본을 저장하기 때문입니다.
  + Amazon Bedrock. 평가 서비스가 지식 기반 API를 직접 호출하여 지식 기반 워크플로를 실행하기 때문입니다.
+ `kms:EncryptionContext:context-key` -이 조건 키는 제공된 [암호화 컨텍스트](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)에만 특정하도록 AWS KMS 작업에 대한 액세스를 제한합니다.

## IAM 정책 요구 사항
<a name="rag-eval-iam-policies"></a>

Amazon Bedrock에서 사용하는 IAM 역할에서 연결된 IAM 정책에는 다음 요소가 있어야 합니다. AWS KMS 키 관리에 대한 자세한 내용은 [에서 IAM 정책 사용을 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) 참조하세요.

Amazon Bedrock의 지식 기반 평가 작업은 AWS 소유 키를 사용합니다. AWS 소유 키에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS 소유 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) 참조하세요.

다음은 필요한 AWS KMS 작업 및 리소스만 포함하는 IAM 정책의 예입니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CustomKMSKeyProvidedToBedrockEncryption",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/*"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "s3.{{us-east-1}}.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockEvalKMS",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:{{us-east-1}}:{{123456789012}}:evaluation-job/*"
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockKBDecryption",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:{{us-east-1}}:{{123456789012}}:knowledge-base/*"
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockKBEncryption",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:{{us-east-1}}:{{123456789012}}:knowledge-base/*"
                },
                "StringEquals": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockKBGenerateDataKey",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:CustomerAwsAccountId": "{{123456789012}}",
                    "kms:EncryptionContext:SessionId": "*"
                },
                "StringEquals": {
                    "kms:ViaService": [
                        "bedrock.{{us-east-1}}.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "CustomKMSDescribeKeyProvidedToBedrock",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/*"
            ]
        }
    ]
}
```

------

## AWS KMS 키 정책 요구 사항
<a name="rag-eval-kms-policies"></a>

모든 KMS 키에는 단일 키 정책이 요구됩니다. 키 정책에 따라 KMS 키의 사용 권한 보유자와 사용 방법이 결정됩니다. KMS 키에 대한 액세스는 IAM 정책 및 권한 부여를 사용하여 제어할 수도 있지만 모든 KMS 키에는 키 정책이 필요합니다.

기존 KMS 키 정책에 다음 스테이트먼트를 추가해야 합니다. 이 문은 사용자가 지정한 KMS 키를 사용하여 S3 버킷에 사용자의 데이터를 일시적으로 저장할 수 있는 권한을 Amazon Bedrock에 제공합니다.

### CreateEvaluationJob API를 직접 호출하는 역할에 대한 KMS 권한 설정
<a name="model-evaluation-kms-create-job-2"></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}}"
            ]
        }
    ]
}
```

------