

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

# 使用 SMB 檔案伺服器設定 AWS DataSync 傳輸
<a name="create-smb-location"></a>

使用 AWS DataSync，您可以在伺服器訊息區塊 (SMB) 檔案伺服器與下列 AWS 儲存服務之間傳輸資料。支援的儲存服務取決於您的任務模式，如下所示：


| 基本模式 | 增強型模式 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/datasync/latest/userguide/create-smb-location.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/datasync/latest/userguide/create-smb-location.html)  | 

若要設定這種傳輸，請為 SMB 檔案伺服器建立[位置](how-datasync-transfer-works.md#sync-locations)。您可以使用此做為傳輸來源或目的地。請務必使用對應至您所需任務模式的代理程式。

## 提供對 SMB 檔案伺服器的 DataSync 存取權
<a name="configuring-smb"></a>

DataSync 會使用 SMB 通訊協定連線至您的檔案伺服器，並且可以使用 NTLM 或 Kerberos 進行身分驗證。

**Topics**
+ [支援的 SMB 版本](#configuring-smb-version)
+ [使用 NTLM 身分驗證](#configuring-smb-ntlm-authentication)
+ [使用 Kerberos 身分驗證](#configuring-smb-kerberos-authentication)
+ [所需的許可](#configuring-smb-permissions)
+ [DFS 命名空間](#configuring-smb-location-dfs)

### 支援的 SMB 版本
<a name="configuring-smb-version"></a>

根據預設，DataSync 會根據與 SMB 檔案伺服器的交涉，自動選擇 SMB 通訊協定的版本。

您也可以將 DataSync 設定為使用特定 SMB 版本，但我們建議只在 DataSync 自動與 SMB 檔案伺服器交涉發生問題時，才這麼做。DataSync 支援 SMB 1.0 版和更新版本。基於安全考量，我們建議您使用 SMB 3.0.2 版或更新版本。舊版，例如 SMB 1.0，包含已知的安全漏洞，攻擊者可以利用這些漏洞來入侵您的資料。

如需 DataSync 主控台和 API 中的選項清單，請參閱下表：


| 主控台選項 | API 選項 | Description | 
| --- | --- | --- | 
| 自動 |  `AUTOMATIC`  |  DataSync 和 SMB 檔案伺服器會交涉它們在 2.1 和 3.1.1 之間相互支援的 SMB 最高版本。 這是預設和建議的選項。如果您改為選擇檔案伺服器不支援的特定版本，可能會收到 `Operation Not Supported` 錯誤。  | 
|  SMB 3.0.2  |  `SMB3`  |  將通訊協定交涉限制為僅限 SMB 3.0.2 版。  | 
| SMB 2.1 |  `SMB2`  | 將通訊協定交涉限制為僅限 SMB 2.1 版。 | 
| SMB 2.0 | `SMB2_0` | 將通訊協定交涉限制為僅限 SMB 2.0 版。 | 
| SMB 1.0 | `SMB1` | 將通訊協定交涉限制為僅限 SMB 1.0 版。 | 

### 使用 NTLM 身分驗證
<a name="configuring-smb-ntlm-authentication"></a>

若要使用 NTLM 身分驗證，您需要提供使用者名稱和密碼，以允許 DataSync 存取您要從中傳輸的 SMB 檔案伺服器。使用者可以是檔案伺服器的本機使用者或 Microsoft Active Directory 中的網域使用者。

### 使用 Kerberos 身分驗證
<a name="configuring-smb-kerberos-authentication"></a>

若要使用 Kerberos 身分驗證，您需要提供 Kerberos 主體、Kerberos 金鑰表 (keytab) 檔案和 Kerberos 組態檔案，允許 DataSync 存取您要從中傳輸的 SMB 檔案伺服器。

**Topics**
+ [先決條件](#configuring-smb-kerberos-prerequisites)
+ [Kerberos 的 DataSync 組態選項](#configuring-smb-kerberos-options)

#### 先決條件
<a name="configuring-smb-kerberos-prerequisites"></a>

您需要建立幾個 Kerberos 成品並設定您的網路，以便 DataSync 可以存取您的 SMB 檔案伺服器。
+ 使用 [ktpass](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass) 或 [kutil](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin_commands/ktutil.html) 公用程式建立 Kerberos keytab 檔案。

  下列範例使用 建立 keytab 檔案`ktpass`。您指定的 Kerberos 領域 (`MYDOMAIN.ORG`) 必須為大寫。

  ```
  ktpass /out C:\YOUR_KEYTAB.keytab /princ HOST/kerberosuser@MYDOMAIN.ORG /mapuser kerberosuser /pass * /crypto AES256-SHA1 /ptype KRB5_NT_PRINCIPAL
  ```
+ 準備簡化版本的 Kerberos 組態檔案 (`krb5.conf`)。包含有關領域、網域管理伺服器的位置，以及主機名稱映射到 Kerberos 領域的資訊。

  確認`krb5.conf`內容已針對領域和網域領域名稱使用正確的混合大小寫進行格式化。例如：

  ```
  [libdefaults] 
    dns_lookup_realm = true 
    dns_lookup_kdc = true 
    forwardable = true 
    default_realm = MYDOMAIN.ORG
  
  [realms] 
    MYDOMAIN.ORG = { 
      kdc = mydomain.org 
      admin_server = mydomain.org 
    }
  
  [domain_realm] 
    .mydomain.org = MYDOMAIN.ORG 
    mydomain.org = MYDOMAIN.ORG
  ```
+ 在您的網路組態中，請確定您的 Kerberos Key Distribution Center (KDC) 伺服器連接埠已開啟。KDC 連接埠通常是 TCP 連接埠 88。

#### Kerberos 的 DataSync 組態選項
<a name="configuring-smb-kerberos-options"></a>

建立使用 Kerberos 的 SMB 位置時，您可以設定下列選項。


| 主控台選項 | API 選項 | Description | 
| --- | --- | --- | 
|  **SMB 伺服器**  |  `ServerHostName`  |  DataSync 代理程式將掛載的 SMB 檔案伺服器的網域名稱。對於 Kerberos，您無法指定檔案伺服器的 IP 地址。  | 
|  **Kerberos 主體**  |  `KerberosPrincipal`  |  Kerberos 領域中的身分，有權存取 SMB 檔案伺服器中的檔案、資料夾和檔案中繼資料。 Kerberos 主體可能看起來像 `HOST/kerberosuser@MYDOMAIN.ORG`。 主體名稱區分大小寫。  | 
|  **Keytab 檔案**  |  `KerberosKeytab`   |  Kerberos 金鑰資料表 (keytab) 檔案，其中包含 Kerberos 主體和加密金鑰之間的映射。  | 
|  **Kerberos 組態檔案**  |  `KerberosKrbConf`  |  定義 Kerberos 領域組態`krb5.conf`的檔案。  | 
|  **DNS IP 地址** （選用）  |  `DnsIpAddresses`  |  SMB 檔案伺服器所屬之 DNS 伺服器的 IPv4 地址。 如果您的環境中有多個網域，請設定此項目可確保 DataSync 連線至正確的 SMB 檔案伺服器。  | 

### 所需的許可
<a name="configuring-smb-permissions"></a>

您提供 DataSync 的身分必須具有掛載和存取 SMB 檔案伺服器檔案、資料夾和檔案中繼資料的許可。

如果您在 Active Directory 中提供身分，則必須是具有下列其中一個或兩個使用者權限的 Active Directory 群組成員 （視[您希望 DataSync 複製的中繼資料](configure-metadata.md)而定）：


| 使用者權限 | Description | 
| --- | --- | 
|  **還原檔案和目錄 **(`SE_RESTORE_NAME`)  |  允許 DataSync 複製物件擁有權、許可、檔案中繼資料和 NTFS 選擇性存取清單 DACLs)。 此使用者權利通常授予**網域管理員**和**備份運算子**群組的成員 （兩者都是預設 Active Directory 群組）。  | 
|  **管理稽核和安全性日誌 **(`SE_SECURITY_NAME`)  |  允許 DataSync 複製 NTFS 系統存取控制清單 SACLs)。 此使用者權利通常會授予**網域管理員**群組的成員。  | 

如果您想要複製 Windows ACLs，並在 SMB 檔案伺服器與使用 SMB 的另一個儲存系統 （例如 Amazon FSx for Windows File Server 或 FSx for ONTAP) 之間傳輸，您提供 DataSync 的身分必須屬於相同的 Active Directory 網域，或在其網域之間具有 Active Directory 信任關係。

### DFS 命名空間
<a name="configuring-smb-location-dfs"></a>

DataSync 不支援 Microsoft 分散式檔案系統 (DFS) 命名空間。我們建議您在建立 DataSync 位置時，改為指定基礎檔案伺服器或共用。

## 建立 SMB 傳輸位置
<a name="create-smb-location-how-to"></a>

開始之前，您需要要從中傳輸資料的 SMB 檔案伺服器。

### 使用 DataSync 主控台
<a name="create-smb-location-how-to-console"></a>

1. 在 https：//[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) 開啟 AWS DataSync 主控台。

1. 在左側導覽窗格中，展開**資料傳輸**，然後選擇**位置**和**建立位置**。

1. 在 **Location type (位置類型)** 中，選擇 **Server Message Block (SMB) (伺服器訊息區塊 (SMB))**。

   您稍後會將此位置設定為來源或目的地。

1. 針對**代理**程式，選擇可連線至 SMB 檔案伺服器的 DataSync 代理程式。

   您可以選擇多個代理程式。如需詳細資訊，請參閱[使用多個 DataSync 代理程式](do-i-need-datasync-agent.md#multiple-agents)。

1. 針對 **SMB 伺服器**，輸入 DataSync 代理程式將掛載之 SMB 檔案伺服器的網域名稱或 IP 地址。

   使用此設定請記住下列事項：
   + 您無法指定 IP 第 6 版 (IPv6) 地址。
   + 如果您使用 Kerberos 身分驗證，則必須指定網域名稱。

1. 針對**共用名稱**，輸入由 DataSync 讀取或寫入資料之 SMB 檔案伺服器匯出的共用名稱。

   您可以在共用路徑中包含子目錄 （例如，`/path/to/subdirectory`)。請確定您網路中的其他 SMB 用戶端也可以掛載此路徑。

   若要複製子目錄中的所有資料，DataSync 必須能夠掛載 SMB 共用並存取其所有資料。如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

1. （選用） 展開**其他設定**，並為 DataSync 選擇存取檔案伺服器時要使用的 **SMB 版本**。

   根據預設，DataSync 會根據與 SMB 檔案伺服器的交涉自動選擇版本。如需相關資訊，請參閱[支援的 SMB 版本](#configuring-smb-version)。

1. 針對**身分驗證類型**，選擇 **NTLM** 或 **Kerberos**。

1. 根據您的身分驗證類型執行下列其中一項操作：

------
#### [ NTLM ]
   + 針對**使用者**，輸入可掛載 SMB 檔案伺服器的使用者名稱，並具有存取傳輸所涉及檔案和資料夾的許可。

     如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。
   + 針對**密碼**，輸入可掛載 SMB 檔案伺服器且具有許可存取傳輸所涉及之檔案和資料夾的使用者密碼。
   + （選用） 對於**網域**，輸入 SMB 檔案伺服器所屬的 Windows 網域名稱。

     如果您的環境中有多個網域，設定此設定可確保 DataSync 連線至正確的 SMB 檔案伺服器。

------
#### [ Kerberos ]
   + 對於 **Kerberos 主體**，請在 Kerberos 領域中指定主體，該主體具有存取 SMB 檔案伺服器中檔案、資料夾和檔案中繼資料的許可。

     Kerberos 主體可能看起來像 `HOST/kerberosuser@MYDOMAIN.ORG`。

     主體名稱區分大小寫。如果您為此設定指定的委託人與您用來建立 keytab 檔案的委託人不完全相符，您的 DataSync 任務執行將會失敗。
   + 對於 **Keytab 檔案**，上傳包含 Kerberos 主體與加密金鑰之間映射的 keytab 檔案。
   + 對於 **Kerberos 組態檔案**，上傳定義 Kerberos 領域組態`krb5.conf`的檔案。
   + （選用） 對於 **DNS IP 地址**，請為您的 SMB 檔案伺服器所屬的 DNS 伺服器指定最多兩個 IPv4 地址。

     如果您的環境中有多個網域，設定此參數可確保 DataSync 連線至正確的 SMB 檔案伺服器。

------

1. （選用） 選擇**新增標籤**以標記 SMB 位置。

   *標籤*是索引鍵/值對，可協助您管理、篩選和搜尋位置。建議您為位置建立至少一個名稱標籤。

1. 選擇**建立位置**。

### 使用 AWS CLI
<a name="create-location-smb-cli"></a>

下列指示說明如何使用 NTLM 或 Kerberos 身分驗證建立 SMB 位置。

------
#### [ NTLM ]

1. 複製下列`create-location-smb`命令。

   ```
   aws datasync create-location-smb \
       --agent-arns datasync-agent-arns \
       --server-hostname smb-server-address \
       --subdirectory smb-export-path \
       --authentication-type "NTLM" \
       --user user-who-can-mount-share \
       --password user-password \
       --domain windows-domain-of-smb-server
   ```

1. 針對 `--agent-arns`，指定可連線至 SMB 檔案伺服器的 DataSync 代理程式。

   您可以選擇多個代理程式。如需詳細資訊，請參閱[使用多個 DataSync 代理程式](do-i-need-datasync-agent.md#multiple-agents)。

1. 針對 `--server-hostname`，指定 DataSync 代理程式將掛載之 SMB 檔案伺服器的網域名稱或 IPv4 地址。

1. 針對 `--subdirectory`，指定由 SMB 檔案伺服器匯出的共用名稱，DataSync 會在其中讀取或寫入資料。

   您可以在共用路徑中包含子目錄 （例如，`/path/to/subdirectory`)。請確定您網路中的其他 SMB 用戶端也可以掛載此路徑。

   若要複製子目錄中的所有資料，DataSync 必須能夠掛載 SMB 共用並存取其所有資料。如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

1. 針對 `--user`，指定可掛載 SMB 檔案伺服器的使用者名稱，並具有存取傳輸中涉及之檔案和資料夾的許可。

   如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

1. 針對 `--password`，指定可掛載 SMB 檔案伺服器且具有許可存取傳輸所涉及之檔案和資料夾的使用者密碼。

1. （選用） 針對 `--domain`，指定 SMB 檔案伺服器所屬的 Windows 網域名稱。

   如果您的環境中有多個網域，設定此設定可確保 DataSync 連線至正確的 SMB 檔案伺服器。

1. （選用） 如果您想要 DataSync 使用特定的 SMB 版本，請新增 `--version`選項。如需詳細資訊，請參閱[支援的 SMB 版本](#configuring-smb-version)。

1. 執行 `create-location-smb` 命令。

   如果命令成功，您會收到回應，顯示您建立位置的 ARN。例如：

   ```
   {
       "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example"
   }
   ```

------
#### [ Kerberos ]

1. 複製下列`create-location-smb`命令。

   ```
   aws datasync create-location-smb \
       --agent-arns datasync-agent-arns \
       --server-hostname smb-server-address \
       --subdirectory smb-export-path \
       --authentication-type "KERBEROS" \
       --kerberos-principal "HOST/kerberosuser@EXAMPLE.COM" \
       --kerberos-keytab "fileb://path/to/file.keytab" \
       --kerberos-krb5-conf "file://path/to/krb5.conf" \
       --dns-ip-addresses array-of-ipv4-addresses
   ```

1. 針對 `--agent-arns`，指定可連線至 SMB 檔案伺服器的 DataSync 代理程式。

   您可以選擇多個代理程式。如需詳細資訊，請參閱[使用多個 DataSync 代理程式](do-i-need-datasync-agent.md#multiple-agents)。

1. 針對 `--server-hostname`，指定 DataSync 代理程式將掛載的 SMB 檔案伺服器的網域名稱。

1. 針對 `--subdirectory`，指定由 SMB 檔案伺服器匯出的共用名稱，DataSync 會在其中讀取或寫入資料。

   您可以在共用路徑中包含子目錄 （例如，`/path/to/subdirectory`)。請確定您網路中的其他 SMB 用戶端也可以掛載此路徑。

   若要複製子目錄中的所有資料，DataSync 必須能夠掛載 SMB 共用並存取其所有資料。如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

1. 對於 Kerberos 選項，請執行下列動作：
   + `--kerberos-principal`：在 Kerberos 領域中指定主體，該主體具有存取 SMB 檔案伺服器中檔案、資料夾和檔案中繼資料的許可。

     Kerberos 主體可能看起來像 `HOST/kerberosuser@MYDOMAIN.ORG`。

     主體名稱區分大小寫。如果您為此選項指定的委託人與您用來建立 keytab 檔案的委託人不完全相符，您的 DataSync 任務執行將會失敗。
   + `--kerberos-keytab`：指定包含 Kerberos 主體與加密金鑰之間映射的 keytab 檔案。
   + `--kerberos-krb5-conf`：指定定義 Kerberos 領域組態`krb5.conf`的檔案。
   + （選用） `--dns-ip-addresses`：為您的 SMB 檔案伺服器所屬的 DNS 伺服器指定最多兩個 IPv4 地址。

     如果您的環境中有多個網域，設定此參數可確保 DataSync 連線至正確的 SMB 檔案伺服器。

1. （選用） 如果您想要 DataSync 使用特定的 SMB 版本，請新增 `--version`選項。如需詳細資訊，請參閱[支援的 SMB 版本](#configuring-smb-version)。

1. 執行 `create-location-smb` 命令。

   如果命令成功，您會收到回應，顯示您建立位置的 ARN。例如：

   ```
   {
       "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example"
   }
   ```

------