Glacier
开发人员指南 (API 版本 2012-06-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

为 Glacier 使用基于身份的策略(IAM 策略)

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

重要

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

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

下面介绍权限策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glacier:CreateVault", "glacier:DescribeVault", "glacier:ListVaults" ], "Resource": "arn:aws:glacier:us-west-2:123456789012:vaults/*" } ] }

该策略使用标识 us-west-2 AWS 区域中的所有文件库的 Amazon 资源名称 (ARN) 来授予对资源执行 3 项与 Glacier 文件库相关的操作(glacier:CreateVaultglacier:DescribeVaultglacier:ListVaults)的权限。

ARN 结尾处的通配符 (*) 表示此语句可匹配任何文件库名称。该语句允许对指定区域(即 us-west-2)中的任何文件库执行 glacier:DescribeVault 操作。如果您希望只允许对特定文件库执行此操作,可将通配符 (*) 替换为该文件库的名称。

使用 Glacier 控制台所需要的权限

Glacier 控制台为您提供了一个创建和管理 Glacier 文件库的集成环境。至少要向您创建的 IAM 用户授予执行 glacier:ListVaults 操作的权限才能查看 Glacier 控制台,如以下示例所示。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "glacier:ListVaults" ], "Effect": "Allow", "Resource": "*" } ] }

下一节中讨论的 Glacier AWS 托管的策略都授予 glacier:ListVaults 的权限。

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

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

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

  • AmazonGlacierReadOnlyAccess - 通过 AWS 管理控制台 授予对 Glacier 的只读访问权限。

  • AmazonGlacierFullAccess - 通过 AWS 管理控制台 授予对 Glacier 的完全访问权限。

注意

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

此外,您还可以创建自己的自定义 IAM 策略,以授予 Glacier API 操作和资源的相关权限。您可以将这些自定义策略挂载到需要上述权限的 IAM 用户和组或您为 Glacier 文件库创建的自定义执行角色(IAM 角色)。

客户托管策略示例

本节的用户策略示例介绍如何授予各 Glacier 操作的权限。在使用 Glacier REST API、AWS SDK 和 AWS CLI 或 Glacier 管理控制台(如果适用)时,可以使用这些策略。

注意

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

示例 1:允许用户从文件库下载存档

要下载存档,您首先要启动作业以检索存档。在检索作业完成后,您可以下载数据。以下示例策略授予执行 glacier:InitiateJob 操作以启动作业(这将允许用户从文件库中检索存档或文件库清单)的权限和执行 glacier:GetJobOutput 操作以下载检索到的数据的权限。此策略还授予执行 glacier:DescribeJob 操作的权限,以便用户能够获取作业状态。有关更多信息,请参阅 启动作业(POST 作业)

此策略授予对名为 examplevault 的文件库的这些权限。您可以从 Glacier 控制台获取文件库 ARN,也可以通过调用 描述文件库(获取文件库)列出文件库(获取文件库) API 操作以编程方式获取文件库 ARN。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:glacier:us-west-2:123456789012:vaults/examplevault", "Action":["glacier:InitiateJob", "glacier:GetJobOutput", "glacier:DescribeJob"] } ] }

示例 2:允许用户创建文件库和配置通知

以下示例策略授予在 Resource 元素所指定的 us-west-2 区域中创建文件库以及配置通知的权限。有关使用通知的更多信息,请参阅在 Glacier 中配置文件库通知。此策略还授予在区域中列出文件库和获取特定的文件库描述的权限。

重要

在授予使用 glacier:CreateVault 操作创建文件库的权限时,您必须在 Resource 值中指定通配符 (*),因为您在创建文件库之前不知道文件库的名称。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:glacier:us-west-2:123456789012:vaults/*", "Action":["glacier:CreateVault", "glacier:SetVaultNotifications", "glacier:GetVaultNotifications", "glacier:DeleteVaultNotifications", "glacier:DescribeVault", "glacier:ListVaults"] } ] }

示例 3:允许用户将存档上传到特定文件库

以下示例策略授予将存档上传到 us-west-2 区域中的特定文件库的权限。借助这些权限,用户可以使用 上传档案(发布档案) API 操作一次性上传整个存档,或者使用 启动分段上传(发布分段上传) API 操作分段上传。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:glacier:us-west-2:123456789012:vaults/examplevault", "Action":["glacier:UploadArchive", "glacier:InitiateMultipartUpload", "glacier:UploadMultipartPart", "glacier:ListParts", "glacier:ListMultipartUploads", "glacier:CompleteMultipartUpload"] } ] }

示例 4:授予用户对特定文件库的完全权限

以下示例策略授予对名为 examplevault 的文件库执行所有 Glacier 操作的权限。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:glacier:us-west-2:123456789012:vaults/examplevault", "Action":["glacier:*"] } ] }