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

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

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

您可以使用 IAM 身份策略和资源策略,以针对云环境可扩展和优化的方式控制客户端对 Amazon EFS 资源的访问。通过使用 IAM,您可以允许客户端对文件系统执行特定操作,包括只读、写入和根访问。对中的操作的 “允许” 权限或者IAM 身份策略要么文件系统资源策略允许访问该操作。不需要在中授予权限身份资源策略。

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

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

重要

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

默认 EFS 文件系统策略

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

客户端的 EFS 操作

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

操作 说明

elasticfilesystem:ClientMount

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

elasticfilesystem:ClientWrite

在文件系统上提供写入权限。

elasticfilesystem:ClientRootAccess

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

客户端的 EFS 条件密钥

要表示条件,您可以使用预定义的条件键。Amazon EFS 为 NFS 客户端提供以下预定义的条件键。

EFS 条件键 说明 操作符
aws:SecureTransport

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

布尔值

elasticfilesystem:AccessPointArn 客户端正在连接到的 EFS 访问点的 ARN。
elasticfilesystem:AccessedViaMountTarget 使用此密钥可防止未使用文件系统装载目标的客户端访问 EFS 文件系统。

布尔值

文件系统策略示例

本节的文件系统策略示例介绍如何授予或拒绝执行各 Amazon EFS 操作的权限。Amazon EFS 文件系统策略有 20,000 个字符限制。有关基于资源的策略的元素的信息,请参阅指定策略元素:操作、效果和委托人

重要

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

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

示例 1:授予对特定内容的读写访问权Amazon角色

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

  • 效果是 Allow

  • 委托人设置为中的 Testing_RoleAmazon Web Services 账户.

  • 该操作设置为ClientMount(阅读),以及ClientWrite.

  • 授予权限的条件设置为AccessedViaMountTarget.

{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientWrite", "elasticfilesystem:ClientMount" ], "Resource": "arn:aws:elasticfilesystem:us-east-2:111122223333:file-system/fs-1234abcd", "Condition": { "Bool": { "elasticfilesystem:AccessedViaMountTarget": "true" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Testing_Role" }, "Action": [ "elasticfilesystem:ClientWrite", "elasticfilesystem:ClientMount" ], "Resource": "arn:aws:elasticfilesystem:us-east-2:111122223333:file-system/fs-1234abcd" } ] }

示例 2:授予只读访问

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

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