

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

# 對 Snowball Edge 的資料傳輸問題進行故障診斷
<a name="transfer-troubleshooting"></a>

如果在將資料傳輸至 Snowball Edge 或從中傳輸資料時遇到效能問題，請參閱[往返 Snowball Edge 的最佳資料傳輸效能建議](BestPractices.md#performance)，以取得改善傳輸效能的建議和指導。下列說明可協助您在將資料傳輸至或傳出 Snowball Edge 時，為可能發生的問題進行故障診斷：
+ 您無法將資料傳輸到 Snowball Edge 的根目錄。如果您將資料傳輸至裝置時發生問題，請確認您將資料傳輸至子目錄。頂層子目錄具有您在任務中包含的 Amazon S3 儲存貯體名稱。請將資料放在那些子目錄中。
+ 如果您使用的是 Linux，而且無法將具有 UTF-8 字元的檔案上傳至 AWS Snowball 邊緣 裝置，可能是因為您的 Linux 伺服器無法辨識 UTF-8 字元編碼。您可以修正此問題，方法為將 `locales` 套件安裝在您的 Linux 伺服器上，並將它設定為使用其中一個 UTF-8 地區設定，如 `en_US.UTF-8`。您可以匯出環境變數 `LC_ALL` (例如 `export LC_ALL=en_US.UTF-8`) 來設定 `locales` 套件：
+ 當您搭配 使用 Amazon S3 界面時 AWS CLI，您可以使用名稱中包含空格的檔案或資料夾，例如 `my photo.jpg`或 `My Documents`。不過，確定您可以適當地處理空格。如需詳細資訊，請參閱*AWS Command Line Interface 《 使用者指南*》中的[指定 的參數值 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html)。

## 使用 Snowball Edge 對匯入任務問題進行故障診斷
<a name="import-troubleshooting"></a>

有時檔案無法匯入 Amazon S3。如果發生以下問題，請嘗試指定的動作來解決您的問題。如果檔案無法匯入，則您可能需要嘗試重新匯入它。再次匯入它可能需要 Snowball Edge 的新任務。

**由於物件名稱中的無效字元，檔案無法匯入 Amazon S3**  
如果檔案或資料夾名稱的字元不受 Amazon S3 支援，就會發生此問題。Amazon S3 具有有關物件名稱中哪些字元的規則。如需詳細資訊，請參閱《Amazon S3 使用者指南》中的[建立物件金鑰名稱](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html)。

**採取動作**  
如果發生此問題，您會在任務完成報告中看到無法匯入之檔案和資料夾的清單。

在某些情況下，清單會大得嚇人，或清單中的檔案太大，以致無法透過網際網路傳輸。在這些情況下，您應該建立新的 Snowball 匯入任務、變更檔案和資料夾名稱以符合 Amazon S3 規則，然後再次傳輸檔案。

如果檔案很小，但沒有大量的檔案，您可以透過 AWS CLI 或 將檔案複製到 Amazon S3 AWS 管理主控台。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》中的[如何將檔案和資料夾上傳至 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)。 **

## 使用 Snowball Edge 對匯出任務問題進行故障診斷
<a name="export-troubleshooting"></a>

有時無法將檔案匯出到您的工作站。如果發生以下問題，請嘗試指定的動作來解決您的問題。如果檔案無法匯出，則您可能需要嘗試重新匯出它。再次匯出它可能需要 Snowball Edge 的新任務。

**無法將檔案匯出到 Microsoft Windows Server**  
如果以 Windows 不支援的格式命名檔案或相關資料夾，則無法將該檔案匯出到 Microsoft Windows Server。例如，如果您的檔案或資料夾名稱內含冒號 (`:`)，則匯出會失敗，因為 Windows 不允許該字元出現在檔案或資料夾名稱中。

**採取動作**

1. 製作造成錯誤之名稱的清單。您可以在日誌中找到無法匯出之檔案和資料夾的名稱。如需詳細資訊，請參閱[從 Snowball Edge 檢視和下載日誌](using-client-commands.md#logs)。

1. 變更 Amazon S3 中導致問題移除或取代不支援字元的物件名稱。

1. 如果名稱清單大得嚇人，或如果清單中的檔案太大，以致無法透過網際網路傳輸，請建立專門針對那些物件的新匯出任務。

   如果檔案很小，但沒有大量檔案，請透過 AWS CLI 或 從 Amazon S3 複製重新命名的物件 AWS 管理主控台。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》中的[如何從 S3 儲存貯體下載物件？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html)。* *

## 對 Snowball Edge 的 NFS 介面問題進行故障診斷
<a name="nfs-interface-troubleshooting"></a>

Snowball Edge 可能表示 NFS 介面的狀態為 `DEACTIVATED`。如果 Snowball Edge 在未先停止 NFS 介面的情況下關閉電源，則可能會發生這種情況。

**採取動作**  
若要修正此問題，請使用下列步驟停止並重新啟動 NFS 服務。

1. 使用 `describe-service`命令來判斷服務的狀態：

   ```
   snowballEdge describe-service --service-id nfs
   ```

   命令會傳回下列項目。

   ```
   {
     "ServiceId" : "nfs",
     "Status" : {
     "State" : "DEACTIVATED"
     }
   }
   ```

1. 使用 `stop-service`命令來停止 NFS 服務。

   ```
   snowballEdge stop-service --service-id nfs
   ```

1. 使用 `start-service`命令來啟動 NFS 服務。如需詳細資訊，請參閱[管理 NFS 介面](https://docs.aws.amazon.com/snowball/latest/developer-guide/shared-using-nfs.html)。

   ```
   snowballEdge start-service  --virtual-network-interface-arns vni-arn --service-id nfs  --service-configuration  AllowedHosts=0.0.0.0/0
   ```

1. 使用 `describe-service`命令來確保服務正在執行。

   ```
   snowballEdge describe-service --service-id nfs
   ```

   如果`State`名稱的值為 `ACTIVE`，則 NFS 介面服務為作用中。

   ```
   {
    "ServiceId" : "nfs",
    "Status" : {
    "State" : "ACTIVE"
    },
    "Endpoints" : [ {
    "Protocol" : "nfs",
    "Port" : 2049,
    "Host" : "192.0.2.0"
    } ],
    "ServiceConfiguration" : {
    "AllowedHosts" : [ "10.24.34.0/23", "198.51.100.0/24" ]
    }
   }
   ```

## 對使用 S3 介面傳輸資料時發生存取遭拒錯誤進行故障診斷
<a name="access-denied-s3"></a>

使用 S3 介面在 Snowball Edge 裝置之間傳輸資料時，您可能會遇到存取遭拒錯誤。此錯誤可能是 IAM 使用者或儲存貯體政策的結果。

**採取動作**

1. 檢查您正在使用的 S3 儲存貯體政策是否有下列語法問題。

   1. 如果政策僅允許在傳遞 KMS 標頭時上傳資料，請確保政策指定委託人 ARN，而不是使用者 ID。以下範例顯示正確的語法。

      ```
          {
          "Sid": "Statement3",
          "Effect": "Deny",
          "Principal": "*",
          "Action": "s3:PutObject",
          "Resource": "{{arn:aws:s3:::amzn-s3-demo-bucket/*}}",
          "Condition": {
              "StringNotLike": {
                  "aws:PrincipalArn": "{{arn:aws:iam::111122223333:role/JohnDoe}}"
              },
              "StringNotEquals": {
                  "s3:x-amz-server-side-encryption": [
                      "aws:kms",
                      "AES256"
                  ]
              }
          }
      },
      {
          "Sid": "Statement4",
          "Effect": "Deny",
          "Principal": "*",
          "Action": "s3:PutObject",
          "Resource": "{{arn:aws:s3:::amzn-s3-demo-bucket/*}}",
          "Condition": {
              "StringNotLike": {
                  "aws:PrincipalArn": "{{arn:aws:iam::111122223333:role/JohnDoe}}"
              },
              "Null": {
                  "s3:x-amz-server-side-encryption": "true"
              }
          }
      }
      ```

   1. 如果儲存貯體政策僅允許在傳遞正確的標頭時上傳到儲存貯體，則 Snowball Edge 裝置的上傳預設不會傳遞任何標頭。修改政策以允許用於上傳資料的 IAM 使用者的例外狀況。以下是此項目的正確語法範例。

      ```
      {
          "Sid": "Statement3",
          "Effect": "Deny",
          "Principal": "",
          "Action": "s3:PutObject",
          "Resource": "{{arn:aws:s3:::amzn-s3-demo-bucket/}}",
          "Condition": {
              "StringNotEquals": {
                  "s3:x-amz-server-side-encryption": "AES256"
              },
              "StringNotLike": {
                  "aws:PrincipalArn": "{{arn:aws:iam::111122223333:role/JohnDoe}}"
              }
          }
      },
      {
          "Sid": "Statement4",
          "Effect": "Deny",
          "Principal": "",
          "Action": "s3:PutObject",
          "Resource": "{{arn:aws:s3:::amzn-s3-demo-bucket/}}",
          "Condition": {
              "Null": {
                  "s3:x-amz-server-side-encryption": "true"
              },
              "StringNotLike": {
                  "aws:PrincipalArn": "{{arn:aws:iam::111122223333:role/JohnDoe}}"
              }
          }
      }
      ```

1. 檢查您用於 Principal 元素中正確語法的 KMS 金鑰政策。請參閱以下範例顯示正確的語法。

   ```
   {
       "Sid": "Statement2",
       "Effect": "Allow",
       "Principal": {
           "AWS": [
               "arn:aws:iam::111122223333:role/service-role/JohnDoe"
           ]
       },
       "Action": [
           "kms:Encrypt",
           "kms:Decrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey*",
           "kms:DescribeKey"
       ],
       "Resource": "*"
   }
   ```

## 使用 S3 界面傳輸資料時，針對 403 禁止的錯誤進行故障診斷
<a name="403-error-s3"></a>

使用 S3 介面在 Snowball Edge 裝置之間傳輸資料時，您可能會遇到 403 禁止錯誤。此錯誤可能是 IAM 使用者或儲存貯體政策的結果。檢查您正在使用的 S3 儲存貯體政策是否有下列語法問題。

**採取動作**

1. 政策不提供 PrincipalArn。使用下列政策做為範例，以使用 aws：PrincipalArn 標頭並提供不含 的 IAM 角色 ARN`:*`。

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

****  

   ```
           {
       "Version": "2012-10-17",
       "Statement": [{
               "Sid": "DenyIncorrectEncryptionHeader",
               "Effect": "Deny",
               "Principal": "*",
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::BucketName/*",
               "Condition": {
                   "StringNotLike": {
                       "aws:PrincipalArn": "arn:aws:iam::1234567890:role/RoleName"
                   },
                   "StringNotEquals": {
                       "s3:x-amz-server-side-encryption": [
                           "aws:kms",
                           "AES256"
                       ]
                   }
               }
           },
           {
               "Sid": "DenyUnEncryptedObjectUploads",
               "Effect": "Deny",
               "Principal": "*",
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
               "Condition": {
                   "StringNotLike": {
                       "aws:PrincipalArn": "arn:aws:iam::1234567890:role/RoleName"
                   },
                   "Null": {
                       "s3:x-amz-server-side-encryption": "true"
                   }
               }
           },
           {
               "Sid": "DenyInsecureTransport",
               "Effect": "Deny",
               "Principal": "*",
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:::BucketName/*",
                   "arn:aws:s3:::BucketName"
               ],
               "Condition": {
                   "Bool": {
                       "aws:SecureTransport": "false"
                   }
               }
           },
           {
               "Sid": "AllowSnowballPutObjectAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::1234567890:role/RoleName"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::BucketName/*"
           }
       ]
   }s
   ```

------

1. 如果 KMS 政策使用不正確的 IAM 角色格式，可能會發生 403 錯誤。修改政策以允許用於上傳資料的 IAM 使用者的例外狀況。以下是此項目的正確語法範例。

   ```
   {{
               "Sid": "Allow use of the key",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::1234567890:role/service-role/RoleName"
                   ]
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:GenerateDataKey*"
               ],
               "Resource": "*"
           }
   ```

1. IAM 角色可能需要略過加密標頭條件。根據預設，存放在 Snowball Edge 裝置上的所有物件都會使用 SSE-S3 加密進行加密。使用以下政策為 IAM 角色提供例外狀況，以在沒有加密標頭的情況下上傳物件。

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

****  

   ```
   {
       "Version": "2012-10-17",
       "Id": "PutObjPolicy",
       "Statement": [{
               "Sid": "DenyIncorrectEncryptionHeader",
               "Effect": "Deny",
               "Principal": "*",
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::BucketName/",
               "Condition": {
                   "StringNotEquals": {
                       "s3:x-amz-server-side-encryption": "AES256"
                   },
                   "StringNotLike": {
                       "aws:PrincipalArn": "arn:aws:iam::1234567890:role/RoleName"
                   }
               }
           },
           {
               "Sid": "DenyUnEncryptedObjectUploads",
               "Effect": "Deny",
               "Principal": "*",
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::BucketName/*",
               "Condition": {
                   "Null": {
                       "s3:x-amz-server-side-encryption": "true"
                   },
                   "StringNotLike": {
                       "aws:PrincipalArn": "arn:aws:iam::1234567890:role/RoleName"
                   }
               }
           }
       ]
   }
   ```

------

1. 錯誤訊息指出使用 NotPrincipal 搭配 IP 條件存取 PutObject 遭拒。新增 Snowball Edge IAM 角色的例外狀況，如下所示。

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

****  

   ```
         {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Deny",
               "NotPrincipal": {
                   "AWS": [
                       "IAMRole"
                   ]
               },
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::BucketName/*",
                   "arn:aws:s3:::BucketName"
               ],
               "Condition": {
                   "NotIpAddress": {
                       "aws:SourceIp": [
                           "IPAddress"
                       ]
                   },
                   "StringNotEquals": {
                       "aws:PrincipalArn": "arn:aws:iam::1234567890:role/RoleName"
                   }
               }
           }
       ]
   }
   ```

------