

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

# 에이전트 리소스 암호화
<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"
                   }
               }
           }
       ]
   }
   ```

------