REST APIで認証情報をローテーション
KeeperシークレットマネージャーでREST APIを使用するクラウドベースのアカウントを自動的にローテーション
最終更新
KeeperシークレットマネージャーでREST APIを使用するクラウドベースのアカウントを自動的にローテーション
最終更新
本ページでは、「NOOPモード」を使用してクラウドベースのアプリケーションまたはAPIエンドポイントとPAMゲートウェイでパスワードローテーションを設定する方法を解説します。Keeperのレコードに設定されたフラグで、ゲートウェイにプライマリローテーション方法をスキップして、ポストローテーションスクリプトを直接実行するように指示します。
本ページの最後にPythonスクリプトの例を含めました。
KSMアプリケーション: Keeperシークレットマネージャー (KSM) アプリケーションがセットアップされていることを確かにします。
共有フォルダ: 共有フォルダが設定されていて、そこにすべてのレコードが保存されている必要があります。
PAM設定: PAMがセットアップされていること、およびゲートウェイが実行中であり、この設定に接続されていることを確かにします。
REST APIトークン: APIとのやりとりにAPIトークンが必要となります。
対象のアプリケーションやサービスの手順に従ってAPIトークンを生成します。
このAPIトークンをKeeperのレコードに保存します。レコードタイプは任意のタイプを選択できますが、この例では「ログイン」タイプを使用します。
APIトークンを「パスワード」フィールドに保存します。
組織のURLをウェブサイトのアドレス」フィールドに保存します。
このレコードに「API Access Details」という名前を付けます。この名前は、後でスクリプトでレコードを取得するために使用されます。
新しいPAMユーザーレコードを作成して、パスワードをローテーションの対象ユーザーの詳細を保存します。
ユーザーのログインIDと一致するようにユーザー名を設定します。
パスワードをユーザーに設定されている現在のパスワードに設定します (RESTエンドポイントによります)。
パスワードのローテーションを実行する下のPythonスクリプトを添付します。スクリプトの各行にはコメントが含まれています。
「ローテーションクレデンシャル」のレコード (手順 1で作成したAPIトークンとURLを含むレコード) を追加します。
ノーオペレーション (NOOP) アトミック実行を有効にします。
ユーザーの詳細が保存されている現在のPAMユーザーレコードに、NOOP
というラベルの新しいカスタムフィールドを作成し、その値をTrue
に設定します。
ローテーションタイプ: この例では「オンデマンド」に設定します。
パスワードの複雑さ: 特別な要件がない限り、デフォルトのままにしておきます。
ローテーション設定: 前に設定した PAM設定にします。
管理資格情報レコード: 空のままにしておく必要があります。
以下は、Keeperゲートウェイが実行されている環境での手順となります。
Python環境に必要な依存関係を満たすようすべてインストールされていることを確かにします。
仮想環境を使用する場合は、スクリプトの先頭にシバン行を追加します。
シバン行にスペースが含まれていないようにしてください。スペースが存在する場合は、スペースを含まないシンボリックリンクを作成してください。
以下は、Linuxでシンボリックリンクを作成する例となります。
sudo ln -s "/Users/john/PAM Rotation Example/.venv/bin/python3" /usr/local/bin/pam_rotation_venv_python3
以下のPythonスクリプトには、詳細なコメントを付けています。必要なモジュールをインポートし、変数を初期化し、ユーザーのパスワードを変更するREST APIを呼び出すローテーション関数を定義します。