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

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

加密静态数据

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

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

注意

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

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

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

您还可以在内部定义服务控制策略 (SCP), Amazon Organizations 以对组织中的所有人强制执行 EF Amazon Web Services 账户 S 加密。有关中服务控制策略的更多信息 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. 对于虚拟私有云(VPC),请选择您的 VPC,或者将其设置为默认 VPC。

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

    • 使用 Amazon EFS 的默认 Amazon KMS key 设置启用静态数据加密 (aws/elasticfilesystem)。

    • 自动备份已打开 – 有关更多信息,请参阅备份您的 Amazon EFS 文件系统

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

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

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

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

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

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

    • 弹性吞吐量模式 – 有关更多信息,请参阅吞吐量模式

    • 使用 30 天策略启用生命周期管理 – 有关更多信息,请参阅管理文件系统存储

  6. 将出现文件系统页面,顶部有一个横幅,显示您创建的文件系统的状态。当文件系统可用时,横幅中会显示访问文件系统详细信息页面的链接。

现在,您有了新的 encrypted-at-rest 文件系统。

静态加密的工作方式

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

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

亚马逊 EFS 的使用方式 Amazon KMS

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

  • 加密静态元数据 — Amazon EFS 使用 Amazon 托管式密钥 适用于 Amazon EFS 的来加密和解密文件系统元数据(即文件名、目录名和目录内容)。aws/elasticfilesystem

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

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

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

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

重要

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

静态数据加密和解密是透明处理的。但是,特定于 Amazon EFS 的 Amazon 账户 ID 会出现在与 Amazon KMS 操作相关的 Amazon CloudTrail 日志中。有关更多信息,请参阅文件系统的 Amazon EFS 日志 encrypted-at-rest文件条目

Amazon EFS 的密钥政策 Amazon KMS

密钥策略是控制对客户托管式密钥的访问的主要方式。有关密钥策略的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的 Amazon KMS中的密钥策略。以下列表描述了 Amazon EFS 对静态加密文件系统所需或以其他方式支持的所有 Amazon KMS相关权限:

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

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

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

  • kms: GenerateDataKeyWithoutPlaintext —(必填)返回使用客户托管密钥加密的数据加密密钥。此权限包含在 k ms: GenerateDataKey * 下的默认密钥策略中。

  • km CreateGrant s: —(必填)向密钥添加授权,以指定谁可以在什么条件下使用该密钥。授权是密钥政策的替代权限机制。有关授权的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的使用授权。该权限包含在默认密钥策略中。

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

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

Amazon 托管式密钥 适用于 Amazon EFS KMS 政策

适用于 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": "*" } ] }