paint-brush
MinIO FTP/SFTP サーバーのセットアップ — これまでよりも多くのデータ オプションが追加されました@minio
8,302 測定値
8,302 測定値

MinIO FTP/SFTP サーバーのセットアップ — これまでよりも多くのデータ オプションが追加されました

MinIO6m2023/07/25
Read on Terminal Reader

長すぎる; 読むには

S3 API は基本的に優れていますが、FTP/SFTP の必要最低限のシンプルさと、高度に制約された環境で実行する機能が欠けています。その結果、MinIO は、FTP と SFTP のサポートを MinIO サーバーに追加しました。
featured image - MinIO FTP/SFTP サーバーのセットアップ — これまでよりも多くのデータ オプションが追加されました
MinIO HackerNoon profile picture
0-item
1-item
2-item

ファイル転送プロトコル ( FTP ) がどのくらい前から存在しているかを考えると不思議です。 1971 年に MIT の学生である Abhay Bhushan によって初めて開発され、当初は ARPANET 上のコンピュータ間でファイルを転送するために使用されていました。言うまでもなく、認証、暗号化、圧縮機能を備えて進化しました。これは、特に大きなファイルや多数のファイルを迅速かつ確実に転送する必要がある場合に、インターネット上でファイルを転送するために広く使用されているプロトコルです。


S3 API は基本的に優れていますが、 FTP/SFTPの最低限のシンプルさと、高度に制約された環境で実行する機能が欠けています。その結果、MinIO は MinIO サーバーにFTPSFTPのサポートを追加しました。この新機能により、ユーザー (またはアプリケーション) は、実際には MinIO と通信しているにもかかわらず、 FTPサーバーと通信していると考えます。利点は明らかです。データを MinIO に移動するのがシームレスになり、アプリケーション/ユーザーの観点からは、ポリシー、セキュリティなど、すべてが本質的に同じになります。


現在サポートされているFTP/SFTP操作は次のとおりです。


FTP クライアント コマンド

サポートされている

得る

はい

置く

はい

ls

はい

mkdir

はい

rmdir

はい

消去

はい

追加する

いいえ

名前を変更する

いいえ


MinIO は、データにアクセスして管理するために、次のFTP/SFTPベースのプロトコルをサポートします。


  • Secure File Transfer Protocol ( SFTP ) – SSH 2.0 の拡張バージョンとして Internet Engineering Task Force (IETF) によって定義され、SSH 経由でのファイル転送や、Transport Layer Security (TLS) および VPN アプリケーションでの使用を可能にします。


  • SSL/TLS 上のファイル転送プロトコル ( FTPS ) – TLS 証明書を介した暗号化されたFTP通信。


  • ファイル転送プロトコル ( FTP ) – 元々は RFC114 によって定義され、RFC765 および RFC959 の非暗号化 FTP 通信に置き換えられました。

    • これはお勧めしません


このリリースの内容:


  • ローテーション認証情報を除くすべての IAM 認証情報へのアクセスが許可されます。ローテーション認証情報はFTP/SFTPポート経由でのログインを許可されません。ローテーション認証情報を使用している場合は、S3 API ポートを使用する必要があります。


  • バケットおよびオブジェクトへのアクセスは、受信したログイン認証情報に関連付けられた IAM ポリシーによって管理されます。


  • すべてのユーザーに認証とアクセスを許可します

    • 組み込みの IDP ユーザーとそれぞれのサービス アカウント
    • LDAP/AD ユーザーとそれぞれのサービス アカウント
    • OpenID/OIDC サービス アカウント


  • バージョン管理されたバケットでは、 FTP/SFTP最新のオブジェクトに対してのみ動作します。古いバージョンを取得する必要がある場合は、 mcなどのS3 API client使用する必要があります。


  • 現在バケットで使用されているすべての機能は、変更を加えることなく「現状のまま」機能します。
    -SSE (サーバー側暗号化)
    -レプリケーション(サーバー側レプリケーション)


基本的に、これは開発者/管理者の観点からはシームレスなプロトコルの追加である必要があります。

前提条件と注意事項

この機能は、 RELEASE.2023-04-20T17-56-55Z以降で利用可能になります。


ユーザーがすでに作成され、 関連するアクセス ポリシーが設定されていることを前提としています。 MinIO では、ユーザーに必要な制限レベルを最終決定する前に、基本的な「読み取り書き込み」の定型ポリシーから開始してすべての操作をテストすることをお勧めします。


バケットおよびオブジェクトへのFTP/SFTPアクセスに必要な「admin:*」操作はありません。制限によりスキップされる場合があります。


重要な注意事項: FTP/SFTPデフォルトでは有効になっていません。セットアップ時に有効にする必要があります。さらに、 FTP経由で使用できる管理機能はありません。これはコマンド ラインから行う必要があります。

使用法

FTP/SFTPを有効にして、分散セットアップで MinIO を開始します。


 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" ... ...


次の例は、 minioadmin資格情報を使用してftpクライアント経由で接続し、 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/ ...


次の例は、オブジェクトをリストし、 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) ...

SFTPに関する注意事項

サーバーで証明書が有効になっている場合は、 SFTPを使用できます。 FTPクライアントが対応していれば、TLS を使用して送信を保護できます。これには、秘密キーの追加フラグが必要になります。


次の例は、 minioadmin資格情報を使用してsftpクライアント経由で接続し、 runnerという名前のバケットを一覧表示する例を示しています。


 sftp -P 8022 minioadmin@localhost minioadmin@localhost's password: Connected to localhost. sftp> ls runner/ chunkdocs testdir


次の例は、 sftpクライアント経由でオブジェクトをローカルにダウンロードする方法を示しています。


 sftp> get runner/chunkdocs/metadata metadata Fetching /runner/chunkdocs/metadata to metadata metadata 100% 226 16.6KB/s 00:00 sftp>

高度なオプション

デフォルトのFTPポートを変更する

デフォルトのポート8021は次の方法で変更できます。


 --ftp="address=:3021"

FTPパッシブポート範囲の変更

デフォルトでは、 FTP OS が空きポートを自動的に提供するように要求しますが、特定の制限された環境では、これを特定のポートに制限することもできます。


 --ftp="passive-port-range=30000-40000"

デフォルトのSFTPポートを変更する

デフォルトのポート8022は次のように変更できます。


 --sftp="address=:3022"

TLS (FTP)

SFTPサーバーとは異なり、 FTPサーバーはデフォルトでは安全ではありません。 TLS モードで動作するには、次の方法で証明書を提供する必要があります。


 --ftp="tls-private-key=path/to/private.key" --ftp="tls-public-cert=path/to/public.crt"


: MinIO 分散セットアップがすでに TLS で実行するように構成されている場合、 FTPサーバー証明書チェーンから関連する証明書を自動的に使用します。これは主にセットアップを簡素化するためです。ただし、 FTPサーバーの別のドメインを介して TLS 証明書を終了したい場合は、上記のコマンド ライン オプションを選択できます。

制限事項

先ほど、追加と名前変更はサポート機能ではないことに注意しました。


FTPのシンプルさを考えると、バージョン管理にも問題があります。 FTPではバージョン管理がサポートされていないため、 FTPクライアントはバージョン管理が実際に何であるかを知りませんが、通常、バケットにはオブジェクトの複数のバージョンが含まれます。その結果、同じオブジェクトに新しい名前が付けられたものが新しいオブジェクトになります。同じ名前の同じオブジェクトは新しいバージョンになります。ただし、 FTPにはその概念がないため、S3 経由で管理する必要があります。データを移動することはできますが、特定の概念を理解するための S3 のような洗練さはありません。


最後に、前述したように、 FTP経由で使用できる管理機能はありません。

まとめ

FTP/SFTP非常に長命なプロトコルであり、50 代になっても新しい使用例と有用性を発見し続けています。 FTP使用して MinIO へのデータの取得とデータの取り出しを簡単にできるようにしました。


さらに重要なのは、 FTP/SFTP機能が既存の MinIO 展開とシームレスに連携することです。アップグレードするだけで、以前に MinIO に変換する必要があったすべてのデータを MinIO バケットに供給することができます。


この件に関する素晴らしいビデオがここにあります。ここにGitHub ページがあります。私たちはここでコミュニティをサポートすることができます。もちろん、商用顧客の場合は、SUBNET で 24 時間 365 日いつでも私たちを見つけることができます。


ここでも公開されています。