Job 管理API參考 - AWS Snowball

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

Job 管理API參考

的工作管理 AWS Snowball 是以 HTTP (RFC2616) API 為基礎的網路通訊協定。有關這方面的更多信息RFC,請參閱IETF網站上的 HTTP(RFC2616)。對於每次呼叫作業管理API,您都會向您要管理工作的區域特定工作管理API端點發出 AWS 區域 要HTTP求。HTTP請求/回應主體的API使用 JSON (RFC4627) 文件。

注意

API針對列出工作或描述地址而在美國地區撥打的電話,會傳回該帳戶在美國境內的所有工作或地址。

Snowball 的工API作管理是一種RPC模式。在這個模型中,有一組固定的操作和每個操作的語法是已知的客戶端沒有任何以前的交互。接下來,您可以使用抽象RPC標記法找到每個API操作的描述,其中包含未出現在電線上的操作名稱。對於每項作業,主題都會指定要HTTP求元素的對應。

指定請求對應的特定工單管理作業是由請求方法 (GET、PUTPOST、或DELETE) 及其「請求」URI 符合的各種模式組合來決定。如果作業是PUT或POST,則 Snowball 會從要求URI路徑區段、查詢參數以及要求主體中的JSON物件擷取呼叫引數。

雖然作業名稱 (例如CreateJob) 不會出現在線路上,但這些作業名稱在 AWS Identity and Access Management (IAM) 原則中是有意義的。作業名稱也可用來命名命令列工具中的命令,以及 AWS SDKAPIs. 例如, AWS Command Line Interface (AWS CLI) 指令會對create-job映至CreateJob作業。作業名稱也會出現在 Snowball API 呼叫的 CloudTrail 記錄中。

如需有關安裝和設定的資訊 AWS CLI,包括指定要對其撥 AWS CLI 打電話的區域,請參閱《AWS Command Line Interface 使用指南》

注意

工作管理為 Snowball 管理主控台中API提供的相同功能的程式設計介面,也就是為AWS Snowball 建立和管理工作。若要使用 Snowball 設備在本機傳輸資料,請使用 Snowball Edge 用戶端或適用於 Snowball 的 S3 轉SDK接器。如需詳細資訊,請參閱 Snowball 使用者指南中的使用 S AWS nowball 傳輸資料

如果您使用 Snowball 邊緣,請使用 Snowball Edge 用戶端解除鎖定設備。如需詳細資訊,請參閱 Snowball 開發人員指南中的使用 S AWS nowball 用戶端

API端點

API端點是用作呼叫中的主機的網域名稱服務 (DNS) 名API稱。HTTP URI這些API端點是特定於區域的,並採用以下形式。

snowball.aws-region.amazonaws.com

例如,美國西部 (奧勒岡) 區域的 Snowball API 端點如下。

snowball.us-west-2.amazonaws.com

如需 Snowball 支援 AWS 區域 的清單 (您可以在其中建立和管理工作),請參閱AWS Import/Export中的AWS 一般參考

區域特定API端點定義了您撥打電話時可存取的 Snowball 資源範圍。API例如,當您使用上述端點呼叫ListJobs作業時,您會取得在您帳戶中建立的美國西部 (奧勒岡) 區域中的工作清單。

API版本

API被用於呼叫的版本是由請求的第一個路徑段標識URI,其形式是 ISO 8601 日期。該文檔描述了API版本。

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" } } } ] }

建立匯入工作的角色政策

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

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

在某些情況下,您搭配 Snowball 使用的 Amazon S3 儲存貯體具有儲存貯體政策,需要列出假定角色的角色工作階段名稱。在這些情況下,您需要在可識別的原則中指定主體AWSImportExport-Validation。以下 Amazon S3 儲存貯體政策範例示範如何執行此操作。

{ "Version": "2012-10-17", "Statement": { "Sid": "Allow AWS 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,請參閱《使IAM用指南》NotPrincipal中的。

注意

對於中的工作 AWS GovCloud (US),Snowball 會使用作AWSIEJob為假定角色的角色工作階段名稱。

為 Snowball 和 Snowball 邊緣建立IAM角色

必須建立具有 Amazon S3 儲存貯體的讀取和寫入權限的IAM角色政策。該IAM角色還必須與 Snowball 有信任關係。建立信任關係意味著 AWS 可以在 Snowball 和 Amazon S3 儲存貯體中寫入資料,具體取決於您要匯入還是匯出資料。

當您在中建立工作時 AWS Snow 系列管理主控台,建立必要的IAM角色會發生在「權限」區段的步驟 4 中。此為自動程序。您允許 Snowball 擔任的IAM角色只會在 Snowball 與您傳輸的資料送達時,才會用來將資料寫入值區。 AWS該程序概述如下。

若要建立匯入工作的IAM角色
  1. 登入 AWS Management Console 並開啟 AWS Snowball 主控台,位於https://console.aws.amazon.com/importexport/

  2. 選擇建立作業

  3. 在第一個步驟中,填寫將任務匯入 Amazon S3 的詳細資訊,然後選擇 [下一步]。

  4. 在第二個步驟的「權限」下,選擇 「建立/選取IAM角色」。

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

  5. 檢閱此頁面上的詳細資訊,然後選擇 Allow (允許)

    您返回 AWS Snow 系列管理主控台,其中所選IAM角色ARN包含您剛建立之IAM角色的 Amazon 資源名稱 (ARN)。

  6. 選擇「下一步」以完成IAM角色的建立。

上述程序會針對您計劃將資料匯入的 Amazon S3 儲存貯體建立具有寫入許可的IAM角色。根據匯入工作還是匯出工作,建立的IAM角色具有下列其中一個結構。

IAM匯入 Job 的角色

{ "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—managed 金鑰 (SSE-KMS) 來加密與匯入任務相關聯的 Amazon S3 儲存貯體,您還需要將下列陳述式新增至您的IAM角色。

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

IAM匯出 Job 的角色

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

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

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