

# 配置 MFA 删除
<a name="MultiFactorAuthenticationDelete"></a>

在 Amazon S3 存储桶中使用 S3 版本控制时，您可以选择通过将存储桶配置为启用 *MFA（多重身份验证）删除*来添加另一层安全保护。执行此操作时，存储桶拥有者必须在任何请求中包含两种形式的身份验证，以删除版本或更改存储桶的版本控制状态。

MFA 删除要求对以下任一操作进行额外身份验证：
+ 更改存储桶的版本控制状态
+ 永久删除对象版本

MFA 删除需要结合使用两种形式的身份验证：
+ 您的安全凭证
+ 在已批准的身份验证设备上显示的有效序列号、空格和 6 位代码的组合

MFA 删除因此可在某些情况下（例如在安全凭证被泄露时）提供更高的安全性。MFA 删除要求启动删除操作的用户证明其实际拥有具有 MFA 代码的 MFA 设备，并为删除操作增加额外的摩擦和安全性，从而帮助防止存储桶被意外删除。

要识别已启用了 MFA 删除的存储桶，您可以使用 Amazon S3 Storage Lens 存储统计管理工具指标。S3 Storage Lens 存储统计管理工具是一项云存储分析功能，您可以使用它在整个组织范围内了解对象存储的使用情况和活动。有关更多信息，请参阅[使用 S3 Storage Lens 存储统计管理工具访问存储活动和使用情况](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens?icmpid=docs_s3_user_guide_MultiFactorAuthenticationDelete.html)。有关指标的完整列表，请参阅 [S3 Storage Lens 存储统计管理工具指标词汇表](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_MultiFactorAuthenticationDelete.html)。

存储桶拥有者、创建存储存储桶的 AWS 账户（根账户）以及所有授权用户都可以启用版本控制。但是，只有存储桶拥有者（根账户）才能启用 MFA 删除。有关更多信息，请参阅 AWS 安全博客中的[使用 MFA 保护对 AWS 的访问](https://aws.amazon.com/blogs/security/securing-access-to-aws-using-mfa-part-3/)。

**注意**  
要将 MFA 删除与版本控制结合使用，请启用 `MFA Delete`。但是，您无法使用 AWS 管理控制台 启用 `MFA Delete`。您必须使用 AWS Command Line Interface (AWS CLI) 或 API。  
有关将 MFA 删除与版本控制结合使用的示例，请参阅主题 [在存储桶上启用版本控制](manage-versioning-examples.md) 中的示例部分。  
不能将 MFA 删除与生命周期配置一起使用。有关生命周期配置以及如何与其他配置交互的详细信息，请参阅 [S3 生命周期如何与其它存储桶配置进行交互](lifecycle-and-other-bucket-config.md)。

要启用或禁用 MFA 删除，请使用对存储桶配置版本控制时所用的相同 API。Amazon S3 将 MFA 删除配置存储在用于存储桶版本控制状态的相同 *versioning* 子资源中。

```
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
  <Status>VersioningState</Status>
  <MfaDelete>MfaDeleteState</MfaDelete>  
</VersioningConfiguration>
```

要使用 MFA 删除，您可以使用硬件或虚拟 MFA 设备来生成身份验证代码。以下示例显示了在硬件设备上显示的生成的身份验证代码。

![\[硬件设备上显示的所生成的身份验证代码的示例。\]](http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/images/MFADevice.png)


MFA 删除和受 MFA 保护的 API 访问的功能旨在提供对不同方案的保护。您可以在存储存储桶上配置 MFA 删除，以协助确保存储桶中的数据不会被意外删除。受 MFA 保护的 API 访问用于在访问敏感的 Amazon S3 资源时，强制执行其他身份验证因素（MFA 代码）。您可以要求使用 MFA 创建的临时证书来完成针对这些 Amazon S3 资源的任何操作。有关示例，请参阅[需要 MFA](example-bucket-policies.md#example-bucket-policies-MFA)。

有关如何购买和激活身份验证设备的更多信息，请参阅[多重身份验证](https://aws.amazon.com/iam/details/mfa/)。

## 启用 S3 版本控制并配置 MFA 删除
<a name="enable-versioning-mfa-delete"></a>

### 使用 AWS CLI
<a name="enable-versioning-mfa-delete-cli"></a>

序列号是唯一标识 MFA 设备的数字。对于物理 MFA 设备，这是设备随附的唯一序列号。对于虚拟 MFA 设备，序列号是设备 ARN。要使用以下命令，请将*用户输入占位符*替换为您自己的信息。

以下示例在存储桶上为物理 MFA 设备启用 S3 版本控制和多重身份验证（MFA）删除。对于物理 MFA 设备，在 `--mfa` 参数中，传递 MFA 设备序列号、空格字符和身份验证设备上显示的值的串联。

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket1 --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "SerialNumber 123456"
```

以下示例在存储桶上为虚拟 MFA 设备启用 S3 版本控制和多重身份验证（MFA）删除。对于虚拟 MFA 设备，在 `--mfa` 参数中，传递 MFA 设备 ARN、空格字符和身份验证设备上显示的值的串联。

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket1 --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "arn:aws:iam::account-id:mfa/root-account-mfa-device 123789"
```

有关更多信息，请参阅 AWS rePost 文章[如何为我的 Amazon S3 存储桶启用 MFA 删除功能？](https://repost.aws/knowledge-center/s3-bucket-mfa-delete)

### 使用 REST API
<a name="enable-versioning-mfa-delete-rest-api"></a>

有关使用 Amazon S3 REST API 指定 MFA 删除的更多信息，请参阅《Amazon Simple Storage Service API Reference》**中的 [PutBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html)。