View a markdown version of this page

配置 Amazon S3 Files 访问权限 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置 Amazon S3 Files 访问权限

Amazon S3 Files 提供共享文件系统,可将任意 Amazon 计算资源与 Amazon S3 内的数据直接连通。Amazon S3 Files 通过本地挂载路径上的读取、写入等标准文件系统操作,将 Amazon S3 对象作为文件进行访问。了解有关 Amazon S3 Files 的更多信息。

先决条件和设置

在为 Lambda 函数设置 Amazon S3 Files 之前,务必先满足以下条件:

  • 拥有处于可用状态的 Amazon S3 文件系统和挂载目标,且与 Lambda 函数属于同一账户及 Amazon Web Services 区域。

  • Lambda 函数与挂载目标处于同一 VPC。函数部署所在的每个子网内均配置挂载目标。

  • 安全组允许 Lambda 函数与挂载目标之间的 NFS 流量(端口 2049)。了解有关配置安全组的更多信息

有关更多信息,请参阅《Amazon S3 用户指南》中的以下主题:

执行角色和用户权限

函数执行角色需具备以下权限,方可访问 Amazon S3 Files 文件系统:

执行角色权限
  • s3files:ClientMount:挂载文件系统必需权限。

  • s3files:ClientWrite:读写访问所必需的。读写访问必需权限。只读连接无需此项。

这些权限包含在 AmazonS3FilesClientReadWriteAccess 托管式策略中。此外,您的执行角色必须具有连接到文件系统的 VPC 所需的权限

注意

Amazon S3 Files 直接从 Amazon S3 读取数据,以此优化吞吐量。仅配置内存不低于 512 MB 的函数,支持从 Amazon S3 直接读取。

函数若要从 Amazon S3 直接读取,还需具备以下权限:

  • s3:GetObject

  • s3:GetObjectVersion

有关必要权限的更多信息,请参阅《Amazon S3 用户指南》中的 Amazon S3 Files 的 IAM 权限

在控制台配置文件系统时,Lambda 会使用您的权限来验证挂载目标和接入点。要配置函数以连接到文件系统,您的用户需要以下权限:

用户权限
  • s3files:ListFileSystems

  • s3files:ListAccessPoints

  • s3files:GetFileSystem

  • s3files:GetAccessPoint

  • s3files:CreateAccessPoint:从控制台为函数挂载文件系统时,需要该权限。

以下示例策略可为函数执行角色授予权限,以挂载具有读写访问权限的 Amazon S3 文件系统,并直接从 Amazon S3 读取数据。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3FilesLambdaAccess", "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite" ], "Resource": "*" }, { "Sid": "S3DirectRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket-name/*" }, { "Sid": "S3FilesConsoleSetup", "Effect": "Allow", "Action": [ "s3files:ListFileSystems", "s3files:ListAccessPoints", "s3files:GetFileSystem", "s3files:GetAccessPoint", "s3files:CreateAccessPoint" ], "Resource": "*" } ] }

连接到文件系统(控制台)

函数通过 VPC 中的本地网络连接到文件系统。函数连接到的子网可以是包含文件系统挂载点的相同子网,也可以是位于同一可用区中的子网,这些子网可以将 NFS 流量(端口 2049)路由到文件系统。

注意

如果函数尚未连接到 VPC,请参阅授予 Lambda 函数访问 Amazon VPC 中资源的权限

配置 S3 Files 访问权限
  1. 打开 Lamba 控制台的函数页面。

  2. 选择函数。

  3. 选择配置,然后选择文件系统

  4. 选择添加文件系统(或选择编辑,修改现有配置)。

  5. 选择 S3 Files

  6. 配置以下属性:

    • S3 文件系统:从下拉列表中选择文件系统。

    • 接入点(可选):选择接入点。如果文件系统没有接入点,Lambda 会在您保存时自动创建一个访问点(UID/GID 为 1000:1000,根目录为 /lambda,权限为 755)。如果存在接入点,则必须选择一个。

    • Local mount path(本地挂载路径) – 文件系统在 Lambda 函数上的挂载位置,以 /mnt/ 开头。

  7. 选择保存

下次调用 Lambda 函数时,将会自动挂载该文件系统。