

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

# EBS direct 的概念 APIs
<a name="ebsapi-elements"></a>

以下是在开始使用 EBS direc APIs t 之前应了解的关键概念。

## 快照
<a name="ebsapi-snapshots"></a>

快照是备份 EBS 卷中的数据的主要方式。借助 EBS Direct APIs，您还可以将本地磁盘中的数据备份到快照。为节省存储成本，连续快照为增量快照，只包含自上一个快照以来更改的卷数据。有关更多信息，请参阅 [Amazon EBS 快照](ebs-snapshots.md)。

**注意**  
EBS Direct APIs 不支持开启的公共快照和本地快照。 AWS Outposts

## 数据块
<a name="ebsapi-blocks"></a>

数据块是快照中的数据片段。每个快照可以包含数千个数据块。快照中的所有数据块都具有固定大小。

## 数据块索引
<a name="ebsapi-block-indexes"></a>

数据块索引是以 `512` KiB 数据块为单位的逻辑索引。若要确定数据块索引，请用逻辑卷中数据的逻辑偏移量除以数据块大小（数据的逻辑偏移量/`524288`）。数据的逻辑偏移量必须与 `512` KiB 一致。

## 数据块令牌
<a name="ebsapi-block-tokens"></a>

数据块令牌是快照中的数据块的标识哈希，它用于查找数据块数据。EBS Direct 返回的区块代币 APIs 是临时的。它们会在为其指定的到期时间戳时发生变化，或者如果您运行另一个快照 ListSnapshotBlocks 或 ListChangedBlocks 请求相同的快照。

## 校验和
<a name="ebsapi-checksum"></a>

校验和是从数据块中派生的大小很小的基准值，用于检测其传输或存储过程中引入的错误。EBS 直接 APIs 使用校验和来验证数据的完整性。当您从 EBS 快照中读取数据时，该服务会为传输的每个数据块提供 Base64 编码的 SHA256 校验和，您可以将其用于验证。向 EBS 快照写入数据时，必须为每个传输的数据块提供 Base64 编码的 SHA256 校验和。服务使用提供的校验和验证接收的数据。有关更多信息，请参阅本指南下文中的[使用 EBS 直接 APIs 校验和来验证快照数据](ebsapis-using-checksums.md)。

## 加密
<a name="ebsapi-encryption"></a>

通过加密，您的数据将转换为无法读取的代码，只能由有权访问加密数据所用 KMS 密钥 的人员破译这些代码，从而为数据提供保护。您可以使用 EBS Direc APIs t 来读取和写入加密快照，但有一些限制。有关更多信息，请参阅本指南下文中的[EBS Direct 的加密结果 APIs](ebsapis-using-encryption.md)。

## API 操作
<a name="ebsapi-actions"></a>

EBS direc APIs t 由六个操作组成。包含三个读取操作和三个写入操作。读取操作包括：
+ **ListSnapshotBlocks**— 返回指定快照中区块的区块索引和区块标记
+ **ListChangedBlocks**— 返回同一卷和快照谱系的两个指定快照之间存在差异的区块索引和区块令牌。
+ **GetSnapshotBlock**— 返回区块中指定快照 ID、区块索引和区块令牌的数据。

写入操作包括：
+ **StartSnapshot**— 启动快照，可以是现有快照的增量快照，也可以是新快照。在使用 CompleteSnapshot 操作完成之前，已启动的快照将保持待处理状态。
+ **PutSnapshotBlock**— 以单个块的形式向已启动的快照添加数据。必须为传输的数据块指定 Base64 编码的 SHA256 校验和。该服务会在传输完成以后验证校验和。若该服务计算的校验和与您指定值的不匹配，请求将会失败。
+ **CompleteSnapshot**— 完成处于待处理状态的已启动快照。然后，该快照的状态会更改为“已完成”。

## 签名版本 4 签名
<a name="ebsapis-using-sigv4"></a>

签名版本 4 是向 HTTP 发送的 AWS 请求添加身份验证信息的过程。为了安全起见，对的大多数请求都 AWS 必须使用访问密钥进行签名，访问密钥由访问密钥 ID 和私有访问密钥组成。这两个密钥通常称为您的安全凭证。有关如何获取账户凭证的信息，请参阅 [AWS 安全凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html)。

如果您打算手动创建 HTTP 请求，则必须了解如何对其签名。当您使用 AWS Command Line Interface (AWS CLI) 或其中一个 AWS SDKs 向发出请求时 AWS，这些工具会自动使用您在配置工具时指定的访问密钥为您签署请求。当您使用这些工具时，您不必了解如何亲自签署这些请求。

有关更多信息，请参阅 I *AM 用户指南*中的[签署 AWS API 请求](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。