Amazon Snowball 的任务管理 API 参考 - Amazon Snowball
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Snowball 的任务管理 API 参考

适用于 Amazon Snowball 的任务管理 API 是基于 HTTP (RFC 2616) 的网络协议。有关此 RFC 的更多信息,请参阅 IETF 网站上的 HTTP (RFC 2616)。对于任务管理 API 的每次调用,您需要向针对Amazon Web Services 区域要在其中管理任务。API 会对 HTTP 请求/响应正文使用 JSON (RFC 4627) 文档。

注意

在美国区域进行的用于列出工作或描述地址的 API 调用将分别返回该账户在美国境内的所有任务或地址。

适用于 Snowball 的任务管理 API 是一种 RPC 模型,包含一套固定操作,并且各操作的语法在未进行任何交互的情况下就能被客户端识别。在下文中,您可以使用一个抽象 RPC 表示找出各个 API 操作的说明以及不会在线显示的操作名称。对于每个操作,该主题指定了指向 HTTP 请求要素的映射。

某个给定请求所映射到的特定任务管理操作由请求方法 (GET、PUT、POST 或 DELETE) 以及与其请求-URI 匹配的模式共同确定。如果操作为 PUT 或 POST,则 Snowball 将从请求正文内的请求 URI 路径段、查询参数和 JSON 对象中提取调用自变量。

虽然操作名称(如CreateJob不会在线显示,则这些操作名称在Amazon Identity and Access Management(IAM) 策略。操作名称还可用于为命令行工具中的命令和Amazon开发工具包 API。例如,Amazon Command Line Interface (Amazon CLI) 命令 create-job 会映射到 CreateJob 操作。操作名称还会显示在 Snowball API 调用的 CloudTrail 日志中。

有关安装和设置Amazon CLI,包括指定要创建的区域Amazon CLI调用,请参阅Amazon Command Line Interface用户指南.

注意

借助任务管理 API,您能以编程方式访问Amazon Snow 系列管理控制台,即为 Snowball 创建和管理任务。要真正地使用 Snowball 设备在本地传输数据,您需要使用 Snowball 客户端或适用于 Snowball 的 Amazon S3 适配器。有关更多信息,请参阅使用 Snowball 传输数据

API 终端节点

API 终端节点是指在 API 调用的 HTTP URI 中用作主机的域名服务 (DNS) 名称。这些 API 终端节点是特定于区域的,并采用以下形式。

snowball.aws-region.amazonaws.com

例如,美国西部(俄勒冈)区域的 Snowball API 终端节点如下。

snowball.us-west-2.amazonaws.com

列表Amazon Web Services 区域(您可以在其中创建和管理任务),请参阅Amazon Import/Export中的Amazon一般参考.

特定于区域的 API 终端节点定义在执行 API 调用时可访问的 Snowball 资源的范围。例如,当您调用ListJobs操作时,您将获得在您账户中创建的位于美国西部(俄勒冈)区域的任务列表。

API 版本

用于调用的 API 的版本由请求 URI 的第一个路径分段确定,且采用 ISO 8601 日期的格式。本文档中所描述的版本为 API 版本 2016-06-30。

API 权限策略参考

使用适用于 Snowball 的任务管理 API 创建任务时,需要使用以下策略。

用于创建任务的角色信任策略

使用任务管理 API 创建任务时,需要使用以下信任策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "importexport.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "AWSIE" } } } ] }
注意

要了解有关信任策略的更多信息,请参阅修改角色(在 IAM 用户指南中)。

用于创建导入任务的角色策略

创建导入任务时,需要使用以下角色策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketPolicy", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "snowball:*" ], "Resource": [ "*" ] } ] }

用于创建导出任务的角色策略

创建导出任务时,需要使用以下角色策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "snowball:*" ], "Resource": [ "*" ] } ] }

用于创建任务的 Amazon S3 存储桶策略委托人

如果与结合使用的 Amazon S3 存储桶与 Snowball 结合使用的 Amazon S3 存储桶所采用的存储桶策略要求列出所担任角色的角色会话名称,则您需要在标识出AWSImportExport-Validation. 以下示例 Amazon S3 存储桶策略展示了如何执行此操作。

{ "Version": "2012-10-17", "Statement": { "Sid": "Allow Amazon Snowball To Create Jobs", "Effect": "Deny", "NotPrincipal": { "AWS": [ "arn:aws:iam::111122223333:role/rolename", "arn:aws:sts::111122223333:assumed-role/rolename/AWSImportExport-Validation", "arn:aws:iam::111122223333:root" ] }, "Action": "S3:*", "Resource": ["arn:aws:s3:::examplebucket/*"] } }

在此示例策略中,我们拒绝了除 NotPrincipal 元素中指定的委托人之外的所有委托人的访问。有关如何使用NotPrincipal,请参阅NotPrincipal中的IAM 用户指南.