AWS Storage Gateway
用户指南 (API 版本 2013-06-30)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

管理文件网关

随后,您可以找到有关如何管理文件网关资源的信息。

添加文档共享

在激活和运行文件网关后,您可以添加额外的文件共享并为其授予 Amazon S3 存储桶访问权。您可以授权访问的存储桶包括与您的文件共享不在同一个 AWS 账户下的存储桶。有关如何添加文件共享的信息,请参阅创建文件共享

授予对 Amazon S3 存储桶的访问权限

在创建文件共享时,文件网关需要访问权限才能将文件上传到 Amazon S3 存储桶中。为了授予此访问权限,文件网关将代入与授予此访问权限的 AWS Identity and Access Management (IAM) 策略关联的 IAM 角色。

该角色需要此 IAM 策略以及与之有关的安全令牌服务 (STS) 信任关系。此策略确定了该角色可以执行的操作。此外,您的 S3 存储桶还必须具有允许 IAM 角色访问 S3 存储桶的访问策略。

您可以自行创建该角色和访问策略,也可以让 文件网关 为您创建。如果 文件网关 为您创建该策略,该策略将包含 S3 操作列表。有关角色和权限的信息,请参阅 IAM 用户指南 中的创建向 AWS 服务委派权限的角色

下面是一个信任策略示例,该策略允许 文件网关 代入 IAM 角色。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "storagegateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

如果您不希望 文件网关 代表您创建策略,您可以创建自己的策略并将它附加到文件共享。有关此操作的详细信息,请参阅 创建文件共享

以下示例策略允许文件网关执行策略中列出的所有 Amazon S3 操作。语句的第一部分允许对名为 TestBucket 的 S3 存储桶执行列出的所有操作。第二部分允许对 TestBucket 中的所有对象执行列出的操作。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetAccelerateConfiguration", "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::TestBucket", "Effect": "Allow" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::TestBucket/*", "Effect": "Allow" } ] }

使用文件共享进行跨账户访问

当 AWS 账户和该账户的用户获得了对属于其他 AWS 账户的资源的访问权限时,跨账户访问权限便出现了。有了文件网关,您可以使用一个 AWS 账户中的文件共享访问属于另一个 AWS 账户的 Amazon S3 存储桶中的对象。

使用一个 AWS 账户拥有的文件共享访问另一个 AWS 账户中的 S3 存储桶

  1. 确保 S3 存储桶拥有者授权您的 AWS 账户访问您需要访问的 S3 存储桶以及其中的对象。有关授予此访问权限的信息,请参阅 Amazon Simple Storage Service 开发人员指南 中的示例 2:存储桶拥有者授予跨账户存储桶权限。有关所需权限的列表,请参阅授予对 Amazon S3 存储桶的访问权限

  2. 确保您的文件共享用来访问 S3 存储桶的 IAM 角色包含 s3:GetObjectAcls3:PutObjectAcl 等操作的权限。此外,确保 IAM 角色包括允许您的账户代入该 IAM 角色的信任策略。有关信任策略的示例,请参阅授予对 Amazon S3 存储桶的访问权限

    如果您的文件共享使用现有角色来访问 S3 存储桶,您应包含 s3:GetObjectAcl 和 s3:PutObjectAcl 操作的权限。IAM 角色还需要一个允许您的帐户带入此角色的信任策略。有关信任策略的示例,请参阅授予对 Amazon S3 存储桶的访问权限

  3. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  4. Configure file share setting (配置文件共享设置)Object metadata (对象元数据) 设置中,选择 Give bucket owner full control (给予存储桶拥有者完全控制权限)

在为跨账户访问权限创建或更新文件共享并在本地挂载该文件共享后,我们强烈建议您测试设置。为此,您可以列出目录内容或者编写测试文件并确保这些文件在 S3 存储桶中显示为对象。

重要

确保设置正确的策略以授予跨账户访问文件共享所使用的账户。如果您未这样做,则通过本地应用程序对文件所做的更新不能传播到您正在使用的 Amazon S3 存储桶。

有关访问策略和访问控制列表的更多信息,请参阅以下内容:

Amazon Simple Storage Service 开发人员指南 中的有关使用可用访问策略选项的准则

Amazon Simple Storage Service 开发人员指南 中的访问控制列表 (ACL) 概述

删除文件共享

如果您不再需要某个文件共享,可以从 AWS Storage Gateway 管理控制台将其删除。删除文件共享时,网关会从文件共享映射到的 Amazon S3 存储桶分离。但是,S3 存储桶及其内容不会被删除。

在删除文件共享时,如果网关正在向 S3 存储桶上传数据,则删除过程需要等到所有数据上传完之后才会完成。在数据完全上传之前,文件共享将具有 DELETING 状态。

如果您希望将数据完全上传,请执行紧跟着的删除文件共享步骤。如果您不想等到数据都上传完毕后再删除文件共享,则请参阅本主题稍后的强制删除文件共享步骤。

删除文件共享

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择文件共享,然后选择要删除的文件共享。

  3. 对于 Actions,选择 Delete file share。将出现以下确认对话框。

  4. 在确认对话框中,选中要删除的文件共享对应的复选框,然后选择 Delete

在某些情况下,您可能不想等到写入网络文件系统 (NFS) 文件共享上文件的所有数据都上传完毕后再删除文件共享。例如,您可能想要有意放弃已写入但尚未上传的数据。在另一个示例中,支持文件共享的 Amazon S3 存储桶或对象可能已被删除,这意味着无法再上传指定的数据。

在这些情况下,您可以通过使用 AWS 管理控制台或 DeleteFileShare API 操作强制删除文件共享。此操作会中止数据上传过程。执行此操作后,文件共享将进入 FORCE_DELETING 状态。要强制从控制台删除文件共享,请参阅以下过程。

强制删除文件共享

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择文件共享,然后选择要强制删除的文件共享并等待几秒钟。删除消息会显示在 Details 选项卡中。

    注意

    您无法撤消强制删除操作。

  3. 详细信息选项卡上显示的消息中,验证要强制删除的文件共享的 ID,选中确认框,然后选择立即强制删除

您也可以使用 DeleteFileShare API 操作强制删除文件共享。

为文件共享编辑存储设置

您可以编辑 Amazon S3 存储桶的默认存储类、Squash 级别设置以及文件共享的 Export as (导出为) 选项。例如,Export as 选项可能包括 Read-write

编辑文件共享设置

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择要更新的文件共享。

  3. 对于操作,选择编辑存储设置

  4. 执行以下一个或多个操作:

    • 对于 Storage class for new objects,选择 S3 存储桶的默认存储类,然后选择 Save

      新对象可能的存储类值如下:

      • S3 标准 – 将您经常访问的对象数据冗余存储在地理上分开的多个可用区中。

      • S3 标准 - IA – 将您不常访问的对象数据冗余存储在地理上分开的多个可用区中。

      • S3 单区 - IA – 将您不常访问的对象数据存储在单个可用区中。

        有关更多信息,请参阅 Amazon Simple Storage Service 开发人员指南 中的存储类别

    • 对于对象元数据,选择要使用的元数据:

      • 选择猜测 MIME 访问类型,启用根据文件扩展名猜测已上传对象的 MIME 类型。

      • 选择 Give bucket owner full control (向存储桶拥有者授予完全控制权限) 以向 S3 存储桶拥有者授予完全控制权限,后者映射到文件的网络文件系统 (NFS) 或服务器消息块 (SMB) 文件共享。有关使用文件共享来访问其他账户拥有的存储桶中的对象的更多信息,请参阅使用文件共享进行跨账户访问

      • 如果您在要求请求者或读取者(而不是存储桶拥有者)支付访问费用的存储桶上使用此文件共享,请选择启用申请方付款。有关更多信息,请参阅申请方付款存储桶

    • 对于 Squash 级别,选择 NFS 文件共享所需的 Squash 级别设置,然后选择保存

      注意

      您只能为 NFS 文件共享选择一个 Squash 级别设置。SMB 文件共享不使用 Squash 设置。

      可能的值包括:

      • Root squash (默认) – 远程超级用户(root 用户)的访问权限将映射到 UID (65534) 和 GID (65534)。

      • No root squash – 远程超级用户(root 用户)以根用户身份接收访问权限。

      • All squash – 所有用户访问权限将映射到 UID (65534) 和 GID (65534)。

      “Squash level”的默认值为 Root squash

    • 对于 Export as,为文件共享选择一个选项,然后选择 Save。默认值为 Read-write

      注意

      对于在 Microsoft Windows 客户端上装载的文件共享,如果您对于导出为选择了只读,则可能会看到有关某个意外错误正在阻止您创建文件夹的错误消息。此错误消息是 NFS 版本 3 的已知问题。您可以忽略此消息。

为 NFS 文件共享编辑元数据默认值

如果您没有为存储桶中的文件或目录设置元数据值,则文件网关将设置元数据默认值。这些值包括文件和文件夹的 Unix 权限。您可以在 AWS Storage Gateway 管理控制台中编辑元数据默认值。

当文件网关在 Amazon S3 中存储文件和文件夹时,Unix 文件权限将存储在对象元数据中。当文件网关发现没有被 文件网关 存储的对象时,系统会为这些对象分配默认 Unix 文件权限。您可以在下表中找到默认 Unix 权限。

元数据 描述
目录权限

“nnnn”形式的 Unix 目录模式。例如,“0666”表示文件共享中所有目录的访问模式。默认值是 0777。

文件权限

Unix 文件模式采用“nnnn”形式。例如,“0666”表示文件共享中的文件模式。默认值是 0666。

用户 ID

文件共享中文件的默认所有者 ID。默认值是 65534。

组 ID 文件共享的默认组 ID。默认值是 65534。

编辑元数据默认值

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择要更新的文件共享。

  3. 对于 Action,选择 Edit file metadata defaults

  4. Edit file metadata defaults 对话框中,提供元数据信息并选择 Save

为 NFS 文件共享编辑访问设置

我们建议您为 NFS 文件共享更改允许的 NFS 客户端设置。如果您未这样做,则您网络上的任何客户端均可装载到您的文件共享。

编辑 NFS 访问设置

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择文件共享,然后选择要编辑的 NFS 文件共享。

  3. 对于操作,选择编辑共享访问设置

  4. 编辑允许的客户端对话框中,选择添加条目,为要允许的客户端提供 IP 地址或 CIDR 表示法,然后选择保存

为 SMB 文件共享编辑访问设置

您可以设置网关的安全级别,设置 AD 用户的访问权限并向来宾提供对文件共享的访问权限。

编辑 SBM 文件共享的访问设置

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择要用于加入域的网关。

  3. 对于 Actions (操作),选择 Edit SMB settings (编辑 SMB 设置) 以打开 Edit SMB settings (编辑 SMB 设置) 对话框,并选择要执行的操作。

设置网关的安全级别

通过使用文件网关,您可以指定网关的安全级别。通过指定此安全级别,您可以设置网关是否需要服务器消息块 (SMB) 签名或 SMB 加密,或者您是否要启用 SMB 版本 1。

配置安全级别

主题

    1. 在 SMB 安全设置部分中,选择 Set security level (设置安全级别)

    2. 对于 Security level (安全级别),请选择下列选项之一:

      注意

      此设置在 API 参考中称为 SMBSecurityStrategy。

      较高的安全级别可能会影响性能。

      • Enforce encryption (强制加密) – 如果选择此选项,则文件网关只允许来自启用加密的 SMBv3 客户端的连接。对于处理敏感数据的环境,强烈建议使用此选项。此选项适用于 Microsoft Windows 8、Windows Server 2012 或更高版本上的 SMB 客户端。

      • Enforce signing (强制签名) – 如果选择此选项,则文件网关只允许来自启用签名的 SMBv2 或 SMBv3 客户端的连接。此选项适用于 Microsoft Windows Vista、Windows Server 2008 或更高版本上的 SMB 客户端。

      • Client negotiated (客户端协商) – 如果选择此选项,则将根据客户端协商的内容建立请求。当您希望最大程度地提高环境中的各个客户端之间的兼容性时,建议使用此选项。

      注意

      对于 2019 年 6 月 20 日之前激活的网关,默认安全级别为 Client negotiated (客户端协商)

      对于 2019 年 6 月 20 日及以后激活的网关,默认安全级别为 Enforce encryption (强制加密)

    使用 Active Directory 对用户进行身份验证

    要使用企业 Active Directory 对 SMB 文件共享进行经过身份验证的访问,请使用 Microsoft AD 域凭证编辑网关的 SMB 设置。这样做可以使网关加入 Active Directory 域并允许该域的成员访问 SMB 文件共享。

    注意

    利用 AWS Directory Service,您可以在 AWS 云中创建托管的 Active Directory 域服务。

    可以提供正确密码的任何人都将获得对 SMB 文件共享的来宾访问权限。

    您也可以在 SMB 文件共享上启用访问控制列表 (ACL)。有关如何启用 ACL 的信息,请参阅使用 Microsoft Windows ACL 控制对 SMB 文件共享的访问

    启用 Active Directory 身份验证

    1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

    2. 选择 Gateways (网关),然后在 Gateway (网关) 页面上,选中要为其启用 Active Directory 身份验证的文件网关旁边的框。

    3. 对于 Actions (操作),选择 Edit SMB settings (编辑 SMB 设置) 以打开 Edit SMB settings (编辑 SMB 设置) 对话框。

    4. Active Directory 设置部分中,选择加入域

      注意

      如果您的网关无法加入 Active Directory 目录,请尝试通过 JoinDomain API 操作使用目录的 IP 地址加入。

    5. 对于域名,提供您希望网关加入的域。您可以通过使用域的 IP 地址或其组织单位加入域。组织单位 是一个 Active Directory 细分,可以包含用户、组、计算机和其他组织单位。

    6. 提供域用户名和域密码,然后选择保存

      您的控制台的网关部分顶部的消息指示您的网关已成功加入您的 AD 域。

    将文件共享访问权限限制到特定 AD 用户和组

    1. 在 Storage Gateway 控制台中,选择要限制访问的文件共享。

    2. 对于 Actions (操作),选择 Edit SMB settings (编辑 SMB 设置) 以打开 Edit Allowed/Denied users and groups (编辑允许/拒绝的用户和组) 对话框。

    3. 对于 Allowed users (允许的用户),选择 Add entry (添加条目) 并提供您要允许其访问文件共享的 AD 用户的列表。

    4. 对于 Allowed groups (允许的组),选择 Add entry (添加条目) 并提供您允许其访问文件共享的 AD 组的列表。

    5. 对于 Denied users (拒绝的用户),选择 Add entry (添加条目) 并提供您要拒绝其访问文件共享的 AD 用户的列表。

    6. 对于 Denied groups (拒绝的组),选择 Add entry (添加条目) 并提供您要拒绝其访问文件共享的 AD 用户的列表。

    7. 完成添加条目后,选择保存

      注意

      对于用户和组,仅输入 AD 用户或组名称。域名由网关加入的特定 AD 中的网关成员资格表示。

    如果您未指定有效或无效的用户或组,任何经过身份验证的 Active Directory 用户都可以导出文件共享。

    向来宾提供对文件共享的访问权限

    如果您只希望提供来宾访问权限,您的文件网关不必是 Microsoft AD 域的一部分。您还可以使用作为 AD 域成员的文件网关来创建具有来宾访问权限的文件共享。在使用来宾访问创建文件共享之前,您需要更改默认密码。

    更改来宾访问密码

    1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

    2. 选择要用于加入域的网关。

    3. 对于操作,选择编辑 SMB 设置

    4. 来宾访问设置部分中,选择设置来宾密码,提供密码,然后选择保存

    刷新 Amazon S3 存储桶中的对象

    在 NFS 或 SMB 客户端执行文件系统操作时,您的网关会在与文件共享关联的 Amazon S3 存储桶中维护一个对象清单。您的网关使用此缓存清单来减小 S3 请求的延迟和频率。

    要刷新用于文件共享的 S3 存储桶,您可以使用 AWS Storage Gateway 控制台或 AWS Storage Gateway API 中的 RefreshCache 操作。

    从控制台刷新 S3 存储桶中的对象

    1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

    2. 选择 File shares,然后选择与要刷新的 S3 存储桶关联的文件共享。

    3. 对于 Actions,选择 Refresh cache

      刷新过程所需的时间取决于在网关上缓存的对象数以及在 S3 存储桶中添加或删除的对象数。

    缓存刷新仅启动刷新操作。在缓存刷新完成时,这并不一定表示文件刷新完成。要确定在检查网关文件共享上的新文件之前已完成文件刷新操作,请使用 refresh-complete 通知。为此,您可以订阅以在 RefreshCache 操作完成时通过 Amazon CloudWatch 事件接收通知。有关更多信息,请参阅 获得有关文件操作的通知

    使用具有文件网关的 S3 对象锁定

    文件网关支持访问启用了 Amazon S3 对象锁定的 S3 存储桶。通过使用 Amazon S3 对象锁定,您可以使用“一次写入,多次读取”(WORM) 模式存储对象。在使用 Amazon S3 对象锁定时,您可以防止删除或覆盖 S3 存储桶中的对象。Amazon S3 对象锁定与对象版本控制一起使用以保护您的数据。

    如果启用 Amazon S3 对象锁定,您仍然可以修改对象。例如,可以写入以覆盖对象,删除对象,也可以通过文件网关上的文件共享重命名对象。以这种方式修改对象时,文件网关将放置新版本的对象,而不会影响以前的版本(即,锁定的对象)。例如,如果您使用文件网关 NFS 或 SMB 接口删除文件并锁定了相应的 S3 对象,则网关放置 S3 删除标记以作为下一个对象版本并保留原始对象版本。同样,如果文件网关修改锁定的对象的内容或元数据,将上传包含更改的新对象版本,但原来的锁定对象版本保持不变。有关 Amazon S3 对象锁定的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南 中的 Amazon S3 对象锁定简介

    了解文件共享状态

    每个文件共享均有关联的状态,让您一目了然地了解文件共享的运行状态。状态大多数时候会显示文件共享运行正常,无需您采取任何行动。在某些情况下,状态指示有问题,可能需要您执行相关操作,也可能不需要。

    可以在 AWS Storage Gateway 控制台上查看文件共享状态。对于网关中的每个文件共享,文件共享状态显示在 Status 列中。正常工作的文件共享的状态显示为 AVAILABLE。

    在下表中,您可以找到各个文件共享状态的描述,以及基于状态,您是否需要采取行动和应在何时采取行动。在使用文件共享的所有或大部分时间,文件共享都应具有 AVAILABLE 状态。

    状态 含义
    AVAILABLE

    文件共享已正确配置且可供使用。AVAILABLE 状态是文件共享的正常运行状态。

    CREATING

    正在创建该文件共享,因此尚不能使用它。CREATING (正在创建) 状态是过渡型状态。无需采取行动。如果文件共享停滞在此状态,这可能是因为网关 VM 丢失了与 AWS 的连接。

    UPDATING

    文件共享配置正在更新。如果文件共享停滞在此状态,这可能是因为网关 VM 丢失了与 AWS 的连接。

    DELETING

    正在删除文件共享。将不删除文件共享,直到所有数据上传到 AWS。DELETING 状态是过渡型状态,无需执行任何操作。

    FORCE_DELETING

    正在强制删除文件共享。文件共享将被立即删除并停止上传到 AWS。FORCE_DELETING 状态是过渡性质的,无需执行任何操作。

    UNAVAILABLE

    文件共享处于不佳状态。某些问题会导致文件共享转为不佳状态。例如,角色策略错误或者文件共享映射到不存在的 Amazon S3 存储桶都会导致此问题。在解决导致状态不佳的问题后,文件将返回 AVAILABLE 状态。

    文件共享最佳实践

    在此部分中,您可以找到有关创建文件共享的最佳实践的信息。

    防止多个文件共享写入到 Amazon S3 存储桶

    在创建文件共享时,我们建议您配置您的 Amazon S3 存储桶,以便只有一个文件共享可以向其中写入内容。如果您将 S3 存储桶配置为由多个文件共享写入,则可能出现不可预测的结果。为了防止这种情况发生,您可以创建一个 S3 存储桶策略,拒绝除用于文件共享的角色以外的所有角色在存储桶中放置或删除对象,然后将该策略附加到 S3 存储桶。

    以下示例策略拒绝除创建存储桶的角色以外的所有角色写入到 S3 存储桶。将拒绝除 s3:DeleteObject 以外的所有角色的 s3:PutObject"TestUser" 操作。该策略适用于 "arn:aws:s3:::TestBucket/*" 存储桶中的所有对象。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"DenyMultiWrite", "Effect":"Deny", "Principal":"*", "Action":[ "s3:DeleteObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::TestBucket/*", "Condition":{ "StringNotLike":{ "aws:userid":"TestUser:*" } } } ] }

    允许特定 NFS 客户端装载您的文件共享

    我们建议您更改文件共享允许的 NFS 客户端设置。如果您未这样做,则您网络上的任何客户端均可装载您的文件共享。有关如何编辑 NFS 客户端设置的信息,请参阅 为 NFS 文件共享编辑访问设置