SSH ファイル転送プロトコル (SFTP) クライアントの Azure Blob Storage へのアクセスを承認する

この記事では、SFTP クライアントを使用して Azure Storage アカウントの Blob Storage エンドポイントに安全に接続できるように、SFTP クライアントへのアクセスを承認する方法を示します。

Azure Blob Storage での SFTP のサポートの詳細については、「Azure Blob Storage での SSH ファイル転送プロトコル (SFTP)」を参照してください。

前提条件

ローカル ユーザーを作成する

Azure Storageでは、SFTP エンドポイントにアクセスするための Shared Access Signature (SAS) はサポートされていません。 代わりに、ローカル ユーザー ID またはMicrosoft Entra ID ID を使用する必要があります。 ローカル ユーザーは、Azure生成されたパスワードまたは Secure Shell (SSH) キー ペアを使用してセキュリティで保護できます。 接続しているクライアントへのアクセスを許可するには、ストレージ アカウントにパスワードまたはキーの組に関連付けられている ID が必要です。 その ID はローカル ユーザーと呼ばれます。 Microsoft Entra IDの使用の詳細については、「Microsoft Entra IDを使用して BLOB への SFTP アクセスを承認する」を参照してください。

このセクションでは、ローカル ユーザーを作成し、認証方法を選択し、そのローカル ユーザーにアクセス許可を割り当てる方法について説明します。

SFTP アクセス許可モデルの詳細については、「SFTP アクセス許可モデル」を参照してください。

ヒント

このセクションでは、既存のストレージ アカウントのローカル ユーザーを構成する方法について説明します。 アカウントの作成の一環としてローカル ユーザーを構成する Azure Resource Manager テンプレートを表示するには、「Azure で SFTP プロトコルを使用してアクセスできる Azure Storage アカウントと BLOB コンテナーを作成する」を参照してください。

認証方法を選択する

パスワードまたは Secure Shell (SSH) の公開キーと秘密キーのペアを使って、SFTP クライアントから接続するローカル ユーザーを認証できます。

重要

両方の形式の認証を有効にできますが、SFTP クライアントはどちらか一方のみを使用して接続できます。 認証を成功させるには、有効なパスワードと有効な公開キーと秘密キーのペアの両方が必要な多要素認証はサポートされていません。

  1. Azure ポータルで、ストレージ アカウントに移動します。

  2. [設定] で、 [SFTP][ローカル ユーザーの追加] の順に選択します。

    [ローカル ユーザーの追加] ボタンのスクリーンショット。

  3. [ ローカル ユーザー 構成の追加] ウィンドウで、ユーザーの名前を入力し、このローカル ユーザーに関連付ける認証方法を選択します。 パスワードおよび/または SSH キーを関連付けできます。

    [SSH パスワード] を選択した場合、[ローカル ユーザー構成の追加] ウィンドウのすべての手順を完了すると、パスワードが表示されます。 Azure SSH パスワードが生成され、32 文字以上の長さになります。

    SSH キー ペアを選択した場合は、[公開キー ソース] を選択してキー ソースを指定します。

    [ローカル ユーザーの構成] ウィンドウのスクリーンショット。

    次の表では、各キー ソース オプションについて説明します。

    オプション ガイダンス
    新しいキーの組の生成 新しい公開キーと秘密キーの組を作成するには、このオプションを使用します。 公開キーは、指定したキー名を使用して Azure に格納されます。 秘密キーは、ローカル ユーザーを追加した後でダウンロードできます。
    Azure に格納されている既存のキーを使用する Azureに既に格納されている公開キーを使用する場合は、このオプションを使用します。 Azure で既存のキーを検索するには、「キーの一覧表示」 を参照してください。 SFTP クライアントでは、Azure Blob Storage に接続する場合、それらのクライアントで、この公開キーに関連付けられている秘密キーを指定する必要があります。
    既存の公開キーを使用します Azureの外部に保存されている公開キーをアップロードする場合は、このオプションを使用します。 公開キーを持っていないが、Azureの外部で生成する場合は、「 ssh-keygen を使用したキーの生成」を参照してください。

    重要

    OpenSSH 形式の公開キーのみがサポートされています。 指定するキーは、<key type> <key data> の形式を使用する必要があります。 たとえば、RSA キーは次のようになります: ssh-rsa AAAAB3N...。 キーが別の形式の場合は、 ssh-keygen などのツールを使用して OpenSSH 形式に変換します。

  4. [次へ] を選択して、構成ウィンドウの [アクセス許可] タブを開きます。

コンテナーにアクセス許可を付与する

アクセス権を付与するコンテナーと、提供するアクセス レベルを選択します。 これらのアクセス許可は、コンテナー内のすべてのディレクトリとサブディレクトリに適用されます。 各コンテナーのアクセス許可の詳細については、「コンテナーのアクセス許可」を参照してください。

ファイルおよびディレクトリ レベルでアクセスを承認する場合は、ACL の認可を有効にすることができます。

  1. [アクセス許可] タブで、このローカル ユーザーが使用できるコンテナーを選択します。 次に、このローカル ユーザーが実行できる操作の種類を選択します。

    コンテナー アクセスを選択するための [SFTP ローカル ユーザーのアクセス許可] タブのスクリーンショット。

    重要

    ローカル ユーザーには、少なくとも 1 つのコンテナーのアクセス許可またはそのコンテナーのホーム ディレクトリに対する ACL アクセス許可が必要です。 それ以外の場合、そのコンテナーへの接続試行は失敗します。

  2. このコンテナー内のファイルとディレクトリに関連付けられているアクセス制御リスト (ACL) を使用してアクセスを承認する場合は、[ ACL 承認を許可 する] チェック ボックスをオンにします。 ACL を使用して SFTP クライアントを承認する方法の詳細については、「ACL」を参照してください。

    また、そのユーザーをグループ ID に割り当てることで、このローカル ユーザーをグループに追加することもできます。 その ID には、任意の数値または数値スキームを指定できます。 ユーザーをグループ化すると、ACL をディレクトリ構造全体に再適用する必要なく、ユーザーを追加および削除できます。 代わりに、グループに対してユーザーを追加または削除できます。

    グループ ID と ACL 承認チェックボックスのスクリーンショット。

    ローカル ユーザーのユーザー ID が自動的に生成されます。 この ID は変更できませんが、[ローカル ユーザーを編集する] ウィンドウでそのユーザーを再度開くことで、ローカル ユーザーを作成した後にその ID を確認できます。

  3. [ ホーム ディレクトリ ] 編集ボックスに、このローカル ユーザーに関連付けられている既定の場所であるコンテナーの名前またはディレクトリ パス (コンテナー名を含む) を入力します (例: mycontainer/mydirectory)。

    ホーム ディレクトリの詳細については、「ホーム ディレクトリ」を参照してください。

  4. [ 追加 ] ボタンを選択して、ローカル ユーザーを追加します。

    パスワード認証を有効にした場合、Azure生成されたパスワードは、ローカル ユーザーの追加後にダイアログ ボックスに表示されます。

    重要

    後でこのパスワードを取得することはできません。そのため、必ずパスワードをコピーして、見つけられる場所に保管してください。

    新しいキー ペアを生成することを選択した場合は、ローカル ユーザーが追加された後、そのキー ペアの秘密キーをダウンロードするように求められます。

    ローカル ユーザーには、SMB 認証にのみ使用される sharedKey プロパティがあります。

次のステップ