Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos デバイスで Python 自動化スクリプトを実行するための要件

Python スクリプトを実行するための要件

Python を使用して、Junos OS のコミット、イベント、運用、SNMP 自動化スクリプトを作成できます。不正な Python コードの実行を防止するために、Junos デバイスはデフォルトで符号なし Python スクリプトの実行を許可しません。符号なしPythonスクリプトを実行するには、オンボックス自動化スクリプトの通常の要件に加えて、以下の要件を満たす必要があります。

  • ファイル所有者は、Junos OS super-user ログイン クラスの root またはユーザーのいずれかです。

  • ファイルの所有者のみが、ファイルの書き込み権限を持っています。

  • 符号なしPythonスクリプトの実行は、 階層レベルで または language python3 ステートメントをlanguage python[edit system scripts]設定することで有効になります。

    メモ:

    ステートメントを language python3 設定すると、デバイスはこのPythonバージョンをサポートするスクリプトを実行するためにPython 3を使用し、特定のJunos OSリリースでPython 3をサポートしていないスクリプトを実行するためにPython 2.7を使用します。詳細については、「 Junos デバイスの Python 自動化スクリプトについて」を参照してください。

    メモ:

    Junos OS Evolved リリース 21.2R1 以降、 junos-defaults 設定グループにはデフォルトで ステートメントが language python 含まれています。

    メモ:

    ファイルのユーザーまたはグループクラスに属していないユーザーが符号なしPython自動化スクリプトを実行できるようにするには、スクリプトのファイル権限に他のユーザーの読み取り権限を含める必要があります。

SLAX および XSLT 自動化スクリプトと同様に、Python 自動化スクリプトをデバイスの適切なディレクトリに格納する必要があります。また、構成内のスクリプト タイプに適した階層レベルでスクリプト ファイル名を設定し、個々のスクリプトを有効にする必要があります。自動化スクリプトの格納と有効化の詳細については、「 Junos 自動化スクリプトの保存と有効化」を参照してください。

Python スクリプトの整合性を検証するチェックサムを構成することをお勧めします。ローカル スクリプトのチェックサムを指定するには、特定のタイプの checksum スクリプトに対して [file filename] 、 階層の ステートメントの下に ステートメントを設定します。リモート op スクリプトのチェックサムを指定するには、 コマンドを使用してスクリプトを key 実行する際に引数を op url 含めます。Junos OS リリース 18.2R2 および 18.3R1 以降、チェックサムが設定されていない符号なし Python スクリプトを実行した場合、Junos デバイスはシステム ログ ファイルにCSCRIPT_SECURITY_WARNING メッセージをログに記録します。例えば:

Python スクリプトのアクセス権限の設定

Junos OS リリース 16.1R3 以降、コミット スクリプトや op スクリプトなどのインタラクティブな Python スクリプトは、スクリプトを呼び出すコマンドまたは操作を実行するユーザーのアクセス権限を使用して実行されます。イベントや SNMP スクリプトなどの非インタラクティブ Python スクリプトは、デフォルトでユーザーとグループnobodyの権限で実行されます。特定のユーザーのアクセス権限を使用してイベントまたはSNMPスクリプトを実行するには、イベントスクリプトの階層レベルまたは[edit system scripts snmp file filename]SNMPスクリプトの階層レベルで [edit event-options event-script file filename] ステートメントを設定python-script-user usernameし、 階層レベルで設定されたユーザーを指定する[edit system login]必要があります。

例えば:

メモ:

ルートアクセス権限を使用して実行するように、PythonイベントとSNMPスクリプトを設定することはできません。

リリース別の要件変更の概要

Junos OS リリース 16.1R3 以降、一部の符号なし Python スクリプトの所有権およびアクセス権限の要件が変更されました。Junos OS リリース 16.1R2 以前のリリースでは、符号なし Python コミット、イベント、op、SNMP スクリプトは root ユーザーが所有する必要があります。Junos OS は、一般的で恵まれないシステム アカウントである *nix ユーザーおよびグループ nobodyのアクセス権限を使用してスクリプトを実行します。Junos OSリリース16.1R3以降、署名されていないPython自動化スクリプトは、ルートユーザーまたはJunos OS super-user ログインクラスのユーザーが所有する必要があり、ファイルの書き込み権限を持つことができるのはファイル所有者だけです。さらに、Python 自動化スクリプトは、認証済みユーザーのアクセス権限を使用して実行できます。

表 1 は、Veriexec 対応の Junos OS の異なるバージョンで符号なし Python 自動化スクリプトを実行するための要件を概説しています。

表 1:Python 自動化スクリプトの要件

要件/制限

Junos OS リリース 16.1R2 以前のリリース

Junos OS リリース 16.1R3 以降のリリース

ファイルの所有者

Root ユーザー

Junos OS super-user ログイン クラスの root ユーザーまたはユーザー。

ファイル書き込み権限

任意

ファイルの所有者のみ

language python または language python3 ステートメントは 階層レベルで設定する [edit system scripts] 必要があります

メモ:

Python 3は、Junos OSリリース19.4R1以降のリリースでサポートされています。

はい

はい

スクリプトは、そのスクリプト タイプに適した 階層の下の設定で有効にする必要があります。

はい

はい

アクセス権限

Python 自動化スクリプトはすべて、ユーザーとグループのアクセス権限を使用して実行されます。 nobody

Python コミットおよび op スクリプトは、スクリプトを呼び出したユーザーのアクセス権限を使用して実行されます。

Python イベントおよび SNMP スクリプトは、 ステートメントで設定されたユーザーのアクセス権限で python-script-user 実行されます。ステートメントが python-script-user 設定されていない場合、スクリプトはユーザーとグループ nobodyのアクセス権限で実行されます。

リリース履歴テーブル
リリース
説明
22.3R1-EVO
Junos OS Evolved リリース 22.3R1 以降、Python 3 はデフォルトで、Python スクリプトを実行するための Python バージョンのみがサポートされています。
21.2R1-EVO
Junos OS Evolved リリース 21.2R1 以降、 language python ステートメントは設定グループでデフォルトで junos-defaults 設定されます。
16.1R3
Junos OS リリース 16.1R3 以降、一部の符号なし Python スクリプトの所有権およびアクセス権限の要件が変更されました。