加密 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

加密

您可以使用Amazon Web Services Management Console,Amazon CLI,或者通过编程方式通过 Amazon EFS API 或其中一个Amazon开发工具包。您的组织可能要求加密符合特定分类条件的所有数据,或者加密与特定应用程序、工作负载或环境关联的所有数据。

创建 EFS 文件系统后,无法更改其加密设置。这意味着您无法修改未加密的文件系统以使其加密。相反,您需要创建新的加密文件系统。

注意

这些区域有:Amazon密钥管理基础架构使用联邦信息处理标准 (FIPS) 140-2 批准的加密算法。该基础设施符合美国国家标准与技术研究院 (NIST) 800-57 建议。

强制创建静态加密的 Amazon EFS 文件系统

您可以使用elasticfilesystem:EncryptedIAM 条件加密Amazon Identity and Access Management(IAM) 基于身份的策略,用于控制用户是否可以创建静态加密的 Amazon EFS 文件系统。有关使用条件键的更多信息,请参阅使用 IAM 强制创建加密的文件系统.

您还可以在内部定义服务控制策略 (SCP)Amazon Organizations对所有人强制执行 EFS 加密Amazon Web Services 账户在组织中对您的。有关服务控制策略的更多信息,请参阅Amazon Organizations,请参阅服务控制策略中的Amazon Organizations用户指南.

使用控制台加密静态文件系统

默认情况下,当您使用 Amazon EFS 控制台创建新文件系统时,静态加密处于启用状态。以下过程说明了从控制台中创建新的文件系统时如何为其启用加密。

注意

默认情况下,在创建新文件系统时,使用静态加密处于启用状态Amazon CLI、API 和软件开发工具包。有关更多信息,请参阅 创建文件系统时Amazon CLI

使用 EFS 控制台加密新的文件系统

  1. 访问 https://console.aws.amazon.com/efs/,打开 Amazon Elastic File System 控制台。

  2. 选择创建文件系统以打开创建文件系统对话框。

  3. (可选)输入名称适用于您的文件系统。

  4. 适用于Virtual Private Cloud (VPC),选择您的 VPC,或者将其设置为默认 VPC。

  5. 选择Create创建使用以下服务推荐设置的文件系统:

    • 使用默认值启用静态数据加密Amazon KMS key适用于Amazon EFS (aws/elasticfilesystem)。

    • 自动备份已启用 — 有关更多信息,请参阅使用Amazon Backup备份和还原 Amazon EFS 文件系统.

    • 装载目标 — Amazon EFS 使用以下设置创建挂载目标:

      • 位于各可用区中的Amazon Web Services 区域文件系统的创建位置。

      • 位于所选 VPC 的默认子网中。

      • 使用 VPC 的默认安全组。您可以在创建文件系统后管理安全组。

      有关更多信息,请参阅 管理文件系统网络可访问性

    • 通用性能模式 — 有关更多信息,请参阅性能模式.

    • 突增吞吐量模式 — 有关更多信息,请参阅吞吐量模式.

    • 使用 30 天策略启用生命周期管理 — 有关更多信息,请参阅Azon EFS 生命周期管理.

  6. 这些区域有:文件系统页面,顶部有一个横幅,显示您创建的文件系统的状态。当文件系统变为可用时,横幅中将显示一个用于访问文件系统详细信息页面的链接。

    
                显示新创建的文件系统及其配置详细信息的文件系统详细信息页面。

你现在有新的 encrypted-at-rest 文件系统。

静态加密

在加密的文件系统中,在将数据和元数据写入到文件系统之前,将自动对其进行加密。同样,在读取数据和元数据时,在将其提供给应用程序之前,将自动对其进行解密。这些过程是 Amazon EFS 透明处理的,因此,您不必修改您的应用程序。

Amazon EFS 使用行业标准 AES-256 加密算法静态加密 EFS 数据和元数据。有关更多信息,请参阅 。加密基础知识中的Amazon Key Management Service开发人员指南.

Amazon EFS 如何使用Amazon KMS

Amazon EFS 与Amazon Key Management Service(Amazon KMS) 以进行密钥管理。Amazon EFS 使用客户托管密钥通过以下方法加密您的文件系统:

  • 静态加密— 亚马逊 EFS 使用Amazon 托管式密钥对于Amazon EFSaws/elasticfilesystem,以加密和解密文件系统元数据(即,文件名、目录名称和目录内容)。

  • 加密— 您选择用于加密和解密文件数据(即,文件内容)的客户托管密钥。您可以启用、禁用或撤销对客户托管密钥的授权。该客户托管密钥可以采用以下两种类型之一:

    • Amazon 托管式密钥适用于Amazon EFS— 这是默认的客户托管式密钥aws/elasticfilesystem. 您无需为创建和存储客户托管密钥支付费用,但需要支付使用费用。要了解更多信息,请参阅Amazon Key Management Service定价.

    • 客户托管密钥— 这是使用最灵活的 KMS 密钥,因为您可以配置其密钥策略以及为多个用户或服务提供授权。有关创建客户托管密钥的更多信息,请参阅创建密钥中的 Amazon Key Management Service开发人员指南 的第一个版本。

      如果将客户托管密钥用于文件数据加密和解密,您可以启用密钥轮换。在启用密钥轮换时,Amazon KMS 自动每年轮换一次您的密钥。此外,对于客户托管密钥,您可以随时选择何时禁用、重新启用、删除或撤销您的客户托管密钥的访问权限。有关更多信息,请参阅 禁用、删除或撤消对文件系统的 KMS 密钥的访问权限

重要

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

静态数据加密和解密是透明处理的。但是,Amazon特定于 Amazon EFS 的账户 ID 显示在您的Amazon CloudTrail与相关的日志Amazon KMS行动。有关更多信息,请参阅 静态加密的文件系统的 Amazon EFS 日志文件条目

Amazon EFS 密钥策略Amazon KMS

密钥策略是控制对客户托管密钥访问的主要方法。有关密钥策略的更多信息,请参阅使用以下密钥策略Amazon KMS中的Amazon Key Management Service开发人员指南 的第一个版本。下面的列表介绍了所有Amazon KMSAmazon EFS 要求或以其他方式支持的静态加密文件系统的相关权限:

  • kms:Encrypt—(可选)将明文加密为密文。该权限包含在默认密钥策略中。

  • kms:Decrypt—(必需)解密文。密文是以前加密的明文。该权限包含在默认密钥策略中。

  • kmsReEncrypt—(可选)使用新的客户托管密钥加密服务器端的数据,而不公开客户端上的数据的明文。将先解密数据,然后重新加密。该权限包含在默认密钥策略中。

  • kmsGenerateDataKeyWithoutPlaintext—(必需)返回根据客户托管密钥加密的数据加密密钥。该权限包含在以下的默认密钥策略中kmsGenerateDataKey*.

  • kmsCreateGrant—(必需)为密钥添加授权以指定哪些用户可以在什么条件下使用密钥。授权是密钥策略的替代权限机制。有关补助的更多信息,请参阅使用授权中的Amazon Key Management Service开发人员指南 的第一个版本。该权限包含在默认密钥策略中。

  • kmsDescribeKey—(必需)提供有关指定的客户托管密钥的详细信息。该权限包含在默认密钥策略中。

  • kmsListAliases—(可选)列出账户中的所有密钥别名。在使用控制台创建加密的文件系统时,该权限将填充选择 KMlist. 我们建议您使用该权限以提供最佳的用户体验。该权限包含在默认密钥策略中。

Amazon 托管式密钥适用于Amazon EFS 策略

的 KMS 策略 JSONAmazon 托管式密钥对于Amazon EFSaws/elasticfilesystem如下所示:

{ "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": "*" } ] }