

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

# 데이터 암호화
<a name="data-encryption"></a>

Amazon Bedrock은 암호화를 사용하여 저장 데이터와 전송 중 데이터를 보호합니다.

**전송 중 데이터 암호화**

내부 AWS에서 전송 중인 모든 네트워크 간 데이터는 TLS 1.2 암호화를 지원합니다.

Amazon Bedrock API 및 콘솔에 대한 요청은 안전한 SSL 연결을 통해 전달됩니다. Amazon Bedrock에 AWS Identity and Access Management (IAM) 역할을 전달하여 교육 및 배포를 위해 사용자를 대신하여 리소스에 액세스할 수 있는 권한을 제공합니다.

**저장된 데이터 암호화**

Amazon Bedrock은 저장 시 [사용자 지정 모델 암호화](encryption-custom-job.md)을 제공합니다.

## 키 관리
<a name="key-management"></a>

 AWS Key Management Service 를 사용하여 리소스를 암호화하는 데 사용하는 키를 관리합니다. 자세한 내용은 [AWS Key Management Service 개념](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)을 참조하세요. KMS 키를 사용하여 다음 리소스를 암호화할 수 있습니다.
+ Amazon Bedrock 사용
  + 모델 사용자 지정 작업 및 해당 출력 사용자 지정 모델 - 콘솔에서 작업을 생성하는 동안 또는 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API 직접 호출에서 `customModelKmsKeyId` 필드를 지정하여 수행할 수 있습니다.
  + 에이전트 - 콘솔에서 에이전트를 생성하는 동안 또는 [CreateAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html) API 직접 호출에서 `customerEncryptionKeyArn` 필드를 지정하여 수행할 수 있습니다.
  + 지식 기반용 데이터 소스 수집 작업 - 콘솔에서 지식 기반을 만드는 동안 또는 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 또는 [UpdateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateDataSource.html) API 직접 호출에서 `kmsKeyArn` 필드를 지정하여 수행할 수 있습니다.
  + Amazon OpenSearch Service의 벡터 저장소 - 벡터 저장소를 생성하는 동안 수행할 수 있습니다. 자세한 내용은 [Amazon OpenSearch Service 모음 생성, 나열 및 삭제](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html) 및 [Amazon OpenSearch Service의 저장 데이터 암호화](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)를 참조하세요.
  + 모델 평가 작업 - 콘솔에서 모델 평가 작업을 생성하거나 [CreateEvaluationJob ](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateEvaluationJob.html) API 직접 호출의 ` customerEncryptionKeyId`에서 키 ARN을 지정하는 경우입니다.
+ Amazon S3를 통해 - 자세한 내용은 [AWS KMS 키를 사용한 서버 측 암호화 사용(SSE-KMS)을 참조하세요.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
  + 모델 사용자 지정을 위한 훈련, 검증 및 출력 데이터
  + 지식 기반용 데이터 소스
+ 통과 AWS Secrets Manager - 자세한 내용은 [의 보안 암호 암호화 및 복호화를 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) 참조하세요.
  + 타사 모델용 벡터 저장소

리소스를 암호화한 후 리소스를 선택하고 콘솔에서 해당 **세부 정보**를 보거나 다음 `Get` API 호출을 사용하여 KMS 키의 ARN을 찾을 수 있습니다.
+ [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)
+ [GetAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetAgent.html)
+ [GetIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetIngestionJob.html)

# 사용자 지정 모델 암호화
<a name="encryption-custom-job"></a>

Amazon Bedrock은 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) 작업 또는 [콘솔](model-customization-submit.md)과 함께 훈련 데이터를 사용하여 Amazon Bedrock 파운데이션 모델의 미세 조정 버전인 사용자 지정 모델을 생성합니다. 사용자 지정 모델은에서 관리 및 저장합니다AWS.

Amazon Bedrock은 사용자가 제공하는 미세 조정 데이터를 Amazon Bedrock 파운데이션 모델을 미세 조정하는 용도로만 사용합니다. Amazon Bedrock은 다른 용도로는 미세 조정 데이터를 사용하지 않습니다. 사용자의 훈련 데이터는 기본 Titan 모델 학습이나 타사 배포를 목적으로 사용되지 않습니다. 사용 타임스탬프, 로깅된 계정 ID, 서비스에서 로깅된 기타 정보 등과 같은 그 밖의 사용 데이터도 모델을 학습시키는 데 사용되지 않습니다.

미세 조정을 위해 사용자가 제공하는 훈련 또는 검증 데이터는 미세 조정 작업이 완료되면 Amazon Bedrock에 저장되지 않습니다.

미세 조정된 모델은 완성된 텍스트를 생성하는 과정에서 일부 미세 조정 데이터를 다시 재생할 수 있습니다. 앱이 어떤 형태로든 미세 조정 데이터를 노출하지 않아야 하는 경우, 먼저 훈련 데이터에서 기밀 데이터를 필터링해야 합니다. 실수로 기밀 데이터를 사용하여 사용자 지정 모델을 이미 만든 경우, 해당 사용자 지정 모델을 삭제하고 훈련 데이터에서 기밀 정보를 필터링한 다음 새 모델을 만들 수 있습니다.

사용자 지정 모델(복사된 모델 포함) 암호화 과정에서 Amazon Bedrock은 두 가지 옵션을 제공합니다.

1. **AWS 소유 키** - 기본적으로 Amazon Bedrock은를 사용하여 사용자 지정 모델을 암호화합니다AWS 소유 키. 사용을 확인, 관리 또는 사용하거나 AWS 소유 키감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 액션을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS 소유 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) 섹션을 참조하세요.

1. **고객 관리형 키** - 사용자가 직접 관리하는 고객 관리형 키로 사용자 지정 모델을 암호화하도록 선택할 수 있습니다. 에 대한 자세한 내용은 *AWS Key Management Service개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

**참고**  
Amazon Bedrock은 무료로를 사용하여 저장 시 암호화AWS 소유 키를 자동으로 활성화합니다. 고객 관리형 키를 사용하는 경우 AWS KMS요금이 적용됩니다. 요금에 대한 자세한 내용은 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing/)을 참조하세요.

에 대한 자세한 내용은 [AWS Key Management Service개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)를 AWS KMS참조하세요.

**Topics**
+ [Amazon Bedrock이에서 권한 부여를 사용하는 방법AWS KMS](#encryption-br-grants)
+ [고객 관리형 키를 만드는 방법과 키 정책을 연결하는 방법](#encryption-key-policy)
+ [사용자 지정 및 복사된 모델에 대한 권한 및 키 정책](#encryption-cm-statements)
+ [Amazon Bedrock 서비스의 암호화 키 모니터링](#encryption-monitor-key)
+ [훈련, 검증 및 출력 데이터의 암호화](#encryption-custom-job-data)

## Amazon Bedrock이에서 권한 부여를 사용하는 방법AWS KMS
<a name="encryption-br-grants"></a>

모델 사용자 지정 또는 모델 복사 작업에 대한 사용자 지정 모델을 암호화하기 위해 고객 관리형 키를 지정하는 경우, Amazon Bedrock은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 요청을 AWS KMS에 전송하여 사용자를 대신하여 사용자 지정 모델과 연결된 **기본** KMS [권한](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)을 생성합니다. 이 권한 부여를 통해 Amazon Bedrock은 고객 관리형 키에 액세스하고 사용할 수 있습니다. 의 권한 부여AWS KMS는 Amazon Bedrock에 고객 계정의 KMS 키에 대한 액세스 권한을 부여하는 데 사용됩니다.

다음과 같은 내부 작업에서 고객 관리형 키를 사용하려면 Amazon Bedrock에 기본 권한을 부여해야 합니다.
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 요청을에 전송AWS KMS하여 작업을 생성할 때 입력한 대칭 고객 관리형 KMS 키 ID가 유효한지 확인합니다.
+ [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 및 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 요청을에 전송AWS KMS하여 고객 관리형 키로 암호화된 데이터 키를 생성하고 암호화된 데이터 키를 복호화하여 모델 아티팩트를 암호화하는 데 사용할 수 있도록 합니다.
+ 모델 사용자 지정, 모델 복사 또는 프로비저닝된 처리량 생성의 비동기 실행을 위해 위의 작업(`DescribeKey`, `GenerateDataKey`, `Decrypt`)의 하위 집합으로 범위가 축소된 보조 권한 부여를 생성AWS KMS하려면 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 요청을에 보냅니다.
+ Amazon Bedrock은 권한 생성 중에 사용 중지 위탁자를 지정하므로 서비스가 [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) 요청을 보낼 수 있습니다.

고객 관리형 AWS KMS키에 대한 전체 액세스 권한이 있습니다. [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)의 [권한 부여 사용 중지 및 취소](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)에 안내된 단계에 따라 권한 부여에 대한 액세스를 취소하거나, [키 정책](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)을 수정하여 언제든지 고객 관리형 키에 대한 서비스의 액세스 권한을 제거할 수 있습니다. 이렇게 하면 Amazon Bedrock이 키로 암호화된 사용자 지정 모델에 액세스할 수 없습니다.

### 사용자 지정 모델에 대한 기본 및 보조 권한 부여의 수명 주기
<a name="encryption-primary-secondary-grants"></a>
+ **기본 권한 부여**는 수명이 길며 연결된 사용자 지정 모델을 계속 사용하는 한 활성 상태로 유지됩니다. 사용자 지정 모델을 삭제하면 해당 기본 권한 부여가 자동으로 사용 중지됩니다.
+ **보조 권한 부여**는 수명이 짧습니다. Amazon Bedrock이 고객을 대신하여 수행하는 작업이 완료되는 즉시 자동으로 사용 중지됩니다. 예를 들어, 모델 복사 작업이 완료되면 Amazon Bedrock이 복사된 사용자 지정 모델을 암호화하도록 허용한 보조 권한 부여는 즉시 사용 중지됩니다.

## 고객 관리형 키를 만드는 방법과 키 정책을 연결하는 방법
<a name="encryption-key-policy"></a>

생성 및 관리하는 키로 AWS리소스를 암호화하려면 다음 일반 단계를 수행합니다.

1. (사전 조건) IAM 역할에 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업에 대한 권한이 있어야 합니다.

1. AWS KMS콘솔 또는 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 [키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)의 단계에 따라 고객 관리형 키를 생성합니다.

1. 키를 만들면 키를 사용해야 하는 작업에 사용할 수 있는 키에 대한 `Arn`이 반환됩니다(예: [모델 사용자 지정 작업을 제출](model-customization-submit.md)하는 작업이나 [모델 추론을 실행](inference-invoke.md)하는 작업).

1. 필요한 권한을 사용하여 키 정책을 만들고 키에 연결합니다. 키 정책을 생성하려면 AWS Key Management Service개발자 안내서의 [키 정책 생성](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) 단계를 따르세요.

## 사용자 지정 및 복사된 모델에 대한 권한 및 키 정책
<a name="encryption-cm-statements"></a>

KMS 키를 만든 후 키 정책을 연결합니다. 키 정책은 고객 관리형 키에 연결하여 액세스 권한을 제어하는 [리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)입니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 생성할 때 키 정책을 지정할 수 있습니다. 키 정책은 언제든지 수정할 수 있지만 변경 사항이 AWS KMS 전체에 적용되기까지 약간의 시간이 필요할 수 있습니다. 자세한 내용은 [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)의 [고객 관리형 키에 대한 액세스 관리](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access)를 참조하세요.

다음 KMS [작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)은 사용자 지정 및 복사된 모델을 암호화하는 키에 사용됩니다.

1. [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) – [권한 부여 작업](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)을 통해 Amazon Bedrock 서비스 위탁자가 지정된 KMS 키에 액세스할 수 있도록 하여 고객 관리형 키에 대한 권한을 만듭니다. 권한 부여에 대한 자세한 내용은 [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)의 [Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.
**참고**  
또한 Amazon Bedrock은 사용 중지 위탁자를 설정하고 더 이상 필요하지 않은 권한 부여를 자동으로 사용 중지합니다.

1. [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) - Amazon Bedrock이 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.

1. [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) – Amazon Bedrock이 사용자 액세스를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다. Amazon Bedrock은 사용자 지정 모델과 생성된 사이퍼텍스트를 함께 저장하여 사용자 지정 모델 사용자에 대한 추가적인 검증 검사에 사용합니다.

1. [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) - 저장된 사이퍼텍스트를 복호화하여 역할이 사용자 지정 모델을 암호화하는 KMS 키에 적절하게 액세스할 수 있는지 확인합니다.

보안 모범 사례로 Amazon Bedrock 서비스에 대한 키 액세스를 제한하려면 [kms:ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service) 조건 키를 포함하는 것이 좋습니다.

키에는 하나의 키 정책만 연결할 수 있지만, 정책의 `Statement` 필드 목록에 문을 추가하여 키 정책에 여러 문을 연결할 수 있습니다.

다음 문은 사용자 지정 및 복사된 모델 암호화와 관련이 있습니다.

### 모델 암호화
<a name="encryption-key-policy-encrypt"></a>

고객 관리형 키를 사용하여 사용자 지정 또는 복사된 모델을 암호화하려면 키 정책에 다음 문을 포함하여 모델의 암호화를 허용합니다. `Principal` 필드에서 키 암호화 및 복호화를 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다. `kms:ViaService` 조건 키를 사용하는 경우 각 리전에 행을 추가하거나 *\$1\$1region\$1* 대신 *\$1*를 사용하여 Amazon Bedrock을 지원하는 모든 리전을 허용할 수 있습니다.

```
{
    "Sid": "PermissionsEncryptDecryptModel",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::${account-id}:role/${role}"
        ]
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "bedrock.${region}.amazonaws.com"
            ] 
        }
    }
}
```

### 암호화된 모델에 대한 액세스 허용
<a name="encryption-key-policy-decrypt"></a>

KMS 키로 암호화된 모델에 대한 액세스를 허용하려면 키 정책에 다음 문을 포함하여 키의 복호화를 허용합니다. `Principal` 필드에서 키 복호화를 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다. `kms:ViaService` 조건 키를 사용하는 경우 각 리전에 행을 추가하거나 *\$1\$1region\$1* 대신 *\$1*를 사용하여 Amazon Bedrock을 지원하는 모든 리전을 허용할 수 있습니다.

```
{
    "Sid": "PermissionsDecryptModel",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::${account-id}:role/${role}"
        ]
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "bedrock.${region}.amazonaws.com"
            ] 
        }
    }
}
```

만들어야 하는 키 정책에 대해 알아보려면 해당하는 사용 사례의 섹션을 확장하세요.

### 사용자 지정 모델을 암호화하기 위한 키 권한 설정
<a name="encryption-cm"></a>

KMS 키로 사용자 지정한 모델을 암호화하려는 경우 해당 키의 키 정책은 사용 사례에 따라 달라집니다. 해당하는 사용 사례의 섹션을 확장해 내용을 살펴보세요.

#### 모델을 사용자 지정할 역할과 모델을 간접적으로 호출할 역할이 동일한 경우
<a name="encryption-cm-custom-invoke-same"></a>

사용자 지정 모델을 간접적으로 호출할 역할이 모델을 사용자 지정할 역할과 동일한 경우 [모델 암호화](#encryption-key-policy-encrypt)의 문만 있으면 됩니다. 다음 정책 템플릿의 `Principal` 필드에서 사용자 지정 모델을 사용자 지정하고 간접 호출하도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

#### 모델을 사용자 지정할 역할과 모델을 간접적으로 호출할 역할이 서로 다른 경우
<a name="encryption-custom-invoke-different"></a>

사용자 지정 모델을 간접적으로 호출할 역할이 모델을 사용자 지정할 역할과 서로 다른 경우 [모델 암호화](#encryption-key-policy-encrypt) 및 [암호화된 모델에 대한 액세스 허용](#encryption-key-policy-decrypt)의 문이 모두 필요합니다. 아래 단계에 따라 정책 템플릿의 문을 수정합니다.

1. 첫 번째 문은 키의 암호화 및 복호화를 허용합니다. `Principal` 필드에서 사용자 지정 모델을 사용자 지정하도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

1. 두 번째 문은 키의 복호화만 허용합니다. `Principal` 필드에서 사용자 지정 모델에 대한 간접 호출만 허용하려는 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### 사용자 지정 모델을 복사하기 위한 키 권한 설정
<a name="encryption-copy"></a>

소유한 모델이나 공유된 모델을 복사할 때 최대 2개의 키 정책을 관리해야 할 수 있습니다.

#### 복사된 모델을 암호화하는 키에 대한 키 정책
<a name="encryption-copied-model-key-policy"></a>

KMS 키를 사용하여 복사된 모델을 암호화하려는 경우 해당 키의 키 정책은 사용 사례에 따라 달라집니다. 해당하는 사용 사례의 섹션을 확장해 내용을 살펴보세요.

##### 모델을 복사할 역할과 모델을 간접적으로 호출할 역할이 동일한 경우
<a name="encryption-copied-model-copy-invoke-same"></a>

복사된 모델을 간접적으로 호출할 역할이 모델 복사본을 만들 역할과 동일한 경우 [모델 암호화](#encryption-key-policy-encrypt)의 문만 있으면 됩니다. 다음 정책 템플릿의 `Principal` 필드에서 복사된 모델을 복사하고 간접 호출할 수 있도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

##### 모델을 복사할 역할과 모델을 간접적으로 호출할 역할이 서로 다른 경우
<a name="encryption-copied-model-copy-invoke-different"></a>

복사된 모델을 간접적으로 호출할 역할이 모델 복사본을 만들 역할과 다른 경우 [모델 암호화](#encryption-key-policy-encrypt) 및 [암호화된 모델에 대한 액세스 허용](#encryption-key-policy-decrypt)의 문이 모두 필요합니다. 아래 단계에 따라 정책 템플릿의 문을 수정합니다.

1. 첫 번째 문은 키의 암호화 및 복호화를 허용합니다. `Principal` 필드에서 복사된 모델을 만들도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

1. 두 번째 문은 키의 복호화만 허용합니다. `Principal` 필드에서 복사된 모델에 대한 간접 호출만 허용하려는 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

#### 복사할 소스 모델을 암호화하는 키에 대한 키 정책
<a name="encryption-copy-source-model-key-policy"></a>

복사할 소스 모델이 KMS 키로 암호화된 경우, 소스 모델을 암호화하는 키의 키 정책에 [암호화된 모델에 대한 액세스 허용](#encryption-key-policy-decrypt)의 문을 연결합니다. 이 문을 사용하면 모델 복사 역할이 소스 모델을 암호화하는 키를 복호화할 수 있습니다. 다음 정책 템플릿의 `Principal` 필드에서 소스 모델을 복사하도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsSourceModelKey",
    "Statement": [
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock 서비스의 암호화 키 모니터링
<a name="encryption-monitor-key"></a>

Amazon Bedrock 리소스와 함께 AWS KMS고객 관리형 키를 사용하는 경우 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 또는 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 사용하여 Amazon Bedrock이 보내는 요청을 추적할 수 있습니다AWS KMS.

다음은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)가 기본 권한 부여를 생성하기 위해 Amazon Bedrock에서 호출한 KMS 작업을 모니터링하는 AWS CloudTrail이벤트의 예입니다.

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelCopy/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelCopy",
                "accountId": "111122223333",
                "userName": "RoleForModelCopy"
            },
            "attributes": {
                "creationDate": "2024-05-07T21:46:28Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "bedrock.amazonaws.com"
    },
    "eventTime": "2024-05-07T21:49:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "bedrock.amazonaws.com",
    "userAgent": "bedrock.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "bedrock.amazonaws.com",
        "retiringPrincipal": "bedrock.amazonaws.com",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "operations": [
            "Decrypt",
            "CreateGrant",
            "GenerateDataKey",
            "DescribeKey"
        ]
    },
    "responseElements": {
        "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

## 훈련, 검증 및 출력 데이터의 암호화
<a name="encryption-custom-job-data"></a>

Amazon Bedrock을 사용하여 모델 사용자 지정 작업을 실행할 경우, 입력 파일을 Amazon S3 버킷에 저장합니다. 작업이 완료되면 Amazon Bedrock은 작업을 생성할 때 지정한 S3 버킷에 출력 지표 파일을 저장하고 그에 따른 사용자 지정 모델 아티팩트를 제어되는 S3 버킷에 저장합니다AWS.

출력 파일은 S3 버킷의 암호화 구성으로 암호화됩니다. S3 버킷을 설정하는 방법에 따라 [SSE-S3 서버 측 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) 또는 [AWS KMS SSE-KMS 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)로 암호화됩니다.

# 가져온 사용자 지정 모델의 암호화
<a name="encryption-import-model"></a>

Amazon Bedrock은 동일한 암호화 접근 방식을 사용하는 두 가지 방법을 통해 사용자 지정 모델 생성을 지원합니다. 사용자 지정 모델은 AWS다음을 통해 관리 및 저장됩니다.
+ **사용자 지정 모델 가져오기 작업** - 사용자 지정 오픈 소스 파운데이션 모델(예: Mistral AI 또는 Llama 모델)을 가져오는 데 사용됩니다.
+ **사용자 지정 모델 생성** - SageMaker AI에서 사용자 지정한 Amazon Nova 모델을 가져오는 데 사용됩니다.

사용자 지정 모델을 암호화할 수 있도록 Amazon Bedrock은 다음 옵션을 제공합니다.
+ **AWS소유 키** - 기본적으로 Amazon Bedrock은 가져온 사용자 지정 모델을 AWS소유 키로 암호화합니다. AWS소유 키를 보거나 관리하거나 사용하거나 사용을 감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [AWS 소유 키](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#aws-owned-cmk)를 참조하세요.
+ **고객 관리형 키(CMK)** - 고객 관리형 키(CMK)를 선택하여 기존 AWS소유 암호화 키에 두 번째 암호화 계층을 추가할 수 있습니다. 자체 고객 관리형 키를 만들고 관리할 수 있습니다.

   이 암호화 계층을 완전히 제어할 수 있으므로 다음과 같은 작업을 수행할 수 있습니다.
  + 키 정책 수립 및 관리
  + IAM 정책 및 권한 부여 수립 및 관리
  + 키 정책 활성화 및 비활성화
  + 키 암호화 자료 교체
  + 태그 추가
  + 키 별칭 생성
  + 키 삭제 예약

  자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)를 참조하세요.

**참고**  
가져오는 모든 사용자 지정 모델에 대해 Amazon Bedrock은 AWS소유 키를 사용하여 저장 시 암호화를 자동으로 활성화하여 고객 데이터를 무료로 보호합니다. 고객 관리형 키를 사용하는 경우 AWS KMS요금이 적용됩니다. 요금에 대한 자세한 내용은 [AWS Key Management Service 요금](https://docs.aws.amazon.com/)을 참조하세요.

## Amazon Bedrock이에서 권한 부여를 사용하는 방법AWS KMS
<a name="import-model-kms-grants"></a>

고객 관리형 키를 지정하여 가져온 모델을 암호화하는 경우, Amazon Bedrock은 [CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/) 요청을에 전송하여 사용자를 대신하여 가져온 모델과 연결된 **기본**AWS KMS 권한을 생성합니다AWS KMS. 이 권한 부여를 통해 Amazon Bedrock은 고객 관리형 키에 액세스하고 사용할 수 있습니다. 의 권한 부여AWS KMS는 Amazon Bedrock에 고객 계정의 KMS 키에 대한 액세스 권한을 부여하는 데 사용됩니다.

다음과 같은 내부 작업에서 고객 관리형 키를 사용하려면 Amazon Bedrock에 기본 권한을 부여해야 합니다.
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 요청을에 전송AWS KMS하여 작업을 생성할 때 입력한 대칭 고객 관리형 KMS 키 ID가 유효한지 확인합니다.
+ [GenerateDataKey](https://docs.aws.amazon.com//kms/latest/APIReference/API_GenerateDataKey.html) 및 [Decrypt](https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html) 요청을 AWS KMS에 전송하여 고객 관리형 키로 암호화된 데이터 키를 생성하고 암호화된 데이터 키를 복호화하여 모델 아티팩트를 암호화하는 데 사용할 수 있도록 합니다.
+ 모델 가져오기의 비동기 실행 및 온디맨드 추론을 위해 위의 작업(`DescribeKey`, `GenerateDataKey`, `Decrypt`)의 하위 집합을 사용하여 범위가 축소된 보조 권한 부여를 생성AWS KMS하려면 [CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) 요청을에 보냅니다.
+ Amazon Bedrock은 권한 생성 중에 사용 중지 위탁자를 지정하므로 서비스가 [RetireGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_RetireGrant.html) 요청을 보낼 수 있습니다.

고객 관리형 AWS KMS키에 대한 전체 액세스 권한이 있습니다. *AWS Key Management Service 개발자 안내서*의 [권한 부여 사용 중지 및 취소](https://docs.aws.amazon.com//kms/latest/developerguide/grant-manage.html#grant-delete)에 안내된 단계에 따라 권한 부여에 대한 액세스를 취소하거나, 키 정책을 수정하여 언제든지 고객 관리형 키에 대한 서비스의 액세스 권한을 제거할 수 있습니다. 이렇게 하면 Amazon Bedrock이 키로 암호화된 가져온 모델에 액세스할 수 없습니다.

### 가져온 사용자 지정 모델에 대한 기본 및 보조 권한 부여의 수명 주기
<a name="import-model-kms-grants-lifecycle"></a>
+ **기본 권한 부여**는 수명이 길며 연결된 사용자 지정 모델을 계속 사용하는 한 활성 상태로 유지됩니다. 가져온 사용자 지정 모델을 삭제하면 해당 기본 권한 부여가 자동으로 사용 중지됩니다.
+ **보조 권한 부여**는 수명이 짧습니다. Amazon Bedrock이 고객을 대신하여 수행하는 작업이 완료되는 즉시 자동으로 사용 중지됩니다. 예를 들어, 사용자 지정 모델 가져오기 작업이 완료되면 Amazon Bedrock이 가져온 사용자 지정 모델을 암호화할 수 있도록 허용한 보조 권한 부여는 즉시 사용 중지됩니다.

# 고객 관리형 키(CMK) 사용
<a name="import-model-using-cmk"></a>

고객 관리형 키를 사용하여 가져온 사용자 지정 모델을 암호화하려는 경우 다음 단계를 완료합니다.

1. AWS Key Management Service를 사용하여 고객 관리형 키를 만듭니다.

1. 지정된 역할에 대한 권한이 있는 [리소스 기반 정책](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)을 연결하여 가져온 사용자 지정 모델을 만들고 사용할 수 있습니다.

**고객 관리형 키 생성**

먼저 `CreateKey` 권한이 있어야 합니다. 그런 다음 [키를 생성하는](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) 단계에 따라 AWS KMS콘솔 또는 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API 작업에서 고객 관리형 키를 생성합니다. 대칭 암호화 키를 생성해야 합니다.

키를 만들면 사용자 지정 모델 가져오기로 사용자 지정 모델을 가져올 때 `importedModelKmsKeyId `로 사용할 수 있는 키에 대한 `Arn`이 반환됩니다.

**키 정책을 만들고 고객 관리형 키에 연결**

키 정책은 고객 관리형 키에 연결하여 액세스 권한을 제어하는 [리소스 기반 정책](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)입니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 생성할 때 키 정책을 지정할 수 있습니다. 키 정책은 언제든지 수정할 수 있지만 변경 사항이 AWS KMS 전체에 적용되기까지 약간의 시간이 필요할 수 있습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [고객 관리형 키 액세스 관리](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#managing-access)를 참조하세요.

**가져온 사용자 지정 모델 암호화**

고객 관리형 키를 사용하여 가져온 사용자 지정 모델을 암호화하려면 키 정책에 다음 AWS KMS작업을 포함해야 합니다.
+ [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) – [권한 부여 작업](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)을 통해 Amazon Bedrock 서비스 위탁자가 지정된 KMS 키에 액세스할 수 있도록 하여 고객 관리형 키에 대한 권한을 만듭니다. 권한에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.
**참고**  
또한 Amazon Bedrock은 사용 중지 위탁자를 설정하고 더 이상 필요하지 않은 권한 부여를 자동으로 사용 중지합니다.
+ [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) - Amazon Bedrock이 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) – Amazon Bedrock이 사용자 액세스를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다. Amazon Bedrock은 가져온 사용자 지정 모델과 생성된 사이퍼텍스트를 함께 저장하여 가져온 사용자 지정 모델 사용자에 대한 추가적인 검증 검사에 사용합니다.
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) - 저장된 사이퍼텍스트를 복호화하여 역할이 가져온 사용자 지정 모델을 암호화하는 KMS 키에 적절하게 액세스할 수 있는지 확인합니다.

다음은 가져온 모델을 암호화하는 데 사용할 역할의 키에 연결할 수 있는 정책 예제입니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key to encrypt an imported custom model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**암호화된 가져온 사용자 지정 모델 복호화**

이미 다른 고객 관리형 키로 암호화된 사용자 지정 모델을 가져오는 경우, 다음 정책과 같이 동일한 역할에 대한 `kms:Decrypt` 권한을 추가해야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key that encrypted a custom imported model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Bedrock 서비스의 암호화 키 모니터링
<a name="import-model-monitor-encryption-keys"></a>

Amazon Bedrock 리소스와 함께 AWS KMS고객 관리형 키를 사용하는 경우 [AWS CloudTrail](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 또는 [Amazon CloudWatch Logs](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 사용하여 Amazon Bedrock이 보내는 요청을 추적할 수 있습니다AWS KMS.

다음은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)가 기본 권한 부여를 생성하기 위해 Amazon Bedrock에서 호출한 AWS KMS작업을 모니터링하는 AWS CloudTrail이벤트의 예입니다.

```
{
"eventVersion": "1.09",
    "userIdentity": {
"type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelImport/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
"sessionIssuer": {
"type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelImport",
                "accountId": "111122223333",
                "userName": "RoleForModelImport"
            },
            "attributes": {
"creationDate": "2024-05-07T21:46:28Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "bedrock.amazonaws.com"
    },
    "eventTime": "2024-05-07T21:49:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "bedrock.amazonaws.com",
    "userAgent": "bedrock.amazonaws.com",
    "requestParameters": {
"granteePrincipal": "bedrock.amazonaws.com",
        "retiringPrincipal": "bedrock.amazonaws.com",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "operations": [
            "Decrypt",
            "CreateGrant",
            "GenerateDataKey",
            "DescribeKey"
        ]
    },
    "responseElements": {
"grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
"accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

[정책 생성](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-overview.html)의 단계에 따라 다음 리소스 기반 정책을 KMS 키에 연결합니다. 정책은 2개의 문으로 구성됩니다.

1. 역할이 모델 사용자 지정 아티팩트를 암호화할 수 있는 권한입니다. 가져온 사용자 지정 모델 빌더 역할의 ARN을 `Principal` 필드에 추가합니다.

1. 가져온 사용자 지정 모델을 추론에서 사용할 수 있는 권한입니다. 가져온 사용자 지정 모델 사용자 역할의 ARN을 `Principal` 필드에 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS Key Policy",
    "Statement": [
        {
            "Sid": "Permissions for imported model builders",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Permissions for imported model users",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": "kms:Decrypt",
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Bedrock데이터 자동화의 암호화
<a name="encryption-bda"></a>

 Amazon Bedrock데이터 자동화(BDA)는 암호화를 사용하여 저장 데이터를 보호합니다. 여기에는 서비스에 저장된 블루프린트, 프로젝트 및 추출된 인사이트가 포함됩니다. BDA는 데이터를 암호화하기 위한 두 가지 옵션을 제공합니다.

1. AWS소유 키 - 기본적으로 BDA는 AWS소유 키로 데이터를 암호화합니다. AWS소유 키를 보거나 관리하거나 사용하거나 사용을 감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 [AWSKey Management Service 개발자 안내서의 소유](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) AWS키를 참조하세요.

1.  고객 관리형 키 - 사용자가 직접 관리하는 고객 관리형 키로 데이터를 암호화하도록 선택할 수 있습니다. AWS KMS키에 대한 자세한 내용은 AWSKey Management Service 개발자 안내서의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) 참조하세요. BDA는 Amazon Bedrock 콘솔에서 사용할 수 있는 고객 관리형 키를 지원하지 않으며 API 작업에만 지원됩니다.

Amazon Bedrock데이터 자동화는 AWS소유 키를 사용하여 저장 시 암호화를 무료로 자동으로 활성화합니다. 고객 관리형 키를 사용하는 경우 AWS KMS요금이 적용됩니다. 요금에 대한 자세한 내용은 AWS KMS[요금을 참조하세요](https://aws.amazon.com/kms/pricing/).

## 에서 권한 부여를 Amazon Bedrock사용하는 방법AWS KMS
<a name="encryption-bda-grants"></a>

 invokeDataAutomationAsync를 호출할 때 BDA 암호화를 위한 고객 관리형 키를 지정하면 서비스는 CreateGrant 요청을에 전송하여 사용자를 대신하여 리소스와 연결된 권한 부여를 생성합니다AWS KMS. 이 권한 부여를 통해 BDA는 고객 관리형 키에 액세스하고 사용할 수 있습니다.

 BDA는 고객 관리 키에 대한 부여를 다음과 같은 내부 작업에 사용합니다.
+ DescribeKey -에 요청을 전송AWS KMS하여 제공한 대칭 고객 관리형 AWS KMS키 ID가 유효한지 확인합니다.
+ GenerateDataKey 및 복호화 - AWS KMS에 요청을 보내 고객 관리형 키로 암호화된 데이터 키를 생성하고 암호화된 데이터 키를 복호화하여 리소스를 암호화하는 데 사용할 수 있도록 합니다.
+ CreateGrant - 비동기식 작업 실행을 위해 위 작업의 하위 집합(DescribeKey, GenerateDataKey, Decrypt)을 사용하여 범위 축소 권한 부여를 생성AWS KMS하도록에 요청을 보냅니다.

 고객 관리형 AWS KMS키에 대한 전체 액세스 권한이 있습니다. AWS KMS 개발자 안내서의 권한 부여 사용 중지 및 취소에 안내된 단계에 따라 권한 부여에 대한 액세스를 취소하거나, 키 정책을 수정하여 언제든지 고객 관리형 키에 대한 서비스의 액세스 권한을 제거할 수 있습니다. 이렇게 하면 BDA는 키로 암호화된 리소스에 액세스할 수 없습니다.

권한 부여를 취소한 후 새 invokeDataAutomationAsync 직접 호출을 시작하면 BDA가 권한 부여를 다시 생성합니다. 권한 부여는 30시간 후에 BDA에 의해 사용 중지됩니다.

## 고객 관리형 키 생성 및 키 정책 연결
<a name="encryption-bda-creating-keys"></a>

 직접 만들고 관리하는 키로 BDA 리소스를 암호화하려면 다음과 같은 일반적인 단계를 수행합니다.

1.  (사전 조건) IAM 역할에 CreateKey 작업에 대한 권한이 있어야 합니다.

1.  AWS KMS콘솔 또는 CreateKey 작업을 사용하여 키 생성의 단계에 따라 고객 관리형 키를 [https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) 생성합니다.

1.  키를 생성하면 invokeDataAutomationAsync 작업과 같이 키를 사용해야 하는 작업(예: BDA에서 프로젝트 또는 블루프린트를 생성할 때)에 사용할 수 있는 ARN이 반환됩니다.

1.  필요한 권한을 사용하여 키 정책을 만들고 키에 연결합니다. 키 정책을 생성하려면 AWS KMS개발자 안내서의 [ 키 정책 생성 ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-create.html) 단계를 따르세요.

## Amazon Bedrock데이터 자동화 리소스에 대한 권한 및 키 정책
<a name="encryption-bda-key-policies.title"></a>

 AWS KMS키를 생성한 후 키 정책을 연결합니다. 다음 AWS KMS 작업은 BDA 리소스를 암호화하는 키에 사용됩니다.

1.  kms:CreateGrant – InvokeDataAutomationAsync에 필요한 권한 부여 작업을 통해 지정된 키에 대한 BDA 서비스 액세스를 허용하여 고객 관리형 AWS KMS키에 대한 권한 부여를 생성합니다.

1.  kms:DescribeKey – BDA가 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.

1.  kms:GenerateDataKey – BDA가 사용자 액세스를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.

1.  kms:Decrypt – 저장된 사이퍼텍스트를 복호화하여 역할에 BDA 리소스를 암호화하는 AWS KMS키에 대한 적절한 액세스 권한이 있는지 확인합니다.

**Amazon Bedrock Data Automation에 대한 키 정책**

 고객 관리형 키를 사용하여 BDA 리소스를 암호화하려면 키 정책에 다음 문을 포함하고 `${account-id}`, `${region}` 및 `${key-id}`를 특정 값으로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key to encrypt data for BDA resource",
    "Statement": [
        {
            "Sid": "Permissions for encryption of data for BDA resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/Role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

**IAM 역할 권한**

BDA와 상호 작용하는 데 사용되는 IAM 역할에는 다음과 같은 권한이 있어야 AWS KMS합니다. `${region}`, `${account-id}`및 `${key-id}`를 특정 값으로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock Automation 암호화 컨텍스트
<a name="encryption-bda-context"></a>

BDA는 모든 암호화 작업에서 동일한 암호화 컨텍스트를 사용합니다. 여기서 키는 AWS KMS`aws:bedrock:data-automation-customer-account-id`이고 값은 AWS계정 ID입니다. 암호화 컨텍스트의 예는 다음과 같습니다.

```
"encryptionContext": {
     "bedrock:data-automation-customer-account-id": "account id"
}
```

**모니터링을 위한 암호화 컨텍스트 사용**  
대칭형 고객 관리형 키를 사용하여 데이터를 암호화하는 경우 감사 레코드 및 로그의 암호화 컨텍스트를 사용하여 고객 관리형 키가 사용되는 방식을 식별할 수도 있습니다. 암호화 컨텍스트는 AWS CloudTrail또는 Amazon CloudWatch Logs에서 생성된 로그에도 표시됩니다.

**암호화 컨텍스트를 사용하여 고객 관리형 키에 대한 액세스 제어**  
그러나 키 정책 및 IAM 정책에서 암호화 컨텍스트를 조건으로 사용하여 대칭형 고객 관리형 키에 대한 액세스를 제어할 수도 있습니다. 또한 권한 부여에서 암호화 컨텍스트 제약 조건을 사용할 수 있습니다. BDA는 권한 부여에서 암호화 컨텍스트 제약 조건을 사용하여 계정 및 리전에서 고객 관리형 키에 대한 액세스를 제어합니다. 권한 부여 제약 조건에 따라 권한 부여가 허용하는 작업은 지정된 암호화 컨텍스트를 사용해야 합니다.

다음은 특정 암호화 컨텍스트에서 고객 관리형 키에 대한 액세스 권한을 부여하는 키 정책 설명의 예입니다. 이 정책 설명의 조건에 따라 권한 부여에는 암호화 컨텍스트를 지정하는 암호화 컨텍스트 제약 조건이 있어야 합니다.

```
[
    {
        "Sid": "Enable DescribeKey, Decrypt, GenerateDataKey",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
        },
        "Action": ["kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey"],
        "Resource": "*"
    },
    {
        "Sid": "Enable CreateGrant",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
        },
        "Action": "kms:CreateGrant",
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333"
            },
            "StringEquals": {
                "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey"]
            }
        }
    }
]
```

## Amazon Bedrock데이터 자동화를 위한 암호화 키 모니터링
<a name="encryption-bda-monitoring"></a>

 Amazon Bedrock데이터 자동화 리소스와 함께 AWS KMS고객 관리형 키를 사용하는 경우 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 또는 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 사용하여 Amazon Bedrock데이터 자동화가 보내는 요청을 추적할 수 있습니다AWS KMS. 다음은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)가 기본 권한 부여를 생성하기 위해 Amazon Bedrock데이터 자동화에서 호출한 AWS KMS작업을 모니터링하는 AWS CloudTrail이벤트의 예입니다.

```
{
    "eventVersion": "1.09",
        "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForDataAutomation/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
        "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAIGDTESTANDEXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/RoleForDataAutomation",
        "accountId": "111122223333",
        "userName": "RoleForDataAutomation"
        },
        "attributes": {
        "creationDate": "2024-05-07T21:46:28Z",
        "mfaAuthenticated": "false"
    }
    },
    "invokedBy": "bedrock.amazonaws.com"
    },
    "eventTime": "2024-05-07T21:49:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "bedrock.amazonaws.com",
    "userAgent": "bedrock.amazonaws.com",
    "requestParameters": {
    "granteePrincipal": "bedrock.amazonaws.com",
    "retiringPrincipal": "bedrock.amazonaws.com",
    "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
     "constraints": {
            "encryptionContextSubset": {
                "aws:bedrock:data-automation-customer-account-id": "000000000000"
            }
        },
    "operations": [
    "Decrypt",
    "CreateGrant",
    "GenerateDataKey",
    "DescribeKey"
    ]
    },
    "responseElements": {
    "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
    "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
    {
    "accountId": "111122223333",
    "type": "AWS::KMS::Key",
    "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

# 에이전트 리소스 암호화
<a name="encryption-agents-new"></a>

저장 데이터를 기본적으로 암호화하면 민감한 데이터 보호와 관련된 운영 오버헤드와 복잡성을 줄이는 데 도움이 됩니다. 동시에 엄격한 암호화 규정 준수 및 규제 요구 사항을 충족하는 안전한 애플리케이션을 구축할 수 있습니다.

Amazon Bedrock은 기본 AWS 소유 키를 사용하여 에이전트의 정보를 자동으로 암호화합니다. 여기에는 컨트롤 플레인 데이터와 세션 데이터가 포함됩니다. 사용자는 AWS 소유 키를 보거나 관리하거나 사용을 감사할 수 없습니다. 자세한 내용은 [AWS 소유 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)를 참조하세요.

이 암호화 계층을 비활성화할 수는 없지만 AWS 소유 키 대신 고객 관리형 키를 사용하여 에이전트의 정보를 암호화하도록 선택할 수 있습니다. Amazon Bedrock은 이제 기본 AWS 소유 암호화 대신 사용자가 생성, 소유, 관리하는 대칭 고객 관리형 키(CMK)를 사용할 수 있도록 지원합니다. 자세한 내용은 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)를 참조하세요.

**중요**  
Amazon Bedrock은 AWS 소유 키를 사용하여 에이전트의 세션 정보를 무료로 자동으로 암호화합니다.
AWS KMS 요금은 고객 관리형 키를 사용할 때 부과됩니다. 요금에 대한 자세한 내용은 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing/)을 참조하세요.
2025년 1월 22일 *이전*에 에이전트를 생성하고 에이전트 리소스를 암호화하는 데 고객 관리형 키를 사용하려면 [2025년 1월 22일 이전에 생성된 에이전트의 에이전트 리소스 암호화](encryption-agents.md)의 지침을 따르세요.

# 고객 관리형 키(CMK)를 사용한 에이전트 리소스 암호화
<a name="cmk-agent-resources"></a>

언제든지 고객 관리형 키를 생성하여 에이전트를 빌드할 때 제공된 다음 에이전트 정보를 사용하여 에이전트의 정보를 암호화할 수 있습니다.

**참고**  
다음 에이전트 리소스는 2025년 1월 22일 이후에 생성된 에이전트에 대해서만 암호화됩니다.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/cmk-agent-resources.html)

고객 관리형 키를 사용하려면 다음 단계를 완료합니다.

1.  AWS Key Management Service를 사용하여 고객 관리형 키를 만듭니다.

1. 키 정책을 만들고 고객 관리형 키에 연결

## 고객 관리형 키 생성
<a name="create-cmk-agent"></a>

 AWS 관리 콘솔 또는 AWS Key Management Service APIs.

 먼저 `CreateKey` 권한이 있는지 확인한 다음 *AWS Key Management Service 개발자 안내서*의 [대칭 고객 관리형 키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) 단계를 따릅니다.

**키 정책** - 고객 관리형 키에 대한 액세스를 제어합니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 만들 때 키 정책을 지정할 수 있습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [고객 관리형 키에 대한 액세스 관리](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)를 참조하세요.

2025년 1월 22일 이후에 에이전트를 생성하고 고객 관리형 키를 사용하여 에이전트의 정보를 암호화하려는 경우 에이전트 API 작업을 직접 호출하는 사용자 또는 역할에 키 정책에 다음 권한이 있는지 확인합니다.
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) - AWS KMS 외부에서 사용할 고유한 대칭 데이터 키를 반환합니다.
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) – KMS 키로 암호화된 사이퍼텍스트를 해독합니다.

키를 생성하면 에이전트를 생성할 때 `customerEncryptionKeyArn`으로 사용할 수 있는 키에 대한 `Arn`이 반환됩니다.

## 키 정책을 만들고 고객 관리형 키에 연결
<a name="attach-policy-agent"></a>

고객 관리형 키로 에이전트 리소스를 암호화하는 경우 Amazon Bedrock이 사용자 대신 에이전트 리소스를 암호화하고 복호화하도록 허용하려면 ID 기반 정책 및 리소스 기반 정책을 설정해야 합니다.

**자격 증명 기반 정책**

사용자를 대신하여 에이전트 리소스를 암호화하고 해독하는 에이전트 API를 호출할 수 있는 권한이 있는 IAM 역할 또는 사용자에게 다음 자격 증명 기반 정책을 연결합니다. 이 정책은 API 호출을 수행하는 사용자에게 AWS KMS 권한이 있는지 확인합니다. `${region}`, `${account-id}`, `${agent-id}` 및 `${key-id}`를 적절한 값으로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EncryptAgents",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

**리소스 기반 정책**

Amazon S3의 스키마가 암호화된 작업 그룹을 생성하는 *경우에만* 다음 리소스 기반 정책을 AWS KMS 키에 연결합니다. 다른 사용 사례에 대해서는 리소스 기반 정책을 연결할 필요가 없습니다.

다음 리소스 기반 정책을 연결하려면 필요에 따라 권한 범위를 변경하고 `${region}`, `${account-id}`, `${agent-id}` 및 `${key-id}`를 적절한 값으로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow account root to modify the KMS key, not used by Amazon Bedrock.",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}"
        },
        {
            "Sid": "Allow Amazon Bedrock to encrypt and decrypt Agent resources on behalf of authorized users",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

## 고객 관리형 키 변경
<a name="change-cmk"></a>

Amazon Bedrock 에이전트는 *DRAFT* 에이전트와 연결된 고객 관리형 키가 변경되거나 고객 관리형 키에서 AWS 소유 키로 이동할 때 버전이 지정된 에이전트의 재암호화를 지원하지 않습니다. *DRAFT* 리소스의 데이터만 새 키로 다시 암호화됩니다.

버전이 지정된 에이전트의 키를 프로덕션 데이터를 제공하는 데 사용하는 경우, 키에 대한 권한을 삭제하거나 제거하지 않아야 합니다.

버전에서 사용 중인 키를 보고 확인하려면 [GetAgentVersion](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_GetAgentVersion.html)을 직접 호출하고 응답에서 `customerEncryptionKeyArn`을 확인합니다.

# 고객 관리형 키(CMK)를 사용하여 에이전트 세션 암호화
<a name="ltm-permissions"></a>

에이전트에 메모리를 활성화하고 고객 관리형 키로 에이전트 세션을 암호화하는 경우, 고객 관리형 키를 구성하려면 다음 키 정책과 직접 호출 ID IAM 권한을 구성해야 합니다.

**고객 관리형 키 정책**

Amazon Bedrock은 이러한 권한을 사용하여 암호화된 데이터 키를 생성한 다음, 생성된 키를 사용하여 에이전트 메모리를 암호화합니다. Amazon Bedrock에는 생성된 데이터 키를 다른 암호화 컨텍스트로 다시 암호화할 수 있는 권한도 필요합니다. 재암호화 권한은 고객 관리형 키가 다른 고객 관리형 키 또는 서비스 소유 키 간에 전환될 때도 사용됩니다. 자세한 내용은 [Hierarchical Keyring](https://docs.aws.amazon.com//database-encryption-sdk/latest/devguide/use-hierarchical-keyring.html)을 참조하세요.

`$region`, `account-id`, `${caller-identity-role}`을 적절한 값으로 변경합니다.

```
{
    "Version": "2012-10-17",		 	 	 
    {
        "Sid": "Allow access for bedrock to enable long term memory",
        "Effect": "Allow",
        "Principal": {
            "Service": [
                "bedrock.amazonaws.com",
            ],
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Condition": {
            "StringEquals": {
                "aws:SourceAccount": "$account-id"
            },
            "ArnLike": {
                "aws:SourceArn": "arn:aws:bedrock:$region:$account-id:agent-alias/*"
            }
        }
        "Resource": "*"
    },
    {
        "Sid": "Allow the caller identity control plane permissions for long term memory",
        "Effect": "Allow", 
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*"
            }
        }
    },
    {
        "Sid": "Allow the caller identity data plane permissions to decrypt long term memory",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*",
                "kms:ViaService": "bedrock.$region.amazonaws.com" 
            }
        }
    }
}
```

**에이전트 메모리를 암호화하고 복호화할 수 있는 IAM 권한**

ID 직접 호출 에이전트 API가 메모리가 활성화된 에이전트에 대한 KMS 키를 구성하려면 다음 IAM 권한이 필요합니다. Amazon Bedrock 에이전트는 이러한 권한을 사용하여 호출자 ID가 위의 API 키 정책에 언급된 권한으로 모델을 관리, 훈련, 배포할 수 있는지 확인합니다. 에이전트를 간접적으로 호출하는 API의 경우 Amazon Bedrock 에이전트는 호출자 ID의 `kms:Decrypt` 권한을 사용하여 메모리를 복호화합니다.

`$region`, `account-id`, `${key-id}`을 적절한 값으로 변경합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentsControlPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKeyWithoutPlaintext", 
                "kms:ReEncrypt*"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        },
        {
            "Sid": "AgentsDataPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        }
    ]
}
```

------

# 에이전트를 위한 예방적 보안 모범 사례
<a name="security-best-practice-agents"></a>

Amazon Bedrock 서비스를 위한 다음과 같은 모범 사례를 통해 보안 인시던트를 예방할 수 있습니다.

**보안 연결 사용**

전송 중에 민감한 정보를 안전하게 유지하기 위해 항상 암호화된 연결(예: `https://`(으)로 시작하는 연결)을 사용하세요.

**리소스에 대한 최소 권한 액세스 구현**

Amazon Bedrock 리소스에 대한 사용자 지정 정책을 생성하는 경우 태스크를 수행하는 데 필요한 권한만 부여하세요. 최소한의 권한으로 시작하고 필요에 따라 추가 권한을 부여하는 것이 좋습니다. 오류나 악의적인 공격으로 인해 발생할 수 있는 위험과 영향을 줄이려면 최소 권한 액세스를 구현하는 것이 필수적입니다. 자세한 내용은 [Amazon Bedrock용 Identity and Access Management](security-iam.md) 단원을 참조하십시오.

**고객 데이터가 포함된 에이전트 리소스에는 개인 식별 정보(PII)를 포함하지 마세요.**

에이전트 리소스를 생성, 업데이트 및 삭제할 때(예: [CreateAgent](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_CreateAgent.html) 사용 시) 작업 그룹 이름 및 지식 기반 이름과 같은 고객 관리형 키 사용을 지원하지 않는 필드에는 개인 식별 정보(PII)가 포함되지 않습니다. 고객 관리형 키 사용을 지원하는 필드 목록은 [고객 관리형 키(CMK)를 사용한 에이전트 리소스 암호화](cmk-agent-resources.md) 섹션을 참조하세요.

# 2025년 1월 22일 이전에 생성된 에이전트의 에이전트 리소스 암호화
<a name="encryption-agents"></a>

**중요**  
2025년 1월 22일 *이후*에 에이전트를 생성한 경우 [에이전트 리소스 암호화](encryption-agents-new.md)에 대한 지침을 따릅니다.

Amazon Bedrock은 에이전트의 세션 정보를 암호화합니다. 기본적으로 Amazon Bedrock은 AWS관리형 키를 사용하여이 데이터를 암호화합니다. 선택 사항으로, 고객 관리형 키를 사용하여 에이전트 아티팩트를 암호화할 수 있습니다.

에 대한 자세한 내용은 *AWS Key Management Service개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

사용자 지정 KMS 키로 에이전트와의 세션을 암호화하는 경우 Amazon Bedrock이 사용자 대신 에이전트 리소스를 암호화하고 복호화하도록 허용하려면 다음 ID 기반 정책 및 리소스 기반 정책을 설정해야 합니다.

1. `InvokeAgent`를 직접 호출할 수 있는 권한이 있는 IAM 역할 또는 사용자에게 다음 ID 기반 정책을 연결합니다. 이 정책은 `InvokeAgent`를 직접 호출할 수 있는 사용자에게 KMS 권한이 있는지 확인합니다. *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1agent-id\$1* 및 *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptDecryptAgents",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/agent-id"
                   }
               }
           }
       ]
   }
   ```

------

1. 다음 리소스 기반 정책을 KMS 키에 연결합니다. 필요에 따라 권한의 범위를 변경합니다. *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1agent-id\$1* 및 *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowBedrockEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/AgentId"
                   }
               }
           },
           {
               "Sid": "AllowRoleEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/Role"
               },
               "Action": [
                   "kms:GenerateDataKey*",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowAttachmentPersistentResources",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   }
               }
           }
       ]
   }
   ```

------

# Amazon Bedrock Flows 리소스 암호화
<a name="encryption-flows"></a>

Amazon Bedrock은 저장 데이터를 암호화합니다. 기본적으로 Amazon Bedrock은 AWS 관리형 키를 사용하여 이 데이터를 암호화합니다. 선택 사항으로, 고객 관리형 키를 사용하여 데이터를 암호화할 수 있습니다.

에 대한 자세한 내용은 *AWS Key Management Service개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

사용자 지정 KMS 키로 데이터를 암호화하는 경우 Amazon Bedrock이 사용자 대신 데이터를 암호화하고 복호화하도록 허용하려면 다음 ID 기반 정책 및 리소스 기반 정책을 설정해야 합니다.

1. Amazon Bedrock Flows API를 직접 호출할 수 있는 권한이 있는 IAM 역할 또는 사용자에게 다음 ID 기반 정책을 연결합니다. 이 정책은 Amazon Bedrock Flows를 직접 호출할 수 있는 사용자에게 KMS 권한이 있는지 확인합니다. *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1flow-id\$1*, *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptFlow",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/${flow-id}",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. 다음 리소스 기반 정책을 KMS 키에 연결합니다. 필요에 따라 권한의 범위를 변경합니다. *\$1IAM-USER/ROLE-ARN\$1*, *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1flow-id\$1* 및 *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSId",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowRoleUseKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/RoleName"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/FlowId",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. [흐름 실행](flows-create-async.md)의 경우 [흐름을 생성하고 관리할 권한이 있는 서비스 역할](flows-permissions.md)에 다음 자격 증명 기반 정책을 연결합니다. 이 정책은 서비스 역할에 AWS KMS권한이 있는지 확인합니다. *region*, *account-id*, *flow-id*, *key-id*를 적절한 값으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptionFlows",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/flow-id",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

# 지식 기반 리소스 암호화
<a name="encryption-kb"></a>

Amazon Bedrock은 지식 기반과 관련된 리소스를 암호화합니다. 기본적으로 Amazon Bedrock은 AWS소유 키를 사용하여이 데이터를 암호화합니다. 선택 사항으로, 고객 관리형 키를 사용하여 모델 아티팩트를 암호화할 수 있습니다.

KMS 키를 사용한 암호화는 다음 프로세스에서 발생할 수 있습니다.
+ 데이터 소스를 수집하는 동안의 임시 데이터 스토리지
+ Amazon Bedrock에서 벡터 데이터베이스를 설정하도록 허용한 경우 OpenSearch Service에 정보 전달
+ 지식 기반 쿼리

지식 기반에서 사용하는 다음 리소스를 KMS 키로 암호화할 수 있습니다. 암호화할 경우 KMS 키를 복호화할 수 있는 권한을 추가해야 합니다.
+ Amazon S3 버킷에 저장된 데이터 소스
+ 타사 벡터 저장소

에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

**참고**  
Amazon Bedrock 지식 기반은 제공업체가 전송 중 TLS 암호화를 허용하고 지원하는 타사 데이터 소스 커넥터 및 벡터 저장소와의 통신을 위해 TLS 암호화를 사용합니다.

**Topics**
+ [데이터 모으기 중 임시 데이터 스토리지의 암호화](#encryption-kb-ingestion)
+ [Amazon OpenSearch Service로 전달된 정보 암호화](#encryption-kb-oss)
+ [Amazon S3 Vectors에 전달된 정보의 암호화](#encryption-kb-s3-vector)
+ [지식 기반 검색 암호화](#encryption-kb-runtime)
+ [Amazon S3에서 데이터 소스의 AWS KMS 키를 복호화할 수 있는 권한](#encryption-kb-ds)
+ [지식 기반이 포함된 벡터 저장소의 AWS Secrets Manager 보안 암호를 해독할 수 있는 권한](#encryption-kb-3p)
+ [AWS KMS 암호화를 사용한 Bedrock Data Automation(BDA)에 대한 권한](#encryption-kb-bda)

## 데이터 모으기 중 임시 데이터 스토리지의 암호화
<a name="encryption-kb-ingestion"></a>

지식 기반에 대한 데이터 모으기 작업을 설정할 때 사용자 지정 KMS 키를 사용하여 작업을 암호화할 수 있습니다.

데이터 소스를 수집하는 과정에서 임시 데이터 스토리지용 AWS KMS 키를 생성할 수 있도록 하려면 Amazon Bedrock 서비스 역할에 다음 정책을 연결합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

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

****  

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

------

## Amazon OpenSearch Service로 전달된 정보 암호화
<a name="encryption-kb-oss"></a>

Amazon Bedrock이 지식 기반용 Amazon OpenSearch Service에 벡터 저장소를 생성하도록 선택한 경우 Amazon Bedrock은 사용자가 선택한 KMS 키를 Amazon OpenSearch Service에 전달하여 암호화할 수 있습니다. Amazon OpenSearch Service의 암호화에 대해 자세히 알아보려면 [Amazon OpenSearch Service 암호화](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html)를 참조하세요.

## Amazon S3 Vectors에 전달된 정보의 암호화
<a name="encryption-kb-s3-vector"></a>

Amazon Bedrock이 지식 기반용 Amazon S3 Vectors에 S3 벡터 버킷 및 벡터 인덱스를 생성하도록 선택한 경우 Amazon Bedrock은 사용자가 선택한 KMS 키를 Amazon S3 Vectors에 전달하여 암호화할 수 있습니다. Amazon S3 Vectors의 암호화에 대한 자세한 내용은 [Amazon S3 Vectors를 사용한 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-bucket-encryption.html)를 참조하세요.

## 지식 기반 검색 암호화
<a name="encryption-kb-runtime"></a>

KMS 키로 지식 기반을 쿼리하여 응답을 생성하는 세션을 암호화할 수 있습니다. 이렇게 하려면 [RetrieveAndGenerate](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) 요청을 생성할 때 KMS 키의 ARN을 `kmsKeyArn` 필드에 포함시킵니다. Amazon Bedrock이 세션 컨텍스트를 암호화할 수 있도록 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꾸어 다음 정책을 연결합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id"
        }
    ]
}
```

------

## Amazon S3에서 데이터 소스의 AWS KMS 키를 복호화할 수 있는 권한
<a name="encryption-kb-ds"></a>

Amazon S3 버킷에 지식 기반용 데이터 소스를 저장합니다. 이러한 저장된 문서를 암호화하려면 Amazon S3의 SSE-S3 서버 측 암호화 옵션을 사용하면 됩니다. 이 옵션을 사용하면 Amazon S3 서비스에서 관리하는 서비스 키로 객체가 암호화됩니다.

자세한 내용은 Amazon Simple Storage Service 사용 설명서의 [Amazon S3 관리형 암호화 키(SSE-S3)로 서버 측 암호화를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) 섹션을 참조하세요.**

사용자 지정 AWS KMS 키로 Amazon S3의 데이터 소스를 암호화한 경우 Amazon Bedrock 서비스 역할에 다음 정책을 연결하여 Amazon Bedrock이 키를 해독하도록 허용합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "KMS:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/key-id"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "s3.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## 지식 기반이 포함된 벡터 저장소의 AWS Secrets Manager 보안 암호를 해독할 수 있는 권한
<a name="encryption-kb-3p"></a>

지식 기반이 포함된 벡터 저장소가 AWS Secrets Manager 보안 암호로 구성된 경우 보안 암호 암호화 및 암호 해독의 단계에 따라 사용자 지정 AWS KMS 키로 보안 암호를 암호화할 수 있습니다. [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) 

이렇게 하려면 Amazon Bedrock 서비스 역할에 다음 정책을 연결하여 키를 복호화할 수 있도록 허용합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

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

****  

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

------

## AWS KMS 암호화를 사용한 Bedrock Data Automation(BDA)에 대한 권한
<a name="encryption-kb-bda"></a>

BDA를 사용하여 고객 관리형 AWS KMS 키로 멀티모달 콘텐츠를 처리하는 경우 표준 권한 외에 추가 AWS KMS 권한이 필요합니다.

다음 정책을 Amazon Bedrock 서비스 역할에 연결하여 BDA가 암호화된 멀티미디어 파일로 작업할 수 있도록 합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

```
{
    "Sid": "KmsPermissionStatementForBDA",
    "Effect": "Allow",
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": "arn:aws:kms:region:account-id:key/key-id",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "account-id",
            "kms:ViaService": "bedrock.region.amazonaws.com"
        }
    }
}
```

BDA별 권한에는 `kms:DescribeKey` BDA가 암호화된 오디오, 비디오 및 이미지 파일을 처리하는 데 필요한 및 `kms:CreateGrant` 작업이 포함됩니다.