使用 Amazon S3 轉接器將檔案傳輸到 Snow Family 裝置或從 Snow Family 裝置遷移資料 - AWS Snowball Edge 開發人員指南

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

使用 Amazon S3 轉接器將檔案傳輸到 Snow Family 裝置或從 Snow Family 裝置遷移資料

以下是 Amazon S3 轉接器的概觀,您可以使用它,以程式設計方式使用 Amazon S3 RESTAPI動作在 AWS Snowball Edge 裝置上已存在的 S3 儲存貯體之間傳輸資料。 Amazon S3 此 Amazon S3 RESTAPI支援僅限於動作子集。您可以使用此動作子集搭配其中一個 AWS SDKs,以程式設計方式傳輸資料。您也可以使用 Amazon S3 支援的 AWS Command Line Interface (AWS CLI) 命令子集,以程式設計方式傳輸資料。

如果您的解決方案使用 1.11.0 AWS SDK for Java 或更新版本,您必須使用下列 S3ClientOptions

  • disableChunkedEncoding() – 表示介面不支援區塊編碼。

  • setPathStyleAccess(true) – 設定介面以對所有請求使用路徑樣式存取。

如需詳細資訊,請參閱 Amazon AppStream SDK for Java 中的 S3ClientOptions.Builder 類別

重要

建議您一次只使用一種方法來讀取資料,並將資料寫入 AWS Snowball Edge 裝置上的本機儲存貯體。同時使用相同儲存貯體上的檔案介面和 Amazon S3 轉接器可能會導致讀取/寫入衝突。

AWS Snowball 邊緣配額 詳細說明限制。

若要讓 AWS 服務在 Snowball Edge 上正常運作,您必須允許服務的連接埠。如需詳細資訊,請參閱 Snow Family 裝置上的 AWS 服務的連接埠需求

下載並安裝 1.16.14 AWS CLI 版,以搭配 Amazon S3 轉接器使用

目前,Snowball Edge 裝置僅支援 1.16.14 版及更早版本的 AWS CLI ,可與 Amazon S3 轉接器搭配使用。較新的 版本與 Amazon S3 轉接器 AWS CLI 不相容,因為它們不支援 S3 轉接器的所有功能。

注意

如果您在 Snow Family 裝置上使用 Amazon S3 相容儲存體,您可以使用最新版本的 AWS CLI。若要下載並使用最新版本,請參閱 AWS Command Line Interface 使用者指南

在 Linux 作業系統 AWS CLI 上安裝

執行此鏈結命令:

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.14.zip" -o "awscli-bundle.zip";unzip awscli-bundle.zip;sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws;/usr/local/bin/aws --version;

在 Windows 作業系統 AWS CLI 上安裝

下載並執行作業系統的安裝程式檔案:

在 Snowball Edge 裝置上使用 AWS CLI 和 API操作

使用 AWS CLI 或 API操作在 Snowball Edge 上發出 IAM、Amazon S3 和 Amazon EC2命令時,您必須將區域指定為「」snow。 您可以使用 AWS configure或在命令本身內執行此操作,如下列範例所示。

aws configure --profile abc AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: 1234567 Default region name [None]: snow Default output format [None]: json

aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080 --region snow

的 Amazon S3 API 介面授權 AWS Snowball

當您使用 Amazon S3 轉接器時,依預設,每次互動都會使用 AWS Signature 第 4 版演算法簽署。此授權僅用於驗證從來源流向介面的資料。所有加密和解密都會在裝置上執行。未加密的資料一律不會存放在裝置上。

使用介面時,請記住下列事項:

  • 若要取得本機 Amazon S3 憑證以簽署您對 AWS Snowball Edge 裝置的請求,請執行 snowballEdge list-access-keyssnowballEdge get-secret-access-keys Snowball Edge 用戶端命令。如需詳細資訊,請參閱設定和使用 Snowball Edge 用戶端。這些本機 Amazon S3 憑證包含一對金鑰:存取金鑰和秘密金鑰。這些金鑰僅對與任務相關聯的裝置有效。它們無法在 中使用, AWS 雲端 因為它們沒有 AWS Identity and Access Management (IAM) 對等項。

  • 您使用的 AWS 憑證不會變更加密金鑰。使用 Signature 第 4 版演算法簽署,僅用於驗證從其來源傳輸到介面的資料。因此,此簽署永遠不會考慮用來加密 Snowball 上資料的加密金鑰。

在 Snow Family 裝置上取得和使用本機 Amazon S3 憑證

每次與 Snowball Edge 的互動都會使用 AWS Signature 第 4 版演算法簽署。如需演算法的詳細資訊,請參閱中的簽章第 4 版簽署程序AWS 一般參考

您可以執行 snowballEdge list-access-keys和 Snowball Edge 用戶端資訊,取得本機 Amazon S3 憑證,以簽署對 snowballEdge get-secret-access-key Snowball Edge 用戶端 Edge 裝置的請求,請參閱 取得 Snow Family 裝置的憑證。這些本機 Amazon S3 憑證包含一組金鑰:存取金鑰 ID 和秘密金鑰。這些登入資料僅適用於與您的任務相關聯的裝置。它們無法在 中使用, AWS 雲端 因為它們沒有IAM對應項目。

您可以將這些憑證新增至伺服器上的 AWS 憑證檔案。預設登入資料設定檔通常位於 ~/.aws/credentials,但位置可能會根據每個平台而有所不同。此檔案由許多 AWS SDKs和 共用 AWS CLI。您可以使用設定檔名稱儲存本機登入資料,如以下範例所示。

[snowballEdge] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

AWS CLI 將 設定為在 Snow Family 裝置上使用 S3 轉接器作為端點

當您使用 AWS CLI 向 AWS Snowball Edge 裝置發出命令時,您可以指定端點是 Amazon S3 轉接器。您可以選擇使用HTTPS端點或不安全的HTTP端點,如下所示。

HTTPS 安全端點

aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443 --ca-bundle path/to/certificate

HTTP 不安全的端點

aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080

如果您使用 的HTTPS端點8443,您的資料會從伺服器安全地傳輸至 Snowball Edge。此加密是使用 Snowball Edge 取得新 IP 地址時產生的憑證來確保的。有了憑證之後,就可以將其儲存到本機 ca-bundle.pem 檔案。然後,您可以設定 AWS CLI 設定檔以包含憑證的路徑,如下所述。

將您的憑證與介面端點建立關聯
  1. 連接 Snowball Edge 以開啟電源和網路,然後開啟它。

  2. 在裝置完成啟動之後,請記下其在本機網路上的 IP 地址。

  3. 從您網路上的終端機,確定您可以 ping Snowball Edge。

  4. 在您的終端機中執行 snowballEdge get-certificate 命令。如需此命令的詳細資訊,請參閱在 Snow Family 裝置上管理公有金鑰憑證

  5. snowballEdge get-certificate 命令的輸出儲存至檔案,例如 ca-bundle.pem

  6. 從您的終端機中執行下列命令。

    aws configure set profile.snowballEdge.ca_bundle /path/to/ca-bundle.pem

完成程序後,您可以使用這些本機憑證、憑證和指定的端點執行CLI命令,如下列範例所示。

aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443

Snow Family Amazon S3裝置上的 Amazon S3 轉接器不支援的 Amazon S3 功能

您可以使用 Amazon S3 轉接器,透過程式設計方式,透過 Amazon S3 API動作在 Snowball Edge 之間來回傳輸資料。不過,使用 Amazon S3 轉接器時,並非所有 Amazon S3 傳輸功能和API動作都支援與 Snowball Edge 裝置搭配使用。例如,不支援將下列功能和動作與 Snowball Edge 搭配使用:

  • TransferManager – 此公用程式會使用 SDK for Java 將檔案從本機環境傳輸至 Amazon S3。請考慮改為將支援API的動作或 AWS CLI 命令與 介面搭配使用。

  • GET 儲存貯體 (列出物件) 第 2 版 – 此GET動作實作會傳回儲存貯體中部分或全部 (最多 1,000 個) 物件。考慮使用GET儲存貯體 (列出物件) 第 1 版動作或 ls AWS CLI 命令。

  • ListBuckets – 不支援 ListBuckets 具有物件端點的 。下列命令不適用於 Snow Family 裝置上的 Amazon S3 相容儲存:

    aws s3 ls --endpoint https://192.0.2.0 --profile profile