Il est étrange de penser depuis combien de temps le protocole de transfert de fichiers ( FTP
) existe. Développé pour la première fois en 1971 par Abhay Bhushan, étudiant au MIT, il était initialement utilisé pour transférer des fichiers entre ordinateurs sur l'ARPANET. Inutile de dire qu'il a évolué - avec des fonctionnalités d'authentification, de cryptage et de compression. Il reste un protocole largement utilisé pour transférer des fichiers sur Internet, en particulier dans les cas où des fichiers volumineux ou un grand nombre de fichiers doivent être transférés rapidement et de manière fiable.
Bien que l'API S3 soit fondamentalement supérieure, il lui manque la simplicité de base de FTP/SFTP
et la capacité de s'exécuter dans des environnements très contraints. En conséquence, MinIO a ajouté la prise en charge de FTP
et SFTP
dans le serveur MinIO. Avec cette nouvelle fonctionnalité, l'utilisateur (ou l'application) pense parler à un serveur FTP
alors qu'en fait il parle à MinIO. Les avantages devraient être évidents - il devient transparent de déplacer des données vers MinIO et du point de vue de l'application/de l'utilisateur, tout est essentiellement le même - des politiques, de la sécurité, etc.
Les opérations FTP/SFTP
actuellement prises en charge sont les suivantes :
commandes du client ftp | prise en charge |
---|---|
obtenir | Oui |
mettre | Oui |
ls | Oui |
mkdir | Oui |
rmdir | Oui |
supprimer | Oui |
ajouter | Non |
Renommer | Non |
MinIO prend en charge les protocoles basés sur FTP/SFTP
pour accéder et gérer les données.
Protocole de transfert de fichiers sécurisé ( SFTP
) – Défini par l'Internet Engineering Task Force (IETF) comme une version étendue de SSH 2.0, permettant le transfert de fichiers via SSH et à utiliser avec les applications Transport Layer Security (TLS) et VPN.
File Transfer Protocol over SSL/TLS ( FTPS
) – Communication FTP
cryptée via des certificats TLS.
File Transfer Protocol ( FTP
) - Défini par RFC114 à l'origine, et remplacé par RFC765 et RFC959 communication FTP non cryptée
Contenu de cette version :
Toutes les informations d'identification IAM sont autorisées à accéder, à l'exception des informations d'identification tournantes, les informations d'identification tournantes ne sont pas autorisées à se connecter via les ports FTP/SFTP
. Vous devez utiliser le port API S3 si vous utilisez des informations d'identification tournantes.
L'accès au(x) bucket(s) et au(x) objet(s) est régi par des politiques IAM associées aux identifiants de connexion entrants.
Permet l'authentification et l'accès pour tous
Sur les buckets versionnés, FTP/SFTP
ne fonctionne que sur les derniers objets. Si vous avez besoin de récupérer une ancienne version, vous devez utiliser un S3 API client
tel que mc
.
Toutes les fonctionnalités actuellement utilisées par vos buckets fonctionneront "telles quelles" sans aucune modification
-SSE (chiffrement côté serveur)
-Réplication (réplication côté serveur)
Essentiellement, cela devrait être un ajout de protocole transparent du point de vue du développeur/administrateur.
Cette fonctionnalité est disponible à partir de RELEASE.2023-04-20T17-56-55Z
.
Il est supposé que les utilisateurs ont déjà été créés et configurés avec les politiques d'accès appropriées . MinIO recommande de commencer par une politique prédéfinie "readwrite" de base pour tester toutes les opérations avant de finaliser le niveau de restrictions nécessaires pour un utilisateur.
Aucune opération "admin:*" n'est nécessaire pour l'accès FTP/SFTP
au(x) compartiment(s) et objet(s). Ils peuvent être ignorés pour des restrictions.
Remarque importante : FTP/SFTP
n'est pas activé par défaut. Il doit être activé lors de la configuration. De plus, il n'y a pas de fonctionnalité d'administration disponible via FTP
, cela doit être fait via la ligne de commande.
Démarrez MinIO dans une configuration distribuée, avec FTP/SFTP
activé.
minio server http://server{1...4}/disk{1...4} --ftp="address=:8021" --ftp="passive-port-range=30000-40000" \ --sftp="address=:8022" --sftp="ssh-private-key=/home/miniouser/.ssh/id_rsa" ... ...
L'exemple suivant montre la connexion via un client ftp
à l'aide des informations d'identification minioadmin
et répertorie un compartiment nommé runner
:
ftp localhost -P 8021 Connected to localhost. 220 Welcome to MinIO FTP Server Name (localhost:user): minioadmin 331 User name ok, password required Password: 230 Password ok, continue Remote system type is UNIX. Using binary mode to transfer files. ftp> ls runner/ 229 Entering Extended Passive Mode (|||39155|) 150 Opening ASCII mode data connection for file list drwxrwxrwx 1 nobody nobody 0 Jan 1 00:00 chunkdocs/ drwxrwxrwx 1 nobody nobody 0 Jan 1 00:00 testdir/ ...
L'exemple suivant montre comment lister un objet et le télécharger localement via le client ftp
:
ftp> ls runner/chunkdocs/metadata 229 Entering Extended Passive Mode (|||44269|) 150 Opening ASCII mode data connection for file list -rwxrwxrwx 1 nobody nobody 45 Apr 1 06:13 chunkdocs/metadata 226 Closing data connection, sent 75 bytes ftp> get (remote-file) runner/chunkdocs/metadata (local-file) test local: test remote: runner/chunkdocs/metadata 229 Entering Extended Passive Mode (|||37785|) 150 Data transfer starting 45 bytes 45 3.58 KiB/s 226 Closing data connection, sent 45 bytes 45 bytes received in 00:00 (3.55 KiB/s) ...
Si des certificats sont activés sur le serveur, SFTP
peut être utilisé. Si le client FTP
en est capable, TLS peut être utilisé pour sécuriser la transmission. Cela nécessitera un indicateur supplémentaire pour la clé privée.
L'exemple suivant montre la connexion via le client sftp
à l'aide des informations d'identification minioadmin
et répertorie un compartiment nommé runner
:
sftp -P 8022 minioadmin@localhost minioadmin@localhost's password: Connected to localhost. sftp> ls runner/ chunkdocs testdir
L'exemple suivant montre comment télécharger un objet localement via le client sftp
:
sftp> get runner/chunkdocs/metadata metadata Fetching /runner/chunkdocs/metadata to metadata metadata 100% 226 16.6KB/s 00:00 sftp>
Le port par défaut 8021
peut être modifié via
--ftp="address=:3021"
Par défaut, FTP
demande que le système d'exploitation fournisse automatiquement un port libre, mais vous pouvez limiter cela à des ports spécifiques dans certains environnements restreints via
--ftp="passive-port-range=30000-40000"
Le port par défaut 8022
peut être modifié via
--sftp="address=:3022"
Contrairement au serveur SFTP
, le serveur FTP
n'est pas sécurisé par défaut. Pour fonctionner en mode TLS, vous devez fournir des certificats via
--ftp="tls-private-key=path/to/private.key" --ftp="tls-public-cert=path/to/public.crt"
REMARQUE : si l'installation distribuée de MinIO est déjà configurée pour fonctionner sous TLS, FTP
utilisera automatiquement les certificats pertinents de la chaîne de certificats du serveur, ceci principalement pour simplifier l'installation. Toutefois, si vous souhaitez résilier les certificats TLS via un domaine différent pour vos serveurs FTP
, vous pouvez choisir les options de ligne de commande ci-dessus.
Nous avons noté précédemment que Append et Rename ne sont pas des fonctions de support.
Compte tenu de la simplicité de FTP
, la gestion des versions est également problématique. La gestion des versions n'est pas prise en charge par FTP
et les clients FTP
ne savent pas de quoi il s'agit réellement, mais les compartiments auront généralement plusieurs versions d'un objet. Par conséquent, le même objet avec un nouveau nom sera un nouvel objet. Le même objet portant le même nom sera une nouvelle version - mais FTP
n'en a aucune idée, il doit être géré via S3. Il peut déplacer les données, mais il n'a pas la sophistication de S3 pour comprendre certains concepts.
Enfin, comme indiqué, aucune fonction d'administration n'est disponible sur FTP
.
FTP/SFTP
sont des protocoles d'une durée de vie exceptionnelle et ils continuent de trouver de nouveaux cas d'utilisation et de nouvelles utilités jusque dans la cinquantaine. Nous avons simplifié l'utilisation FTP
pour obtenir des données dans MinIO et les sortir.
Plus important encore, la fonctionnalité FTP/SFTP
fonctionnera de manière transparente avec votre déploiement MinIO existant - il vous suffit de mettre à niveau et d'alimenter vos seaux MinIO avec toutes les données que vous deviez auparavant transformer en MinIO.
Nous avons une superbe vidéo sur le sujet ici . Nous avons notre page GitHub ici . Nous sommes disponibles pour soutenir la communauté ici et évidemment, si vous êtes un client commercial, vous pouvez nous trouver 24/7/365 sur SUBNET.
Également publié ici .