Azure Blob Storage での SSH ファイル転送プロトコル (SFTP) のサポートに関する制限事項と既知の問題
この記事では、Azure Blob Storage での SFTP サポートに関する制限事項と既知の問題について説明します。
重要
SFTP を使用するには、お使いのアカウントの階層型名前空間を有効にする必要があるため、「Azure Data Lake Storage に関する既知の問題」の記事で説明されている既知の問題もすべて、ご自身のアカウントに適用されます。
サポートされていない既知のクライアント
次のクライアントは、Azure Blob Storage 用の SFTP と互換性がないことがわかっています。 詳細については、「サポートされているアルゴリズム」を参照してください。
- Kemp
- paramiko 1.16.0
- SSH.NET 2016.1.0
この一覧は完全なものではなく、時間が経つと変更される可能性があります。
クライアントの設定
SFTP クライアント経由で Azure Blob Storage とファイルを転送するには、次の推奨設定を参照してください。
WinSCP
- [設定] ダイアログの [移転] - [Endurance] (存続時間) で、[無効化] を選択して、[Enable transfer resume/transfer to temporary filename] (一時ファイル名への転送再開/転送を有効にする) オプションを無効にします。
注意事項
このオプションを有効にしたままにすると、大規模なファイルのアップロード中にエラーやパフォーマンス低下を引き起こすおそれがあります。
サポートされていない操作
カテゴリ | サポートされていない操作 |
---|---|
ランダムな書き込み | READ および WRITE の両方のフラグを含む操作。 例: SSH.NET 作成 API |
リンク | symlink - シンボリック リンクの作成ln -ハード リンクの作成 |
容量情報 | df - ファイルシステムの使用状況情報 |
拡張機能 | サポートされていない拡張機能には fsync@openssh.com、limits@openssh.com、lsetstat@openssh.com、statvfs@openssh.com が含まれますが、これらに限定されません |
SSH コマンド | SFTP は、サポートされている唯一のサブシステムです。 キー交換が完了した後のシェル要求は失敗します。 |
マルチプロトコル書き込み | ランダム書き込みおよび追加 (PutBlock 、PutBlockList 、GetBlockList 、AppendBlock 、AppendFile ) は、SFTP を使用して作成された BLOB 上の他のプロトコル (NFS、Blob REST、Azure Data Lake Storage REST) からは許可されません。 完全な上書きが許可されます。 |
名前の変更操作 | ターゲット ファイル名が既に存在する名前の変更操作は、プロトコル違反です。 このような操作を試みると、エラーが返されます。 詳細については、ファイルの削除と名前変更に関するページを参照してください。 |
複数コンテナーにまたがる操作 | コンテナー間の走査や、同じ接続から複数のコンテナーに対する操作の実行はサポートされていません。 |
削除の取り消し | SFTP を使って論理的に削除された BLOB を復元する方法はありません。 Undelete REST API を使う必要があります。 |
認証と権限承認
SFTP エンドポイントで現在サポートされている ID 管理の唯一の形式は、"ローカル ユーザー" です。
Microsoft Entra ID は SFTP エンドポイントではサポートされていません。
詳細については、「SFTP アクセス許可モデル」と「Azure Data Lake Storage のアクセス制御モデル」をご覧ください。
ネットワーク
SFTP を使用してストレージ アカウントにアクセスするには、ネットワークで、ポート 22 のトラフィックを許可する必要があります。
静的 IP アドレスは、ストレージ アカウントではサポートされていません。 これは SFTP 固有の制限ではありません。
アイドル状態や非アクティブである接続については、2 分のタイムアウトがあります。 OpenSSH が応答を停止し、切断されたと表示されます。 一部のクライアントでは、自動的に再接続が行われます。
その他
パフォーマンスの問題と考慮事項については、Azure Blob Storage での SSH ファイル転送プロトコル (SFTP) のパフォーマンスに関する考慮事項に関するページを参照してください。
再開操作と追加操作では、サブスクリプションで
SFTP Resumable Uploads
プレビュー機能を有効にする必要があります。 プレビュー機能の有効化の詳細情報については、「Azure サブスクリプションでプレビュー機能を設定する」を参照してください。既定では、SFTP を使用してアップロードされた BLOB の Content-MD5 プロパティは null 値に設定されます。 そのため、これらの BLOB の Content-MD5 プロパティに MD5 ハッシュを含める場合、クライアントはその値を計算して、BLOB をアップロードする前に BLOB の Content-MD5 プロパティを設定する必要があります。
SFTP エンドポイント経由でアップロードするファイルの最大サイズは 500 GB です。
カスタマー マネージド アカウントのフェールオーバーは、一部のリージョンのプレビュー レベルでサポートされます。 詳細については、「Azure ストレージのディザスター リカバリー計画とフェールオーバー」を参照してください。
ストレージ アカウントの冗長またはレプリケーションの設定を変更するには、SFTP を無効にする必要があります。 変換が完了したら、SFTP は再び有効にできます。
$logs、$blobchangefeed、$root、$web などの特殊なコンテナーには、SFTP エンドポイントからはアクセスできません。
シンボリック リンクはサポートされていません。
SFTP でない SSH と SCP のコマンドはサポートされていません。
FTPS と FTP はサポートされていません。
TLS と SSL は SFTP に関連していません。
SSH バージョン 2 のみがサポートされています。
ドット (.)、スラッシュ (/)、バックスラッシュ ()、またはその 2 つのシーケンスあるいは組み合わせで終わる BLOB 名またはディレクトリ名は使用しないでください。 パス セグメントはドット (.) で終わる必要はありません。 詳しくは、「コンテナー、BLOB、メタデータの名前付けと参照」を参照してください。
Blob Storage の機能
SFTP のサポートを有効にすると、一部の Blob Storage 機能は完全にサポートされますが、機能によっては、プレビュー レベルでのみサポートされる機能や、現時点ではまだまったくサポートされていないものもあります。
SFTP のサポートが有効になっているアカウントでの各 Blob Storage 機能のサポート状況を確認するには、「Azure ストレージ アカウントにおける Blob Storage 機能のサポート」を参照してください。
トラブルシューティング
Failed to update SFTP settings for account 'accountname'. Error: The value 'True' isn't allowed for property isSftpEnabled.
エラーを解決するには、次の前提条件がストレージ アカウント レベルで満たされている必要があります。このアカウントは、汎用 v2 および Premium ブロック BLOB アカウントにする必要があります。
アカウントで階層型名前空間を有効にする必要があります。
この
Home Directory not accessible error.
エラーを解決するには:ユーザーには、コンテナーに適切なアクセス許可が割り当て済みです。
ホーム ディレクトリを持っていないローカル ユーザーのコンテナー名は、接続文字列で指定されます。
存在しないホーム ディレクトリを持っているローカル ユーザーのコンテナー名は、接続文字列で指定されます。
接続時の
Received disconnect from XX.XXX.XX.XXX port 22:11:
を解決するには:公衆ネットワーク アクセスが
Enabled from all networks
またはEnabled from selected virtual networks and IP addresses
です。クライアント IP アドレスがファイアウォールによって許可されています。