使用 IAM 控制文件系统数据访问 - Amazon Elastic File System
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

使用 IAM 控制文件系统数据访问

您可以使用IAM身份策略和资源策略,通过针对云环境可扩展和优化的方式来控制客户端对 Amazon EFS 资源的访问。通过使用 IAM,您可以允许客户端对文件系统执行特定操作,包括只读、写入和根访问。

NFS 客户端可以在连接到 EFS 文件系统时使用 IAM 角色标识自己。当客户端连接到文件系统时,Amazon EFS 会评估文件系统的 IAM 资源策略(称为文件系统策略)以及任何基于身份的 IAM 策略,确定要授予的相应文件系统访问权限。

当您对 NFS 客户端使用 IAM 授权时,客户端连接和 IAM 授权决策将记录到 AWS CloudTrail。有关如何使用 Amazon EFS 记录 CloudTrail API 调用的更多信息,请参阅使用 Amazon EFS 记录 AWS CloudTrail API 调用

重要

您必须使用 EFS 挂载帮助程序挂载 Amazon EFS 文件系统,才能使用 IAM 授权来控制客户端访问。有关更多信息,请参阅使用 IAM 授权挂载

默认 EFS 文件系统策略

默认 EFS 文件系统策略向可使用文件系统挂载目标连接到文件系统的任何客户端授予完全访问权限。当用户配置的文件系统策略未生效时(包括在创建文件系统时),默认策略将生效。每当默认文件系统策略生效时,DescribeFileSystemPolicy API 操作都会返回 PolicyNotFound 响应。

客户端的 EFS 操作

您可以使用文件系统策略为访问文件系统的客户端指定以下操作。

操作 描述

elasticfilesystem:ClientMount

提供对文件系统的只读访问权限。

elasticfilesystem:ClientWrite

提供对文件系统的写入权限。

elasticfilesystem:ClientRootAccess

在访问文件系统时提供根用户的使用。

客户端的 EFS 条件键

要表达条件,您可以使用预定义的条件键。Amazon EFS 对于 NFS 客户端具有以下预定义的条件键。

EFS 条件键 描述 运算符
aws:SecureTransport

使用此键可要求客户端在连接到 EFS 文件系统时使用 TLS。

Boolean

elasticfilesystem:AccessPointArn 客户端正在连接到的 EFS 访问点的 ARN。
elasticfilesystem:AccessedViaMountTarget 使用此键可阻止不使用文件系统挂载目标的客户端访问 EFS 文件系统。

Boolean

文件系统策略示例

在本节中,您可以找到为各种 Amazon EFS 操作授予或拒绝权限的示例文件系统策略。 Amazon EFS 文件系统策略具有 20000 个字符的限制。有关基于资源的策略的元素的信息,请参阅指定策略元素:操作、效果和委托人

重要

如果您在文件系统策略中向单个 IAM 用户或角色授予权限,则当策略在文件系统上生效时,请不要删除或重新创建该用户或角色。如果这样做,该用户或角色将实际在文件系统中锁定,并且将无法访问该用户或角色。有关更多信息,请参阅 IAM 用户指南中的指定委托人

有关如何创建文件系统策略的信息,请参阅创建文件系统策略

示例 1:向特定 AWS 用户授予读写访问权限

此示例 EFS 文件系统策略具有以下特征:

  • 效果是 Allow

  • 委托人设置为用户 CarlosSalazar。

  • 操作设置为 ClientMount (读取)和 ClientWrite

  • 授予权限的条件设置为SecureTransport—仅向使用 TLS 加密协议的客户端授予访问权限。

{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleSatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/CarlosSalazar" }, "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:us-east-2:111122223333:file-system/fs-12345678", "Condition": { "Bool": { "aws:SecureTransport": "true" } } } ] }

示例 2:授予只读访问权限

以下文件系统策略仅向 EfsReadOnly IAM 角色授予 ClientMount或只读权限。

{ "Id": "read-only-example-policy02", "Statement": [ { "Sid": "efs-statement-example02", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/EfsReadOnly" }, "Action": [ "elasticfilesystem:ClientMount" ], "Resource": "arn:aws:elasticfilesystem:us-east-2:111122223333:file-system/fs-12345678" } ] }

要了解如何设置其他文件系统策略,包括拒绝对所有 IAM 委托人(特定管理工作站除外)的根访问权限,请参阅演练:使用 IAM 授权为 NFS 客户端启用 Root Squash

示例 3:授予对 EFS 访问点的访问权限

您可以使用 EFS 访问策略为 NFS 客户端提供 EFS 文件系统上基于文件的共享数据集的应用程序特定视图。您可以使用文件系统策略向访问点授予对文件系统的权限。此文件策略示例使用条件元素向由其 ARN 标识的特定访问点授予对文件系统的完全访问权限。有关使用 EFS 访问点的更多信息,请参阅使用 Amazon EFS 访问点

{ "Id": "access-point-example03", "Statement": [ { "Sid": "access-point-statement-example03", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::555555555555:role/EfsAccessPointFullAccess"}, "Action": "elasticfilesystem:Client*", "Resource": "arn:aws:elasticfilesystem:us-east-2:111122223333:file-system/fs-12345678", "Condition": { "StringEquals": { "elasticfilesystem:AccessPointArn":"arn:aws:elasticfilesystem:us-east-2:555555555555:access-point/fsap-12345678" } } } ] }