

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

# 知识库资源的加密
<a name="encryption-kb"></a>

Amazon Bedrock 会加密与知识库相关的资源。默认情况下，Amazon Bedrock 使用自有密钥对这些数据进行加 AWS密。或者，您可以使用客户托管式密钥对模型构件进行加密。

支持使用 KMS 密钥进行加密的过程如下：
+ 提取数据来源时的临时数据存储
+ 如果您让 Amazon Bedrock 设置矢量数据库，则会将信息传递给 OpenSearch 服务部门
+ 查询知识库

知识库使用的下列资源也可以使用 KMS 密钥进行加密。如果加密这些资源，则需要添加权限以解密 KMS 密钥。
+ 存储在 Amazon S3 存储桶中的数据来源
+ 第三方向量存储

有关更多信息 AWS KMS keys，请参阅《*AWS Key Management Service 开发人员指南》*中的[客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
Amazon Bedrock 知识库使用 TLS 加密与第三方数据来源连接器和向量存储（提供商允许并支持传输中的 TLS 加密）进行通信。

**Topics**
+ [加密数据提取期间的临时数据存储](#encryption-kb-ingestion)
+ [对传递给 Amazon OpenSearch 服务的信息进行加密](#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)
+ [带加密功能的 Bedrock 数据自动化 (BDA) 权限 AWS KMS](#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 服务的信息进行加密
<a name="encryption-kb-oss"></a>

如果您选择让 Amazon Bedrock 在亚马逊 OpenSearch 服务中为您的知识库创建矢量存储，Amazon Bedrock 可以将您选择的 KMS 密钥传递给亚马逊 OpenSearch 服务进行加密。要了解有关亚马逊 OpenSearch 服务加密的更多信息，请参阅[亚马逊 OpenSearch 服务中的加密](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 密钥加密在查询知识库时生成响应的会话。为此，请在发出请求时在`kmsKeyArn`字段中包含 KMS 密钥的 ARN。[RetrieveAndGenerate](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)附上以下策略，将示例值替换为您自己的 AWS 区域、账户 ID 和 AWS KMS 密钥 ID，以允许 Amazon Bedrock 加密会话上下文。

------
#### [ 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 钥对密钥进行加密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)。 AWS Secrets Manager

如果您这样做，请将以下策略附加到 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}}"
            ]
        }
    ]
}
```

------

## 带加密功能的 Bedrock 数据自动化 (BDA) 权限 AWS KMS
<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`和`kms:CreateGrant`操作，BDA 需要这些权限才能处理加密的音频、视频和图像文件。