

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

# 使用 Amazon EFS 的 Amazon KMS 密钥
<a name="EFSKMS"></a>

Amazon EFS 与 Amazon Key Management Service (Amazon KMS) 集成，用于密钥管理。Amazon EFS 使用客户托管密钥通过以下方法加密您的文件系统：
+ **静态加密元数据** – Amazon EFS 使用适用于 Amazon EF 的 Amazon 托管式密钥 `aws/elasticfilesystem` 来加密和解密文件系统元数据（即，文件名、目录名称和目录内容）。
+ **静态加密文件数据** – 您选择用于加密和解密文件数据（即，文件内容）的客户托管文件。您可以启用、禁用或撤销对此客户托管密钥的授权。此客户托管密钥可以是以下两种类型之一：
  + **Amazon 托管式密钥 适用于 Amazon EFS** — 这是默认的客户托管密钥`aws/elasticfilesystem`。您无需为创建和存储客户托管密钥支付费用，但需要支付使用费用。要了解更多信息，请参阅 [Amazon Key Management Service 定价](https://www.amazonaws.cn/kms/pricing/)。
  + **客户托管式密钥** – 这是使用最灵活的 KMS 密钥，因为您可以配置其密钥策略以及为多个用户或服务提供授权。有关创建客户托管密钥的更多信息，请参阅《*Amazon Key Management Service 开发人员指南》中的[创建密钥](https://docs.amazonaws.cn/kms/latest/developerguide/create-keys.html)。*

    如果将客户托管式密钥用于数据加密和解密，您可以启用密钥轮换。启用密钥轮换后，每年 Amazon KMS 自动轮换密钥一次。此外，对于客户托管式密钥，您还可以随时选择何时禁用、重新启用、删除或撤销对您的客管理式密钥的访问权限。有关更多信息，请参阅 [使用 Amazon EFS 的 Amazon KMS 密钥](#EFSKMS)。

**重要**  
Amazon EFS 仅接受对称的客户托管式密钥。您不能在 Amazon EFS 中使用非对称的客户托管式密钥。

静态数据加密和解密是透明处理的。但是，Amazon EFS IDs 特有的 Amazon 账户会出现在与 Amazon KMS 操作相关的 Amazon CloudTrail 日志中。有关更多信息，请参阅 [文件系统的 Amazon EFS 日志 encrypted-at-rest文件条目](logging-using-cloudtrail.md#efs-encryption-cloudtrail)。

## Amazon EFS 的密钥政策 Amazon KMS
<a name="EFSKMSPolicy"></a>

密钥策略是控制对客户托管式密钥的访问的主要方式。有关密钥策略的更多信息，请参阅《Amazon Key Management Service 开发人员指南》**中的 [Amazon KMS中的密钥策略](https://docs.amazonaws.cn/kms/latest/developerguide/key-policies.html)。以下列表描述了 Amazon EFS 对静态加密文件系统所需或以其他方式支持的所有 Amazon KMS相关权限：
+ **kms:Encrypt** –（可选）将明文加密为密文。该权限包含在默认密钥策略中。
+ **kms:Decrypt** –（必需）解密密文。密文是以前加密的明文。该权限包含在默认密钥策略中。
+ **kms: ReEncrypt** —（可选）使用新的客户托管密钥加密服务器端的数据，而不会在客户端暴露数据的纯文本。将先解密数据，然后重新加密。该权限包含在默认密钥策略中。
+ **kms: GenerateDataKeyWithoutPlaintext** —（必填）返回使用客户托管密钥加密的数据加密密钥。此权限包含在 k **ms: GenerateDataKey \$1** 下的默认密钥策略中。
+ **km CreateGrant s:** —（必填）向密钥添加授权，以指定谁可以在什么条件下使用该密钥。授权是密钥政策的替代权限机制。有关授权的更多信息，请参阅《Amazon Key Management Service 开发人员指南》**中的 [Amazon KMS中的授权](https://docs.amazonaws.cn/kms/latest/developerguide/grants.html)。该权限包含在默认密钥策略中。
+ **kms: DescribeKey** —（必填）提供有关指定客户托管密钥的详细信息。该权限包含在默认密钥策略中。
+ **km ListAliases s:** —（可选）列出账户中的所有密钥别名。使用控制台创建加密的文件系统时，该权限将填充**选择 KMS 密钥**列表。我们建议您使用该权限以提供最佳的用户体验。该权限包含在默认密钥策略中。

### Amazon 托管式密钥 适用于 Amazon EFS KMS 政策
<a name="efs-aws-managed-key-policy"></a>

适用于 Amazon EFS Amazon 托管式密钥 的 KMS 策略 JS `aws/elasticfilesystem` ON 如下所示：

```
{
    "Version": "2012-10-17",		 	 	 
    "Id": "auto-elasticfilesystem-1",
    "Statement": [
        {
            "Sid": "Allow access to EFS for all principals in the account that are authorized to use EFS",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "elasticfilesystem.us-east-2.amazonaws.com",
                    "kms:CallerAccount": "111122223333"
                }
            }
        },
        {
            "Sid": "Allow direct access to key metadata to the account",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "kms:Describe*",
                "kms:Get*",
                "kms:List*",
                "kms:RevokeGrant"
            ],
            "Resource": "*"
        }
    ]
}
```

## 密钥状态及其影响
<a name="key-states-effects"></a>

KMS 密钥的状态直接影响到对加密文件系统的访问：

已启用  
正常操作 - 对文件系统具有完全读取和写入权限

已禁用  
文件系统在短时间后变得无法访问。可以重新启用。

待删除  
文件系统变得无法访问。在等待期间可以取消删除。

已删除  
文件系统永久无法访问。此操作无法撤消。

**警告**  
如果您禁用或删除用于文件系统的 KMS 密钥，或者撤销 Amazon EFS 对该密钥的访问权限，您的文件系统将变得无法访问。如果您没有备份，这可能会导致数据丢失。在更改加密密钥之前，请务必确保已创建正确的备份过程。