

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 工作管理 API 參考
<a name="api-reference"></a>

的任務管理 API AWS Snowball Edge 是以 HTTP (RFC 2616) 為基礎的網路通訊協定。如需此 RFC 的詳細資訊，請參閱 IETF [網站上的 HTTP (RFC 2616)](https://www.ietf.org/rfc/rfc2616.txt)。對於對任務管理 API 的每次呼叫，您都會對要管理任務的 的區域特定任務管理 API AWS 區域 端點提出 HTTP 請求。此 API 會將 JSON (RFC 4627) 文件用於 HTTP 請求/回應內文。

**注意**  
在美國區域內進行的 API 呼叫，用於列出任務或描述地址，會傳回該帳戶在美國的所有任務或地址。

Snowball Edge 的任務管理 API 是 RPC 模型。在此模型中，有一組固定的操作，用戶端知道每個操作的語法，而沒有任何先前的互動。以下將說明使用抽象 RPC 表示法、且操作名稱未顯示在線路上的每個 API 操作。每個操作的主題都會指定映射至 HTTP 請求元素。

指定請求所對應的特定工作管理操作，取決於請求方法 (GET、PUT、POST 或 DELETE) 的組合，及其 Request-URI 所符合的各種模式。如果操作是 PUT 或 POST，Snowball Edge 會從請求內文中的 Request-URI 路徑區段、查詢參數和 JSON 物件擷取呼叫引數。

雖然 等操作名稱`CreateJob`不會出現在線路上，但這些操作名稱在 AWS Identity and Access Management (IAM) 政策中是有意義的。操作名稱也用於命名命令列工具和 AWS SDK APIs元素中的命令。例如， AWS Command Line Interface (AWS CLI) 命令會`create-job`映射到 `CreateJob`操作。操作名稱也會出現在 Snowball Edge API 呼叫的 CloudTrail 日誌中。

如需有關安裝和設定 的資訊 AWS CLI，包括指定您要 AWS CLI 呼叫的區域，請參閱 [AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

**注意**  
任務管理 API 為 [AWS Snowball 管理主控台](https://console.aws.amazon.com/importexport/home?region=us-west-2)中提供的相同功能提供程式設計界面，也就是為 Snowball Edge 建立和管理任務。若要使用 Snowball 設備在本機傳輸資料，請使用 Snowball Edge 用戶端或 S3 SDK Adapter for Snowball Edge。如需詳細資訊，請參閱《[Snowball 使用者指南》中的使用 Snowball 傳輸資料](https://docs.aws.amazon.com/snowball/latest/ug/snowball-data-transfer.html)。 *AWS *  
如果您使用 Snowball Edge，請使用 Snowball Edge 用戶端來解除鎖定設備。如需詳細資訊，請參閱《[Snowball 開發人員指南》中的使用 Snowball 用戶端](https://docs.aws.amazon.com/snowball/latest/developer-guide/using-client.html)。 *AWS *

## API 端點
<a name="api-reference-endpoint"></a>

API 端點是在 API 呼叫之 HTTP URI 中做為主機的網域名稱服務 (DNS) 名稱。這些 API 端點會隨區域而不同，並採用下列形式。

```
snowball.aws-region.amazonaws.com
```

例如，美國西部 （奧勒岡） 區域的 Snowball Edge API 端點如下。

```
snowball.us-west-2.amazonaws.com
```

如需 Snowball Edge 支援的清單 AWS 區域 （您可以在其中建立和管理任務），請參閱 [AWS Import/Export](https://docs.aws.amazon.com/general/latest/gr/rande.html#ie-region) 中的 *AWS 一般參考*。

區域特定的 API 端點會定義您進行 API 呼叫時可存取的 Snowball Edge 資源範圍。例如，當您使用上述端點呼叫 `ListJobs`操作時，您會在美國西部 （奧勒岡） 區域中取得已在帳戶中建立的任務清單。

## API 版本
<a name="api-reference-version"></a>

要用於呼叫的 API 版本會以請求 URI 的第一個路徑區段來識別，且其形式為 ISO 8601 日期。文件說明的是 API 2016-06-30 版。

## API 許可政策參考
<a name="api-reference-policies"></a>

使用適用於 Snowball Edge 的任務管理 API 建立任務時，需要下列政策。

**建立工作的角色信任政策**

使用任務管理 API 建立任務需要下列信任政策。

------
#### [ JSON ]

****  

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

------

**注意**  
若要進一步了解信任政策，請參閱《IAM 使用者指南》中的[修改角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)。

**建立匯入工作的角色政策**

建立匯入工作時需要下列角色政策。

------
#### [ JSON ]

****  

```
{
    "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": [
                "*"
            ]
        }
    ]
}
```

------

**建立匯出工作的角色政策**

建立匯出工作時需要下列角色政策。

------
#### [ JSON ]

****  

```
{
  "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 儲存貯體政策主體**

在某些情況下，您與 Snowball Edge 搭配使用的 Amazon S3 儲存貯體具有儲存貯體政策，需要列出擔任角色的角色工作階段名稱。在這些情況下，您需要在這些可識別 的政策中指定委託人`AWSImportExport-Validation`。下列 Amazon S3 儲存貯體政策範例示範如何執行此操作。

**Example**    
****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": {
		"Sid": "AllowAWSSnowballToCreateJobs",
		"Effect": "Allow",
		"Principal": {
			"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`，請參閱《*IAM 使用者指南*》中的 [NotPrincipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#NotPrincipal)。

**注意**  
對於 中的任務 AWS GovCloud (US)，Snowball Edge 會使用 `AWSIEJob`作為擔任角色的角色工作階段名稱。

## 為 Snowball Edge 和 Snowball Edge 建立 IAM 角色
<a name="create-iam-role"></a>

必須建立具有 Amazon S3 儲存貯體讀取和寫入許可的 IAM 角色政策。IAM 角色也必須與 Snowball Edge 具有信任關係。擁有信任關係表示 AWS 可以在 Snowball 和 Amazon S3 儲存貯體中寫入資料，具體取決於您是匯入還是匯出資料。

當您在 中建立任務時 AWS Snow 系列管理主控台，建立必要的 IAM 角色會在**許可**區段的步驟 4 中發生。此為自動程序。您允許 Snowball Edge 擔任的 IAM 角色，只有在傳輸資料的 Snowball 送達時，才會用來將資料寫入您的儲存貯體 AWS。該程序概述如下。

**為您的匯入任務建立 IAM 角色**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/importexport/](https://console.aws.amazon.com/importexport/) 開啟 AWS Snowball Edge 主控台。

1. 選擇**建立任務**。

1. 在第一個步驟中，填寫匯入任務到 Amazon S3 的詳細資訊，然後選擇**下一步**。

1. 在第二個步驟中，於 **Permission (許可)**下選擇 **Create/Select IAM Role (建立/選取 IAM 角色)**。

   IAM 管理主控台隨即開啟，顯示用來 AWS 將物件複製到您指定 Amazon S3 儲存貯體的 IAM 角色。

1. 檢閱此頁面上的詳細資訊，然後選擇 **Allow (允許)**。

   您會返回 AWS Snow 系列管理主控台，其中**選取的 IAM 角色 ARN** 包含您剛建立之 IAM 角色的 Amazon Resource Name (ARN)。

1. 選擇**下一步**以完成建立 IAM 角色。

上述程序會建立 IAM 角色，該角色具有您計劃匯入資料的 Amazon S3 儲存貯體的寫入許可。建立的 IAM 角色具有下列其中一個結構 (取決於它是針對匯入任務還是匯出任務)。

**匯入任務的 IAM 角色**

------
#### [ JSON ]

****  

```
          {
  "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:::*"
    }
  ]
}
```

------

如果您使用伺服器端加密搭配 AWS KMS受管金鑰 (SSE-KMS) 來加密與匯入任務相關聯的 Amazon S3 儲存貯體，您也需要將下列陳述式新增至 IAM 角色。

```
{
     "Effect": "Allow",
     "Action": [
       "kms:GenerateDataKey"
     ],
     "Resource": "arn:aws:s3:::SSEKMSEncryptedBucketName"
}
```

**匯出任務的 IAM 角色 **

------
#### [ JSON ]

****  

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

------

如果您使用伺服器端加密搭配 AWS KMS受管金鑰來加密與匯出任務相關聯的 Amazon S3 儲存貯體，您也需要將下列陳述式新增至 IAM 角色。

```
{
     "Effect": "Allow",
     "Action": [
            “kms:Decrypt”
      ],
      "Resource": "arn:aws:s3:::SSEKMSEncryptedBucketName"
}
```