Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS ユーザーの Salt を認証する方法

Salt for Junos OSユーザー認証の概要

Salt を使用して Junos OS を実行しているデバイスを管理する場合、Junos プロキシ ミニオンは ZeroMQ イベント バスを使用して Salt マスターに接続し、ジュニパーの Junos PyEZ ライブラリを使用して Junos OS を実行しているデバイスとの SSH 経由の NETCONF セッションを確立します。管理対象デバイスは、接続方法に応じて、パスワードまたはその他の標準SSH認証メカニズムを使用してSalt ユーザーを認証できる必要があります。Salt を使用して Junos OS を実行しているデバイスを管理する場合、デバイスにアクセスする最も便利で安全な方法は、SSH キーを設定することです。これにより、リモートデバイスは信頼できるユーザーを識別できます。または、特定のデバイスのプロキシ 構成ファイルでユーザー名とパスワードの認証資格情報を指定することもできます。

Salt を使用して Junos OS を実行しているデバイスへの接続と管理を行うには、Salt マスターのピラー ファイルの proxy キーでデバイスに必要な接続および認証情報を定義します。 proxytype: junosを指定する場合、Junos PyEZ Device() コンストラクターで指定できるのと同じ接続および認証パラメーターの多くをピラー データに定義できます。

次のサンプルピラーファイルは、proxytype: junosを指定するときにproxyキーで定義できる一般的な接続および認証パラメータを示しています。表1は、パラメータの概要を示しています。

表1:Junosプロキシパラメータ

パラメーター

形容

host: hostname

Junos OSを実行しているデバイスのホスト名またはIPアドレス。

password: secret

Junos OS を実行しているデバイスでの認証に使用されるユーザーまたはユーザーの SSH プライベート キー ファイルのパスフレーズ。

port: port

Junos OSを実行しているデバイスへの接続を確立するポート。

proxytype: junos

Salt が Junos プロキシ モジュールを使用して Junos OS を実行しているデバイスとインターフェイスするように指定します。

ssh_config: file-path

プロキシ ミニオン サーバ上の Salt ユーザの SSH 構成ファイルへのパス。SSH 構成ファイルがデフォルトパスにある場合は、このパラメーターを省略できます。

ssh_private_key_file: file-path

Junos プロキシが Junos OS を実行しているデバイスでの認証に使用する、プロキシ ミニオン サーバー上の Salt ユーザーの SSH 秘密キー ファイルへのパス。ユーザーのSSHキーファイルがデフォルトパスにある場合、またはパスがSSH構成ファイルですでに定義されている場合は、このパラメーターを省略できます。

username: user

Junos OSを実行し、そのJunos OSアカウント権限でSalt 操作が実行されるデバイスでの認証に使用されるユーザー名。

Salt は、Junos OS を実行している管理対象デバイスにアクセスできる任意のユーザー アカウントを使用して、デバイス操作を実行できます。Junos OSを実行している特定のデバイスのプロキシ構成に username パラメーターを含めることで、ユーザーを明示的に指定できます。また、SSH構成ファイル内でユーザーを指定することもできます。ユーザーを指定しない場合は、デフォルトで現在のユーザーが設定されます。

Junos PyEZ を経由した Salt 接続は、プロキシ ミニオン サーバー上の ~/.ssh/config にあるユーザーのデフォルト SSH 構成ファイル(存在する場合)を自動的にクエリーします。ただし、そのデバイスのプロキシ構成に、別の構成ファイルを指定する ssh_config 引数が含まれていない限ります。Salt は、ユーザやアイデンティティファイルなど、そのデバイスのプロキシ構成で定義されたパラメータによって上書きされない、特定の接続の SSH 構成ファイル内の関連設定を使用します。

Junos プロキシは、まず SSH 公開キーベースの認証を試み、次にパスワードベースの認証を試みます。Junos プロキシは、SSH キー エージェントにアクティブにロードされている SSH キーを確認してから、デフォルトの場所にある SSH キーを確認します。SSH キーが使用されている場合、指定されたパスワードが秘密キーのロックを解除するためのパスフレーズとして使用されます。パスワードベースの認証を使用する場合、指定されたパスワードがデバイスパスワードとして使用されます。SSH公開鍵ベースの認証を使用しており、SSH秘密鍵のパスフレーズが空の場合、パスワードは必要ありません。ただし、空のパスフレーズでSSH秘密キーを使用することはお勧めしません。

Salt マスターでは、ピラー トップ ファイルによって、デバイスのプロキシ設定を含むピラー ファイルにプロキシ ID がマッピングされます。

Junos OSを実行しているデバイスでJunosプロキシミニオンプロセスを開始し、Saltマスター上のキーを承認すると、設定された認証方法を使用して接続されます。

Salt サーバーの設定の詳細については、 Junos OS 用に Salt をインストールする方法を参照してください。

パスワードを使用したSaltユーザーの認証

パスワードを使用してSaltユーザーを認証するには、次の手順を実行します。

  1. Junos OS を実行しているデバイスで、デバイスへの接続に使用するパスワードを使用してユーザー アカウントを設定し、設定をコミットします。例えば:
  2. Salt マスターで、デバイスのプロキシ構成を含むピラー ファイルで、 username パラメータと password パラメータをそのデバイスのJunos OSログイン資格情報に設定します。
    手記:

    機密データを Salt に安全に保存する方法については、 https://docs.saltproject.io/en/latest/topics/best_practices.html#storing-secure-data を参照してください。

SSHキーを使用したSaltユーザーの認証

SSH キーを使用して Salt ユーザーを認証するには、まず Salt プロキシ ミニオン サーバーでキーを生成し、Salt が接続する Junos OS を実行している各デバイスで公開キーを構成する必要があります。キーを使用するには、Salt マスター上のデバイスのプロキシ構成に適切なパラメータを含める必要があります。Junos PyEZ を通した Salt 接続では、SSH キーエージェントにアクティブにロードされた SSH キー、デフォルトの場所またはユーザー定義の場所に生成された SSH キー、パスワード保護を使用またはパスワード保護しないキーを使用できます。Junos プロキシは、まず SSH キー エージェントにアクティブにロードされている SSH キーを確認し、次にユーザーの .ssh ディレクトリの下のデフォルトの場所にある SSH キーを確認します。

以下のセクションでは、SSH キーを生成し、Junos OS を実行しているデバイスでキーを設定し、キーを使用して管理対象デバイスに接続する手順の概要を説明します。

SSH キーの生成と設定

Salt プロキシ ミニオン サーバーで SSH キーを生成し、Junos OS を実行しているデバイスで公開キーを構成するには、次の手順に従います。

  1. Salt プロキシ ミニオン サーバーで、目的のユーザーの公開および秘密 SSH キー ペアを生成し、必要に応じて次のオプションを指定します。
  2. (オプション)OSおよびエージェントに固有のコマンドを使用して、ネイティブSSHキー・エージェントにキーをロードします。例えば:
  3. Salt が接続する Junos OS を実行している各デバイスで、適切なユーザー アカウントで公開キーを構成します。

    Junos OS を実行しているデバイスで公開キーを設定する最も簡単な方法は、公開キーを含むファイルを読み込むことです。

  4. キーを使用してデバイスにログインし、キーが機能することを確認します。

Salt プロキシ構成ファイルでの SSH キーの参照

Junos OS を実行している管理対象デバイスで SSH キー ペアを生成し、公開キーを設定すると、Junos プロキシはキーを使用してデバイスに接続できるようになります。キーを使用するには、Salt マスター上のデバイスのプロキシ構成に適切なパラメータを含める必要があります。必要な proxytype および host パラメータに加えて、SSHキーを使用するために必要なパラメータは、キーの場所、キーがパスワードで保護されているかどうか、キーがSSHキーエージェントにアクティブにロードされているかどうか、およびユーザーのSSH構成ファイルでそのホストの設定がすでに定義されているかどうかによって決まります。

Junos プロキシは、プロキシ ミニオン サーバー上の ~/.ssh/config にあるデフォルトの SSH 構成ファイル(存在する場合)をクエリーします。ただし、そのデバイスのプロキシ設定に、別の構成ファイルを指定する ssh_config 引数が含まれていない限ります。Salt は、特定の接続の SSH 構成ファイル内の関連する設定を使用しますが、この設定は、そのデバイスのプロキシ構成で定義されたパラメータによって上書きされません。デバイスに接続する際、Junos プロキシはまず SSH キー エージェントにアクティブにロードされている SSH キーを確認し、次にユーザーの .ssh ディレクトリの下のデフォルトの場所にある SSH キーを確認します。

ネイティブSSHキー・エージェントにアクティブにロードされるSSHキーを使用するには、以下を行います。

  • デバイスのプロキシ設定を含むピラーファイルで、 username パラメータを定義する必要があります。

デフォルトの場所にあり、パスワードで保護されていないSSHキーを使用するには:

  • デバイスのプロキシ設定を含むピラーファイルで username パラメーターを指定する必要があるのは、デバイスでの認証に使用されるキーを持つユーザーにデフォルト設定されない場合のみです。

デフォルトの場所にない、またはパスワード保護を使用する SSH キーを使用するには、次の手順を実行します。

  • デバイスのプロキシ設定を含むピラーファイルで、 ssh_private_key_file パラメータをプロキシミニオンサーバ上のSSH秘密キーのパスに設定し、キーがパスワードで保護されている場合は、 password パラメータをSSHキーファイルのパスワードに設定します。

    手記:

    ユーザーのSSH構成ファイルで、特定のホストのSSHプライベートキーファイルパスがすでに指定されている場合は、プロキシ構成で ssh_private_key_file パラメーターを省略できます。 ssh_private_key_file パラメータを含めると、SSH 構成ファイル内のホストに定義されている既存の IdentityFile 値が上書きされます。