

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

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

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

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

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

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

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

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

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

适用于 Amazon EFS AWS 托管式密钥 的 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 对该密钥的访问权限，您的文件系统将变得无法访问。如果您没有备份，这可能会导致数据丢失。在更改加密密钥之前，请务必确保已创建正确的备份过程。