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

控制对 EFS API 的访问

您可以使用 IAM 身份策略和资源策略授予对 Amazon EFS 资源执行 API 操作的权限。本主题提供了基于身份的策略的示例,这些示例展示了账户管理员如何将权限策略附加到 IAM 身份(即用户、组和角色),因为这是控制 Amazon EFS API 访问的最常用方法。

重要

我们建议您首先阅读以下介绍性主题,这些主题说明了基本概念以及可用于管理对 Amazon EFS 资源的访问的选项。有关更多信息,请参阅管理您的 Amazon EFS 资源的访问权限概述

本主题的各个部分涵盖以下内容:

下面介绍权限策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "AllowFileSystemPermissions", "Effect": "Allow", "Action": [ "elasticfilesystem:CreateFileSystem", "elasticfilesystem:CreateMountTarget" ], "Resource": "arn:aws:elasticfilesystem:us-west-2:account-id:file-system/*" }, { "Sid" : "AllowEC2Permissions", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*" } ] }

该策略包含两条语句:

  • 第一个语句通过对文件系统使用 Amazon 资源名称 (ARN) 来授予对资源执行两个 Amazon EFS 操作(elasticfilesystem:CreateFileSystemelasticfilesystem:CreateMountTarget)的权限。ARN 将指定一个通配符 (*),因为您在创建文件系统之前不知道文件系统 ID。

  • 第二个语句授予对某些 Amazon EC2 操作的权限,因为第一个语句中的 elasticfilesystem:CreateMountTarget 操作需要特定 Amazon EC2 操作的权限。由于这些 Amazon EC2 操作不支持资源级权限,因此该策略将指定通配符 (*) 作为 Resource 值,而不是指定一个文件系统 ARN。

该策略不指定 Principal 元素,因为在基于身份的策略中,您未指定获取权限的委托人。附加了策略的用户是隐式委托人。向 IAM 角色挂载权限策略后,该角色的信任策略中标识的委托人获取权限。

有关显示所有 Amazon EFS API 操作及其适用于的资源的表,请参阅 Amazon EFS API 权限:操作、资源和条件参考

使用 Amazon EFS 控制台所需要的权限

权限参考表列出了 Amazon EFS API 操作以及每个操作所需的权限。有关 Amazon EFS API 操作的更多信息,请参阅 Amazon EFS API 权限:操作、资源和条件参考

要使用 Amazon EFS 控制台,您需要授予执行其他操作的权限,如以下权限策略中所示。

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "Stmt1AddtionalEC2PermissionsForConsole", "Effect": "Allow", "Action": [ "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DescribeVpcAttribute" ], "Resource": "*" } { "Sid" : "Stmt2AdditionalKMSPermissionsForConsole", "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" } ] }

Amazon EFS 控制台出于以下原因需要上述其他权限:

  • Amazon EFS 操作权限使控制台可以显示账户中的 Amazon EFS 资源。

  • 控制台需要 ec2 操作权限来查询 Amazon EC2,以便可以显示可用区、VPC、安全组及账户属性。

  • 控制台需要具有 kms 操作权限以创建加密的文件系统。有关加密的文件系统的更多信息,请参阅EFS 中的数据加密

适用于 Amazon EFS 的 AWS 托管(预定义)策略

AWS 通过提供由 AWS 创建和管理的独立 IAM 策略来解决很多常用案例。托管策略可授予常用案例的必要权限,因此,您可以免去调查都需要哪些权限的工作。有关更多信息,请参阅 IAM 用户指南 中的 AWS 托管策略

以下 AWS 托管策略(可以附加到您的账户中的用户)是特定于 Amazon EFS 的:

  • AmazonElasticFileSystemReadOnlyAccess – 授予对 Amazon EFS 资源的只读访问权限。

  • AmazonElasticFileSystemFullAccess – 授予对 Amazon EFS 资源的完全访问权限。

注意

您可以通过登录 IAM 控制台并在其中搜索特定策略来查看这些权限策略。

您还可以创建自己的自定义 IAM 策略,以授予执行 Amazon EFS API 操作的相关权限。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。

客户托管策略示例

本节的用户策略示例介绍如何授予各 Amazon EFS 操作的权限。当您使用 AWS 开发工具包或 AWS CLI 时,可以使用这些策略。当您使用控制台时,您需要授予特定于控制台的其他权限,使用 Amazon EFS 控制台所需要的权限中对此进行了讨论。

注意

所有示例都使用 us-west-2 区域和虚构的账户 ID。

示例 1:允许用户在现有文件系统上创建挂载目标和标签

以下权限策略授予用户在 us-west-2 区域的特定文件系统上创建挂载目标和标签的权限。要创建挂载目标,还需要执行特定 Amazon EC2 操作的权限,并将其包含在权限策略中。

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "Stmt1CreateMountTargetAndTag", "Effect": "Allow", "Action": [ "elasticfilesystem:CreateMountTarget", "elasticfilesystem:DescribeMountTargets", "elasticfilesystem:CreateTags", "elasticfilesystem:DescribeTags" ], "Resource": "arn:aws:elasticfilesystem:us-west-2:123456789012:file-system/file-system-ID" }, { "Sid" : "Stmt2AdditionalEC2PermissionsToCreateMountTarget", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*" } ] }

示例 2:允许用户执行所有 Amazon EFS 操作

以下权限策略使用通配符 ("elasticfilesystem:*") 以允许 us-west-2 区域内的所有 Amazon EFS 操作。由于某些 Amazon EFS 操作还需要 Amazon EC2 操作的权限,因此该策略还会为所有这些操作授予权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "Stmt1PermissionForAllEFSActions", "Effect": "Allow", "Action": "elasticfilesystem:*", "Resource": "arn:aws:elasticfilesystem:us-west-2:123456789012:file-system/*" }, { "Sid" : "Stmt2RequiredEC2PermissionsForAllEFSActions", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeNetworkInterfaceAttribute" ], "Resource": "*" } ] }

Amazon EFS API 权限:操作、资源和条件参考

在设置 访问控制 和编写可附加到 IAM 身份的权限策略 (基于身份的策略) 时,可使用下面的 作为参考。该表列出每个 Amazon EFS API 操作、您可授予执行权限的对应操作以及您可授予权限的 AWS 资源。您可以在策略的 Action 字段中指定这些操作,并在策略的 Resource 字段中指定资源值。

您可以在 Amazon EFS 策略中使用 AWS 范围的条件键来表达条件。有关 AWS 范围内的密钥的完整列表,请参阅 IAM 用户指南 中的可用密钥

注意

要指定操作,请在 API 操作名称之前使用 elasticfilesystem: 前缀(例如,elasticfilesystem:CreateFileSystem)。

使用滚动条查看表的其余部分。

Amazon EFS API 和操作所需的权限
Amazon EFS API 操作 所需权限(API 操作) 资源

CreateAccessPoint

elasticfilesystem:CreateAccessPoint

arn:aws:elasticfilesystem:region:account-id:access-point/*

CreateFileSystem

elasticfilesystem:CreateFileSystem

有关加密的文件系统的 KMS 相关权限的信息,请参阅AWS KMS 的 Amazon EFS 密钥策略

arn:aws:elasticfilesystem:region:account-id:file-system/*

CreateMountTarget

elasticfilesystem:CreateMountTarget

ec2:DescribeSubnets

ec2:DescribeNetworkInterfaces

ec2:CreateNetworkInterface

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id

CreateTags

elasticfilesystem:CreateTags arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DeleteAccessPoint elasticfilesystem:DeleteAccessPoint arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DeleteFileSystem elasticfilesystem:DeleteFileSystem arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DeleteFileSystemPolicy elasticfilesystem:DeleteFileSystemPolicy arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DeleteMountTarget

elasticfilesystem:DeleteMountTarget

ec2:DeleteNetworkInterface

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DeleteTags elasticfilesystem:DeleteTags arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DescribeAccessPoints elasticfilesystem:DescribeAccessPoints

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id

DescribeFileSystemPolicy elasticfilesystem:DescribeFileSystemPolicy

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id

DescribeFileSystems elasticfilesystem:DescribeFileSystems

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id

arn:aws:elasticfilesystem:region:account-id:file-system/*

DescribeLifecycleConfiguration

elasticfilesystem:DescribeLifecycleConfiguration

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id

DescribeMountTargetSecurityGroups

elasticfilesystem:DescribeMountTargetSecurityGroups

ec2:DescribeNetworkInterfaceAttribute

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DescribeMountTargets elasticfilesystem:DescribeMountTargets arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
DescribeTags elasticfilesystem:DescribeTags arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
ModifyMountTargetSecurityGroups

elasticfilesystem:ModifyMountTargetSecurityGroups

ec2:ModifyNetworkInterfaceAttribute

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
PutFileSystemPolicy

elasticfilesystem:PutFileSystemPolicy

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
PutLifecycleConfiguration

elasticfilesystem:PutLifecycleConfiguration

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
TagResource

elasticfilesystem:TagResource

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
UntagResource

elasticfilesystem:UntagResource

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
UpdateFileSystem

elasticfilesystem:UpdateFileSystem

arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id