DevSecOps 向け PAM360 ソフトウェア開発キット - Python

組織内の PAM360 ユーザーに SDK アクセスと登録済みトークンが提供されると、ユーザーはアプリケーション/サービスに関連する PAM360 SDK を登録することで、SDK の使用をさらに進めることができます。そのためには、以下のドキュメントに従ってください。

1.Python SDK - 前提条件

  1. Python SDK にはバージョン 3.12 以降の Python アプリケーションが必要です。
  2. ダウンロードしたPython SDKのzipファイルを解凍し、次のコマンドを使用してPython SDKパッケージをインストールします: pip install<sdk-folder-path>

    注記:
    PAM360 で SDK アクセスが許可されると、認証トークンと Python SDK をダウンロードするためのリンクを含むメールが登録済みのメール アドレスに送信されます。
    または、Python SDK ファイルについては管理者に問い合わせることもできます。

    SDK のインストール後、リクエスト ライブラリ バージョン 2.31.0 以上 (https://pypi.org/project/requests/) がインストールされていることを確認します。
  3. PAM360 Web サーバーが自己署名証明書を使用する場合は、それをダウンロードして目的のシステム ディレクトリに展開し、サービス構成の作成時にそれぞれの証明書パスを更新します。

2.PAM360 に Python アプリケーションを登録する

Python アプリケーションの開発を開始する前に、PAM360 サーバーと Python SDK 間の接続を構成して確立することが重要です。このプロセスには、アプリケーションを登録し、PAM360 機能を利用できるようにするための特定の手順が含まれます。

ClientRegistrationManager オブジェクトと ServiceConfiguration オブジェクトを含む次のサンプル コードを使用して、Python アプリケーションを PAM360 サーバーに登録できます。この登録により、アプリケーションが PAM360 インターフェース内で認識され、利用可能な REST API メソッドを通じて PAM360 リポジトリのデータにアクセスできるようになります。この登録は、PAM360 SDK を使用しているマシン上で 1 回限りの操作であることに注意してください。

import logging from src.com.manageengine.pam360.sdk.services.registration_utility import ClientRegistrationManager from src.com.manageengine.pam360.sdk.services.service_configuration import ServiceConfiguration app_logger = logging.getLogger(__name__) # Configuration Steps sdk_registration_token = "#######-####-####-####-############" host_name = "CH-TEN-53D07" port_no = 8282 certificate_path = "D:\2024\Python\Secure Vault\SDK" # SSL Certificate file Path in .pem format service_config = ServiceConfiguration(host_name, port_no, certificate_path) # Registration Steps try: sdk_client_name = "Sample Python Application Name" registration_manager = ClientRegistrationManager(service_config) registration_manager.register(sdk_registration_token, sdk_client_name) except SDKRegistrationError as ex: app_logger.error(ex)
  1. sdk_registration_token - 電子メールまたは管理者から受信した SDK ポリシーに関連付けられた一意の識別子。
  2. host_name - PAM360 アプリケーションが動作する特定のホスト。
  3. port_no - PAM360 サーバーとの通信用のポート番号。

このコードを実行すると、Python アプリケーションが PAM360 サーバーに登録され、REST API 呼び出しを介して PAM360 機能と対話できるようになります。

ユーザー登録はどのように行われますか?

指定された ClientRegistrationManager および ServiceConfiguration SDK Python オブジェクトを使用して提供されたサンプル コードを実行すると、Python アプリケーションが PAM360 アプリケーションに登録されます。登録後、SDK 構成ファイルが生成され、sdk_config という名前のフォルダに保存されます。

注記:
生成された構成ファイルを安全に保存してください。
この構成ファイルは、Python アプリケーションから API 呼び出しを行うときに、Python アプリケーションと PAM360 間の主要な認証方法として機能します。

正常に完了すると、デプロイされた PAM360 SDK を利用する登録済みアプリケーションが PAM360 Web インターフェースに表示されます。ポリシー名アプリケーション タイプアクセスされた情報、PAM360 に関連するアプリケーション内で実行されたアクションの監査ログなどの詳細にアクセスできるようになります。管理者は、PAM360 インターフェースから直接、SDK で展開されたアプリケーションの詳細を監視する機能を保持します。

3.SDK でデプロイされたアプリケーションを介して PAM360 API をトリガーする

以下は、Python アプリケーション/サービスから PAM360 SDK 経由で API を初期化するためのサンプル コードです。

例: アカウントのパスワードを取得する

import logging from com.manageengine.pam360.sdk.exception.pam_exception import SDKError from com.manageengine.pam360.sdk.services.pam_service import PAMService from com.manageengine.pam360.sdk.services.service_configuration import ServiceConfiguration app_logger = logging.getLogger(__name__) try: pam_host_name = "CHEST11F-H07" pam_server_port = 8282 config = ServiceConfiguration( host=pam_host_name, port=pam_server_port, certificate_path=r"path\to\certificate.pem" # Provide the certificate path while using a self-signed certificate for the PAM360 web server ) user_api_token = "########-####-####-####-############" # PAMService is the entry point to all entities service = PAMService(service_config=config, user_token=user_api_token, org_name="Client Organisation") # Entity is the entry point to all entity-related operations # In this case, Password Entity password_entity = service.get_password_instance() # Get Password of an Account under a Resource resource = "ad-services2k19" account = "sysadmin" password = password_entity.get_password_account(resource_name=resource, account_name=account) print(f"Password of {account} Account under {resource} Resource is {password}") except SDKError as ex: app_logger.error(ex)

残りの SDK 対応 API サンプル コードについては、このヘルプ ドキュメントを参照してください。利用可能なクラス、オブジェクト、関数について知るには、この Python ドキュメントを参照することもできます。

4.Python SDK のベストプラクティス

仮想環境 - アプリケーションを作成する際には、Python で仮想環境を使用することをお勧めします。これは、依存関係を分離し、管理を簡素化し、再現性を確保し、テスト用のサンドボックスを提供し、セキュリティを強化し、簡単なクリーンアップを容易にするためのもので、特に SDK パッケージを組み込む場合のアプリケーション開発のベスト プラクティスになります。

SDK ログ - PAMSDKLogger は、PAM360 SDK 内のすべての内部エラーとアクティビティをログに記録する役割を担います。このクラスは、エンティティ、登録など内で発生した内部エラーを記録します。デフォルトでは、SDK に関連するログは、PAM360 SDK のデプロイされた Python アプリケーション内の sdk_logs という名前のフォルダに保存されます。ただし、セキュリティ上の理由から、API を呼び出すときに以下の手順を使用して、優先ディレクトリに絶対ファイル パスを指定するオプションがあります。これは 1 回限りのプロセスです。一度定義すると、後続の API 呼び出しのログに同じパスが使用されます。

from com.manageengine.pam360.sdk.services.pam_sdk_logger import PAMSDKLogger ..PAMSDKLogger.set_log_file_path(r"D:\2024\Python\Secure Vault\SDK")

SDK Config - 構成ファイルの値は、API 呼び出しを行うときに、Python アプリケーションと PAM360 間の主要な認証メカニズムとして機能します。デフォルトでは、アプリケーションの登録時に、構成ファイルは Python アプリケーション内の sdk_config という名前のフォルダに保存されます。ただし、セキュリティ上の考慮事項として、API を呼び出すときに以下の手順を使用して、優先ディレクトリに目的のディレクトリ パスを定義することができます。これにより、SDK 構成ファイルを任意の場所に保存できるようになります。

from com.manageengine.pam360.sdk.services.service_configuration import ServiceConfiguration .. config = ServiceConfiguration( host=pam_host_name, port=pam_server_port, certificate_path=r"path\to\certificate.pem" config_folder_path=r"D:\2024\Python\Secure Vault\SDK" }