SSH ファイル転送プロトコル (SFTP) を使用して Azure Blob Storage に接続する
この記事では、SFTP クライアントを使用して Azure Storage アカウントの BLOB Storage エンドポイントに安全に接続する方法について説明します。 接続後は、ファイルのアップロードやダウンロード、ファイルやフォルダーのアクセス制御リスト (ACL) の変更ができるようになります。
Azure Blob Storage での SFTP のサポートの詳細については、「Azure Blob Storage での SSH ファイル転送プロトコル (SFTP)」を参照してください。
前提条件
Azure Blob Storage の SFTP サポートを有効にします。 「SFTP サポートを有効または無効にする」を参照してください。
SFTP クライアントへのアクセスの承認 クライアントへのアクセスの承認に関するページを参照してください。
オンプレミスのネットワークから接続している場合は、クライアントが SFTP で使用するポート 22 を介した発信を許可していることを確認します。
SFTP クライアントを接続する
任意の SFTP クライアントを使用して、ファイルを安全に接続してから転送できます。 次の例は、Open SSH を使用する Windows PowerShell セッションを示しています。
PS C:\Users\temp> sftp contoso4.contosouser@contoso4.blob.core.windows.net
SFTP ユーザー名は storage_account_name
.username
です。 上の例では、storage_account_name
が "contoso4" で、username
が "contosouser" です。結合されたユーザー名は "contoso4.contosouser" になります。 BLOB サービス エンドポイントは "contoso4.blob.core.windows.net" です。
接続を完了するには、1 つ以上のプロンプトに応答する必要がある場合があります。 たとえば、ローカル ユーザーをパスワード認証で構成した場合、そのパスワードを入力するよう求めるメッセージが表示されます。 ホスト キーを信頼するように求めるメッセージが表示される場合もあります。 有効なホスト キーはここで公開されています。
カスタム ドメインを使用して接続する
カスタム ドメインを使用して BLOB サービス エンドポイントに接続する場合、接続文字列は myaccount.myuser@customdomain.com
になります。 ユーザのホーム ディレクトリが指定されていない場合、接続文字列は myaccount.mycontainer.myuser@customdomain.com
になります。
重要
DNS プロバイダーが要求をプロキシしていないことを確認してください。これにより、接続試行がタイムアウトする場合があります。
カスタム ドメインを BLOB サービス エンドポイントにマップする方法については、「カスタム ドメインを Azure Blob Storage エンドポイントにマップする」を参照してください。
プライベート エンドポイントを使用する接続
プライベート エンドポイントを使用して BLOB サービス エンドポイントに接続する場合、接続文字列は myaccount.myuser@myaccount.privatelink.blob.core.windows.net
になります。 ユーザのホーム ディレクトリが指定されていない場合は myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net
になります。
Note
ネットワーク構成を [選択した仮想ネットワークと IP アドレスから有効] に変更し、プライベート エンドポイントを選択します。 それ以外の場合は、BLOB サービス エンドポイントに引き続きパブリックにアクセスできます。
インターネット ルーティングを使用して接続する
インターネット ルーティングを使用して BLOB サービス エンドポイントに接続する場合、接続文字列は myaccount.myuser@myaccount-internetrouting.blob.core.windows.net
です。 ユーザのホーム ディレクトリが指定されていない場合は myaccount.mycontainer.myuser@myaccount-internetrouting.blob.core.windows.net
になります。
データの転送
接続後、ファイルをアップロードおよびダウンロードできます。 次の例では、アクティブな Open SSH セッションを使用して、logfile.txt
という名前のファイルをアップロードします。
sftp> put logfile.txt
Uploading logfile.txt to /mydirectory/logfile.txt
logfile.txt
100% 19 0.2kb/S 00.00
転送が完了すると、Azure portal でファイルを表示および管理できます。
Note
Azure portal では、Blob REST API と Data Lake Storage REST API が使われます。 Azure portal でアップロードされたファイルを操作できるということは、SFTP と REST 間の相互運用性を示しています。
ファイルを接続および転送する方法については、SFTP クライアントのドキュメントを参照してください。
ファイルまたはディレクトリの ACL を変更する
SFTP クライアントを使用して、ACL の所有ユーザー、所有グループ、および他のすべてのユーザーのアクセス許可レベルを変更できます。 また、所有中のユーザーと所有グループの ID を変更することもできます。 SFTP クライアントの ACL サポートの詳細については、「ACL」を参照してください。
アクセス許可の変更
所有ユーザー、所有グループ、または ACL の他のすべてのユーザーのアクセス許可レベルを変更するには、ローカル ユーザーに Modify Permission
アクセス許可が必要です。 「コンテナーにアクセス許可を付与する」を参照してください。
次の例では、あるディレクトリの ACL をコンソールに表示します。 次に、chmod
コマンドを使用して、ACL を 777
に設定します。 各 7
は、rwx
(読み取り、書き込み、実行) の数値形式です。 777
は、所有ユーザー、所有グループ、および他のすべてのユーザーに読み取り、書き込み、実行のアクセス許可を付与します。 この例では、更新された ACL をコンソールに表示します。 ACL の数値形式と短い形式の詳細については、「アクセス許可の短い形式」を参照してください。
sftp> ls -l
drwxr-x--- 1234 5678 0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x--- 0 0 0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chmod 777 dir1
Changing mode on /dir1
sftp> ls -l
drwxrwxrwx 1234 5678 0 Mon, 08 Jan 2024 16:54:06 GMT dir1
drwxr-x--- 0 0 0 Mon, 16 Oct 2023 12:18:08 GMT dir2
Note
名前付きユーザー、名前付きグループ、および名前付きセキュリティ プリンシパルの ACL エントリの追加または変更は、まだサポートされていません。
所有ユーザーを変更する
ディレクトリまたは BLOB の所有ユーザーを変更するには、ローカル ユーザーに Modify Ownership
アクセス許可が必要です。 「コンテナーにアクセス許可を付与する」を参照してください。
次の例では、あるディレクトリの ACL をコンソールに表示します。 所有ユーザーの ID は 0
です。 この例では、chown
コマンドを使用して所有ユーザーの ID を 1234
に設定し、変更をコンソールに表示します。
sftp> ls -l
drwxr-x--- 0 0 0 Mon, 08 Jan 2024 16:00:12 GMT dir1
drwxr-x--- 0 0 0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chown 1234 dir1
Changing owner on /dir1
sftp> ls -l
drwxr-x--- 1234 0 0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x--- 0 0 0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp>
所有グループを変更する
ディレクトリまたは BLOB の所有グループを変更するには、ローカル ユーザーに Modify Ownership
アクセス許可が必要です。 「コンテナーにアクセス許可を付与する」を参照してください。
次の例では、あるディレクトリの ACL をコンソールに表示します。 所有グループの ID は 0
です。 この例では、chgrp
コマンドを使用して所有グループの ID を 5678
に設定し、変更をコンソールに表示します。
sftp> ls -l
drwxr-x--- 1234 0 0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x--- 0 0 0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chgrp 5678 dir1
Changing group on /dir1
sftp> ls -l
drwxr-x--- 1234 5678 0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x--- 0 0 0 Mon, 16 Oct 2023 12:18:08 GMT dir2
関連するコンテンツ
- Azure Blob Storage での SSH ファイル転送プロトコル (SFTP) サポート
- Azure Blob Storage での SSH ファイル転送プロトコル (SFTP) サポートを有効または無効にする
- SSH ファイル転送プロトコル (SFTP) クライアントから Azure Blob Storage へのアクセスを承認する
- Azure Blob Storage での SSH ファイル転送プロトコル (SFTP) のサポートに関する制限事項と既知の問題
- Azure Blob Storage での SSH ファイル転送プロトコル (SFTP) サポート用のホスト キー
- Azure Blob Storage での SSH ファイル転送プロトコル (SFTP) のパフォーマンスに関する考慮事項