本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
对静态数据加密
您可以使用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 (elasticfilesystem:Encrypted
IAM) 基于身份的策略中使用 IAM 条件密钥来控制用户是否可以创建静态加密的 Amazon EFS 文件系统。有关使用条件键的更多信息,请参阅示例:强制创建加密文件系统。
您还可以在内部定义服务控制策略 (SCP),Amazon Organizations以对组织中的所有Amazon Web Services 账户系统强制执行 EFS 加密。有关中的服务控制策略的更多信息Amazon Organizations,请参阅《Amazon Organizations用户指南》中的服务控制策略。
使用控制台对静态文件系统
当您使用 Amazon EFS 控制台创建新的文件系统时,默认情况下会启用静态加密。以下过程说明了从控制台中创建新的文件系统时如何为其启用加密。
注意
使用Amazon CLI、API 和 SDK 创建新文件系统时,默认情况下不启用静态加密。有关更多信息,请参阅使用创建文件系统Amazon CLI:
使用 EFS 控制台加密新文件系统
-
访问 https://console.aws.amazon.com/efs/
,打开 Amazon Elastic File System 控制台。 -
选择 “创建文件系统” 以打开 “创建文件系统” 对话框。
-
(可选)为文件系统输入名称。
-
对于V irtual Private Cloud (VPC),选择您的 VPC,或将其设置为默认 VPC。
-
选择 “创建” 以创建使用以下服务推荐设置的文件系统:
使用 Amazon EFS (
aws/elasticfilesystem
) Amazon KMS key 的默认值启用静态数据加密。自动备份已开启 — 有关更多信息,请参阅备份您的Amazon EFS 文件系统。
装载目标 — Amazon EFS 使用以下设置创建装载目标:
位于创建文件系统的每个可用区中。Amazon Web Services 区域
位于您选择的 VPC 的默认子网中。
使用 VPC 的默认安全组。创建文件系统后,可以管理安全组。
有关更多信息,请参阅管理文件系统网络可访问性:
通用性能模式 — 有关更多信息,请参阅性能模式。
弹性吞吐量模式 — 有关更多信息,请参阅吞吐量模式。
使用 30 天策略启用生命周期管理 — 有关更多信息,请参阅Amazon EFS 智能管理。
-
将出现文件系统页面,顶部有一个横幅,显示您创建的文件系统的状态。当文件系统可用时,横幅中会出现访问文件系统详细信息页面的链接。
现在,您有了新的encrypted-at-rest文件系统。
静态加密的工作原理
在加密的文件系统中,在将数据和元数据写入到文件系统之前,将自动对其进行加密。同样,在读取数据和元数据时,在将其提供给应用程序之前,将自动对其进行解密。这些流程由 Amazon EFS 透明地处理,因此您无需修改应用程序。
亚马逊 EFS 使用行业标准的 AES-256 加密算法对静态的 EFS 数据和元数据进行加密。有关更多信息,请参阅《Amazon Key Management Service开发人员指南》中的密码学基础知识。
亚马逊 EFS 是如何使用的 Amazon KMS
Amazon EFS 与 Amazon Key Management Service (Amazon KMS) 集成以进行密钥管理。Amazon EFS 使用客户托管密钥通过以下方式加密您的文件系统:
-
加密静态元数据 — Amazon EFS 使用 for Amazon EFS 来加密和解密文件系统元数据(即文件名、目录名和目录内容)。Amazon 托管式密钥
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文件条目:
亚马逊 EFS 的密钥政策 Amazon KMS
密钥策略是控制对客户托管式密钥访问的主要方法。有关密钥策略的更多信息,请参阅Amazon Key Management Service开发人员指南Amazon KMS中的密钥策略。以下列表描述了 Amazon EFS 要求或以其他方式支持的静态加密文件系统的所有Amazon KMS相关权限:
-
KMS: Encryp t —(可选)将明文加密为密文。该权限包含在默认密钥策略中。
-
kms: Decrypt —(必需)解密密文。密文是以前加密的明文。该权限包含在默认密钥策略中。
-
kms:ReEncrypt—(可选)使用新的客户管理密钥加密服务器端的数据,而不公开客户端数据的明文。将先解密数据,然后重新加密。该权限包含在默认密钥策略中。
-
k@@ ms: GenerateDataKeyWithoutPlaintext —(必填)返回在客户托管密钥下加密的数据加密密钥。此权限包含在 kms: GenerateDataKey * 下的默认密钥策略中。
-
k@@ m CreateGrant s: —(必需)向密钥添加授权,以指定谁可以在什么条件下使用该密钥。授权是密钥策略的替代权限机制。有关补助金的更多信息,请参阅《Amazon Key Management Service开发者指南》中的使用资助。该权限包含在默认密钥策略中。
-
k@@ ms: DescribeKey —(必填)提供有关指定客户托管密钥的详细信息。该权限包含在默认密钥策略中。
-
k@@ m ListAliases s: —(可选)列出账户中的所有密钥别名。当您使用控制台创建加密文件系统时,此权限将填充 Sel ect KMS 密钥列表。我们建议您使用该权限以提供最佳的用户体验。该权限包含在默认密钥策略中。
Amazon 托管式密钥适用于亚马逊 EFS KMS 政策
亚马逊 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": "*" } ] }