AWS Storage Gateway
User Guide (API Version 2013-06-30)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

为 AWS Storage Gateway 使用基于身份的策略(IAM 策略)

本主题提供了基于身份的策略的示例,在这些策略中,账户管理员可以向 IAM 身份 (即:用户、组和角色) 挂载权限策略。

重要

我们建议您首先阅读以下介绍性主题,这些主题讲解了管理 AWS Storage Gateway 资源访问的基本概念和选项。有关更多信息,请参阅 AWS Storage Gateway 访问权限管理概述

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

下面介绍权限策略示例。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowsSpecifiedActionsOnAllGateways", "Effect": "Allow", "Action": [ "storagegateway:ActivateGateway", "storagegateway:ListGateways" ], "Resource": "arn:aws:storagegateway:us-west-2:account-id:gateway/*" }, { "Sid": "AllowsSpecifiedEC2ActionsOnAllGateways", "Effect": "Allow", "Action": [ "ec2:DescribeSnapshots", "ec2:DeleteSnapshot" ], "Resource": "*" } ] }

该策略包含两个语句 (请注意两个语句中的 ActionResource 元素):

  • 第一个语句使用网关的 Amazon 资源名称 (ARN) 授予对网关资源执行两个 Storage Gateway 操作 (storagegateway:ActivateGatewaystoragegateway:ListGateways) 的权限。ARN 将指定一个通配符 (*),因为您在创建网关之前不知道网关 ID。

    注意

    ARN 用于唯一地标识 AWS 资源。有关更多信息,请参阅 AWS General Reference 中的 Amazon 资源名称 (ARN) 和 AWS 服务命名空间

    网关 ARN 结尾处的通配符 (*) 表示此语句可匹配任何网关 ID。在这种情况下,该语句允许在指定区域 us-west-2 中对任何网关执行 storagegateway:ActivateGatewaystoragegateway:ListGateways 操作,并且指定的 ID 标识了网关资源的所有者的账户。有关如何在策略中使用通配符 (*) 的信息,请参阅示例 2:允许对某一网关进行只读访问

    要将执行某个特定操作的权限限制为仅针对某个特定网关,请在策略中为该操作创建一个单独的语句并在该语句中指定网关 ID。

     

  • 第二个语句授予执行 ec2:DescribeSnapshotsec2:DeleteSnapshot 操作的权限。这些 Amazon Elastic Compute Cloud (Amazon EC2) 操作需要权限,因为从 AWS Storage Gateway 中生成的快照将存储在 Amazon Elastic Block Store (Amazon EBS) 中并作为 Amazon EC2 资源进行管理,因此它们需要相应的 EC2 操作。有关更多信息,请参阅 Amazon EC2 API Reference 中的操作。由于这些 Amazon EC2 操作不支持资源级权限,该策略将指定通配符 (*) 作为 Resource 值,而不是指定一个网关 ARN。

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

使用 Storage Gateway 控制台所需要的权限

要使用 Storage Gateway 控制台,您需要授予只读权限。如果您计划描述快照,则还需要授予执行其他操作的权限,如以下权限策略中所示:

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowsSpecifiedEC2ActionOnAllGateways", "Effect": "Allow", "Action": [ "ec2:DescribeSnapshots" ], "Resource": "*" } ] }

此额外权限是必要的,因为从 AWS Storage Gateway 生成的 Amazon EBS 快照将作为 Amazon EC2 资源进行管理。

要设置使用 Storage Gateway 控制台所需的最低权限,请参阅示例 2:允许对某一网关进行只读访问

适用于 AWS Storage Gateway 的 AWS 托管策略

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

以下 AWS 托管策略 (您可以将它们挂载到自己账户中的用户) 是特定于 Storage Gateway 的:

  • AWSStorageGatewayReadOnlyAccess - 授予对 AWS Storage Gateway 资源的只读访问权限。

  • AWSStorageGatewayFullAccess - 授予对 AWS Storage Gateway 资源的完全访问权限。

注意

登录 IAM 控制台后搜索特定策略,可以查看这些权限策略。

此外,您还可以创建自定义 IAM 策略,以授予执行 AWS Storage Gateway API 操作的相关权限。您可以将这些自定义策略挂载到需要这些权限的 IAM 用户或组。

客户托管策略示例

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

注意

所有示例都使用 美国西部(俄勒冈) 区域 (us-west-2) 和虚构的账户 ID。

示例 1:允许对所有网关执行所有 AWS Storage Gateway 操作

以下策略允许用户执行所有 AWS Storage Gateway 操作。该策略还允许用户对从 AWS Storage Gateway 生成的 Amazon EBS 快照执行 Amazon EC2 操作 (DescribeSnapshotsDeleteSnapshot)。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowsAllAWSStorageGatewayActions", "Action": [ "storagegateway:*" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "AllowsSpecifiedEC2Actions", "Action": [ "ec2:DescribeSnapshots", "ec2:DeleteSnapshot" ], "Effect": "Allow", "Resource": "*" } ] }

示例 2:允许对某一网关进行只读访问

以下策略允许对全部资源的 List*Describe* 操作。请注意这些操作是只读操作。因此,该策略不允许用户更改任何资源的状态,即该策略不允许用户执行 DeleteGatewayActivateGatewayShutdownGateway 等操作。

该策略还允许 DescribeSnapshots Amazon EC2 操作。有关更多信息,请参阅 Amazon EC2 API Reference 中的 DescribeSnapshots

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReadOnlyAccessToAllGateways", "Action": [ "storagegateway:List*", "storagegateway:Describe*" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "AllowsUserToDescribeSnapshotsOnAllGateways", "Action": [ "ec2:DescribeSnapshots" ], "Effect": "Allow", "Resource": "*" } ] }

在上一策略中,除使用通配符 (*) 外,您也可以将该策略涵盖的资源范围限定到某个特定网关,如下例所示。然后,该策略将仅在该特定网关上允许这些操作。

Copy
"Resource": [ "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/", "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/*" ]

在网关内,您可以进一步将资源范围仅限制到网关卷,如下例所示:

Copy
"Resource": "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/volume/*"

示例 3:允许访问特定网关

下面的策略允许对具体网关的所有操作。该用户对您可能已部署的其他网关的访问受限制。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReadOnlyAccessToAllGateways", "Action": [ "storagegateway:List*", "storagegateway:Describe*" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "AllowsUserToDescribeSnapshotsOnAllGateways", "Action": [ "ec2:DescribeSnapshots" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "AllowsAllActionsOnSpecificGateway", "Action": [ "storagegateway:*" ], "Effect": "Allow", "Resource": [ "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/", "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/*" ] } ] }

如果策略关联的用户使用 API 或 AWS 开发工具包访问网关,上一策略就会生效。但是,如果用户打算使用 AWS Storage Gateway 控制台,则您还必须授予允许 ListGateways 操作的权限,如下例所示:

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowsAllActionsOnSpecificGateway", "Action": [ "storagegateway:*" ], "Effect": "Allow", "Resource": [ "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/", "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/*" ] }, { "Sid": "AllowsUserToUseAWSConsole", "Action": [ "storagegateway:ListGateways" ], "Effect": "Allow", "Resource": "*" } ] }

示例 4:允许用户访问特定卷

以下策略允许用户对网关上的某个特定卷执行所有操作。由于用户在默认情况下没有任何权限,该策略会将用户限定为仅能访问某个特定的卷。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantsPermissionsToSpecificVolume", "Action": [ "storagegateway:*" ], "Effect": "Allow", "Resource": "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/volume/volume-id" }, { "Sid": "GrantsPermissionsToUseStorageGatewayConsole", "Action": [ "storagegateway:ListGateways" ], "Effect": "Allow", "Resource": "*" } ] }

如果策略关联的用户使用 API 或 AWS 开发工具包访问卷,上一策略就会生效。但是,如果此用户打算使用 AWS Storage Gateway 控制台,则您还必须授予允许 ListGateways 操作的权限,如下例所示:

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantsPermissionsToSpecificVolume", "Action": [ "storagegateway:*" ], "Effect": "Allow", "Resource": "arn:aws:storagegateway:us-west-2:123456789012:gateway/gateway-id/volume/volume-id" }, { "Sid": "GrantsPermissionsToUseStorageGatewayConsole", "Action": [ "storagegateway:ListGateways" ], "Effect": "Allow", "Resource": "*" } ] }

示例 5:允许对具有特定前缀的网关进行所有操作

以下策略允许用户对名称以 DeptX 开头的网关执行所有 AWS Storage Gateway 操作。该策略还允许 DescribeSnapshots Amazon EC2 操作,如果您计划描述快照,则需要执行此操作。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowsActionsGatewayWithPrefixDeptX", "Action": [ "storagegateway:*" ], "Effect": "Allow", "Resource": "arn:aws:storagegateway:us-west-2:123456789012:gateway/DeptX" }, { "Sid": "GrantsPermissionsToSpecifiedAction", "Action": [ "ec2:DescribeSnapshots" ], "Effect": "Allow", "Resource": "*" } ] }

如果策略关联的用户使用 API 或 AWS 开发工具包访问网关,上一策略就会生效。但如果该用户计划使用 AWS Storage Gateway 管理控制台,则您必须授予 示例 3:允许访问特定网关 中所述的其他权限。