本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
加密静态数据
您可以使用 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 控制台加密新文件系统
-
访问 https://console.aws.amazon.com/efs/
,打开 Amazon Elastic File System 控制台。 -
选择创建文件系统以打开创建文件系统对话框。
-
(可选)输入文件系统的名称。
-
对于虚拟私有云(VPC),请选择您的 VPC,或者将其设置为默认 VPC。
-
选择创建以创建使用以下服务推荐设置的文件系统:
使用 Amazon EFS 的默认 Amazon KMS key 设置启用静态数据加密 (
aws/elasticfilesystem
)。自动备份已打开 – 有关更多信息,请参阅备份您的 Amazon EFS 文件系统。
挂载目标 – Amazon EFS 使用以下设置创建挂载目标:
位于创建文件系统的每个可用区中。 Amazon Web Services 区域
位于您选择的 VPC 的默认子网中。
使用 VPC 的默认安全组。创建文件系统后,您可以管理安全组。
有关更多信息,请参阅管理文件系统网络可访问性。
通用性能模式 – 有关更多信息,请参阅性能模式。
弹性吞吐量模式 – 有关更多信息,请参阅吞吐量模式。
使用 30 天策略启用生命周期管理 – 有关更多信息,请参阅管理文件系统存储。
-
将出现文件系统页面,顶部有一个横幅,显示您创建的文件系统的状态。当文件系统可用时,横幅中会显示访问文件系统详细信息页面的链接。
现在,您有了新的 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": "*" } ] }