Skip to content

Commit 010e03c

Browse files
authored
Merge pull request #204478 from yashluna/patch-36
Update secure-file-transfer-protocol-support.md
2 parents 4edb860 + 58a19e3 commit 010e03c

File tree

1 file changed

+23
-27
lines changed

1 file changed

+23
-27
lines changed

articles/storage/blobs/secure-file-transfer-protocol-support.md

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ Blob storage now supports the SSH File Transfer Protocol (SFTP). This support pr
2525
2626
Azure allows secure data transfer to Blob Storage accounts using Azure Blob service REST API, Azure SDKs, and tools such as AzCopy. However, legacy workloads often use traditional file transfer protocols such as SFTP. You could update custom applications to use the REST API and Azure SDKs, but only by making significant code changes.
2727

28-
Prior to the release of this feature, if you wanted to use SFTP to transfer data to Azure Blob Storage you would have to either purchase a third party product or orchestrate your own solution. You would have to create a virtual machine (VM) in Azure to host an SFTP server, and then figure out a way to move data into the storage account.
28+
Prior to the release of this feature, if you wanted to use SFTP to transfer data to Azure Blob Storage you would have to either purchase a third party product or orchestrate your own solution. For custom solutions, you would have to create virtual machines (VMs) in Azure to host an SFTP server, and then update, patch, manage, scale, and maintain a complex architecture.
2929

30-
Now, with SFTP support for Azure Blob Storage, you can enable an SFTP endpoint for Blob Storage accounts with a single setting. Then you can set up local user identities for authentication to transfer data securely without the need to do any more work.
30+
Now, with SFTP support for Azure Blob Storage, you can enable an SFTP endpoint for Blob Storage accounts with a single click. Then you can set up local user identities for authentication to connect to your storage account with SFTP via port 22.
3131

3232
This article describes SFTP support for Azure Blob Storage. To learn how to enable SFTP for your storage account, see [Connect to Azure Blob Storage by using the SSH File Transfer Protocol (SFTP) (preview)](secure-file-transfer-protocol-support-how-to.md).
3333

3434
## SFTP and the hierarchical namespace
3535

36-
SFTP support requires blobs to be organized into on a hierarchical namespace. The ability to use a hierarchical namespace was introduced by Azure Data Lake Storage Gen2. It organizes objects (files) into a hierarchy of directories and subdirectories in the same way that the file system on your computer is organized. The hierarchical namespace scales linearly and doesn't degrade data capacity or performance.
36+
SFTP support requires hierarchical namespace to be enabled. Hierarchical namespace organizes objects (files) into a hierarchy of directories and subdirectories in the same way that the file system on your computer is organized. The hierarchical namespace scales linearly and doesn't degrade data capacity or performance.
3737

38-
Different protocols extend from the hierarchical namespace. The SFTP is one of these available protocols.
38+
Different protocols are supported by the hierarchical namespace. SFTP is one of these available protocols.
3939

4040
> [!div class="mx-imgBorder"]
4141
> ![hierarchical namespace](./media/secure-file-transfer-protocol-support/hierarchical-namespace-and-sftp-support.png)
@@ -51,17 +51,17 @@ To set up access permissions, you'll create a local user, and choose authenticat
5151
> [!CAUTION]
5252
> Local users do not interoperate with other Azure Storage permission models such as RBAC (role based access control), ABAC (attribute based access control), and ACLs (access control lists).
5353
>
54-
> For example, user A has an Azure AD identity with only read permission for file _foo.txt_ and a local user identity with delete permission for container _con1_ in which _foo.txt_ is stored. In this case, User A could login in via SFTP using their local user identity and delete _foo.txt_.
54+
> For example, Jeff has read only permission (can be controlled via RBAC, ABAC, or ACLs) via their Azure AD identity for file _foo.txt_ stored in container _con1_. If Jeff is accessing the storage account via NFS (when not mounted as root/superuser), Blob REST, or Data Lake Storage Gen2 REST, these permissions will be enforced. However, if Jeff also has a local user identity with delete permission for data in container _con1_, they can delete _foo.txt_ via SFTP using the local user identity.
5555
56-
For SFTP enabled storage accounts, you can use the full breadth of Azure Blob Storage security settings, to authenticate and authorize users accessing Blob Storage via Azure portal, Azure CLI, Azure PowerShell commands, AzCopy, as well as Azure SDKS, and Azure REST APIs. To learn more, see [Access control model in Azure Data Lake Storage Gen2](data-lake-storage-access-control-model.md)
56+
For SFTP enabled storage accounts, you can use the full breadth of Azure Blob Storage security settings, to authenticate and authorize users accessing Blob Storage via Azure portal, Azure CLI, Azure PowerShell commands, AzCopy, as well as Azure SDKs, and Azure REST APIs. To learn more, see [Access control model in Azure Data Lake Storage Gen2](data-lake-storage-access-control-model.md).
5757

5858
## Authentication methods
5959

6060
You can authenticate local users connecting via SFTP by using a password or a Secure Shell (SSH) public-private keypair. You can configure both forms of authentication and let connecting local users choose which one to use. However, multifactor authentication, whereby both a valid password and a valid public-private key pair are required for successful authentication isn't supported.
6161

6262
#### Passwords
6363

64-
Passwords are generated for you. If you choose password authentication, then your password will be provided after you finish configuring a local user. Make sure to copy that password and save it in a location where you can find it later. You won't be able to retrieve that password from Azure again. If you lose the password, you'll have to generate a new one. For security reasons, you can't set the password yourself.
64+
You cannot set custom passwords, rather Azure generates one for you. If you choose password authentication, then your password will be provided after you finish configuring a local user. Make sure to copy that password and save it in a location where you can find it later. You won't be able to retrieve that password from Azure again. If you lose the password, you'll have to generate a new one. For security reasons, you can't set the password yourself.
6565

6666
#### SSH key pairs
6767

@@ -75,14 +75,13 @@ In the current release, you can specify only container-level permissions. Direct
7575

7676
| Permission | Symbol | Description |
7777
|---|---|---|
78-
| Read | r | <li>Read file contents</li> |
79-
| Write | w | <li>Upload file</li><li>Create directory</li><li>Upload directories</li> |
80-
| List | l | <li>List contents within container</li><li>List contents within directories</li> |
81-
| Delete | d | <li>Delete files/directories</li> |
82-
| Create | c | <li>Upload file if file doesn't exist</li><li>Create directory if it doesn't exist</li> |
78+
| Read | r | <li>Read file content</li> |
79+
| Write | w | <li>Upload file</li><li>Create directory</li><li>Upload directory</li> |
80+
| List | l | <li>List content within container</li><li>List content within directory</li> |
81+
| Delete | d | <li>Delete file/directory</li> |
82+
| Create | c | <li>Upload file if file doesn't exist</li><li>Create directory if directory doesn't exist</li> |
8383

84-
> [!IMPORTANT]
85-
> When performing write operations on blobs in sub directories, Read permission is required to open the directory and access blob properties.
84+
When performing write operations on blobs in sub directories, Read permission is required to open the directory and access blob properties.
8685

8786
## Home directory
8887

@@ -108,25 +107,27 @@ put logfile.txt
108107

109108
You can use many different SFTP clients to securely connect and then transfer files. Connecting clients must use algorithms specified in table below.
110109

111-
| Host key | Key exchange | Ciphers/encryption | Integrity/MAC | Public key |
110+
| Host key <sup>1</sup> | Key exchange | Ciphers/encryption | Integrity/MAC | Public key |
112111
|----------|--------------|--------------------|---------------|------------|
113-
| rsa-sha2-256 <sup>1</sup> | ecdh-sha2-nistp384 | [email protected] | hmac-sha2-256 | ssh-rsa <sup>1</sup> |
114-
| rsa-sha2-512 <sup>1</sup> | ecdh-sha2-nistp256 | [email protected] | hmac-sha2-512 | ecdsa-sha2-nistp256 |
112+
| rsa-sha2-256 <sup>2</sup> | ecdh-sha2-nistp384 | [email protected] | hmac-sha2-256 | ssh-rsa <sup>2</sup> |
113+
| rsa-sha2-512 <sup>2</sup> | ecdh-sha2-nistp256 | [email protected] | hmac-sha2-512 | ecdsa-sha2-nistp256 |
115114
| ecdsa-sha2-nistp256 | diffie-hellman-group14-sha256 | aes128-cbc| [email protected] | ecdsa-sha2-nistp384 |
116115
| ecdsa-sha2-nistp384 | diffie-hellman-group16-sha512 | aes192-cbc | [email protected] |
117116
|| diffie-hellman-group-exchange-sha256 | aes256-cbc ||
118117
||| aes128-ctr ||
119118
||| aes192-ctr ||
120119
||| aes256-ctr ||
121120

122-
<sup>1</sup> Requires minimum key length of 2048 bits.
121+
<sup>1</sup> Host keys are published [here](secure-file-transfer-protocol-host-keys.md).
122+
<sup>2</sup> RSA keys must be minimum 2048 bits in length.
123123

124124
SFTP support for Azure Blob Storage currently limits its cryptographic algorithm support based on security considerations. We strongly recommend that customers utilize [Microsoft Security Development Lifecycle (SDL) approved algorithms](/security/sdl/cryptographic-recommendations) to securely access their data.
125125

126-
> [!IMPORTANT]
127-
> At this time, we do not plan on supporting the following: `ssh-dss`, `diffie-hellman-group14-sha1`, `diffie-hellman-group1-sha1`, `hmac-sha1`, `hmac-sha1-96`.
126+
At this time, in accordance with the Microsoft Security SDL, we do not plan on supporting the following: `ssh-dss`, `diffie-hellman-group14-sha1`, `diffie-hellman-group1-sha1`, `hmac-sha1`, `hmac-sha1-96`. Algorithm support is subject to change in the future.
128127

129-
Algorithm support is subject to change in the future.
128+
## Connecting with SFTP
129+
130+
To get started, enable SFTP support, create a local user, and assign permissions for that local user. Then, you can use any SFTP client to securely connect and then transfer files. For step-by-step guidance, see [Connect to Azure Blob Storage by using the SSH File Transfer Protocol (SFTP)](secure-file-transfer-protocol-support-how-to.md).
130131

131132
### Known supported clients
132133

@@ -153,12 +154,7 @@ The following clients have compatible algorithm support with SFTP for Azure Blob
153154
- Workday
154155
- XFB.Gateway
155156

156-
> [!NOTE]
157-
> The supported client list above is not exhaustive and may change over time.
158-
159-
## Connecting with SFTP
160-
161-
To get started, enable SFTP support, create a local user, and assign permissions for that local user. Then, you can use any SFTP client to securely connect and then transfer files. For step-by-step guidance, see [Connect to Azure Blob Storage by using the SSH File Transfer Protocol (SFTP)](secure-file-transfer-protocol-support-how-to.md).
157+
The supported client list above is not exhaustive and may change over time.
162158

163159
## Limitations and known issues
164160

0 commit comments

Comments
 (0)