自動化コマンド

Keeperプラットフォーム上で複雑かつ複数ステップにわたる処理を自動化し、管理業務のワークフローを効率化

概要

自動化コマンドは、組織内ユーザーの認証情報プロビジョニングを自動化するための統一された仕組みです。管理者は単一のコマンダー操作で、PAMユーザーの作成、Active Directoryアカウントの作成、ローテーション設定の適用、Keeperゲートウェイを介した即時パスワード更新、ワンタイム共有リンクまたはボルトへの直接共有による認証情報の配布までを一度に実行できます。この仕組みにより、再現性が高くエラーの起きにくいワークフローが実現し、従業員のオンボーディングを加速するとともに、毎回確実にセキュリティのベストプラクティスを守れます。

コマンド

コマンド
エイリアス
目的

cp

PAMユーザーの認証情報プロビジョニングを自動化し、ADアカウントの作成、ローテーションの自動適用、メールまたはボルトへの直接共有による認証情報の配布を行う

credential-provision

PAMユーザー認証情報の作成をエンドツーエンドで自動化します。パスワードローテーション、フォルダ整理、セキュアな認証情報の配信(ボルトへの直接共有やワンタイム共有付きメールなど)に加え、必要に応じてActive Directoryアカウントを作成できます。

活用事例

  • 新規従業員のオンボーディングをIDプロバイダーの認証情報で自動化

  • Active Directoryの管理者アカウントを作成し、ユーザーのボルトへ共有

  • エンドユーザーのパスワードリセット処理を自動化

  • KeeperPAMリソース向けに、必要に応じて認証情報をローテーションし、安全に配布

  • 対象ディレクトリに既に存在するアカウントを、現在のパスワードを把握している状態でオンボーディングする (持ち込みパスワード)

  • プロビジョニング時に即時ローテーションを行わずに新規レコードをプロビジョニングする (スケジュール実行または手動トリガーのワークフロー)

詳細

credential-provision コマンドは、複数のコマンダー操作を単一のワークフローに統合します。このコマンドはYAML構成ファイルをリクエストパラメータとして受け取り、その内容に基づいて一連の処理を1回のアクションで実行します。

  1. 構成ファイルの解析 - 指定されたYAML構成ファイルを検証

  2. ユーザー名の解決 - テンプレートからユーザー名を解決 (例: {first_initial}{last_name}.adm)

  3. 重複検出 - 既存のPAMユーザーを確認し、競合を防止

  4. パスワードの決定 - account.existing_password が指定されている場合はそれを使用し、指定がない場合は rotation.password_complexity に基づいて安全なパスワードを生成し、いずれも指定がない場合は組み込みのデフォルトを使用

  5. ADユーザー作成 - PAMゲートウェイ経由でActive Directoryにユーザーを作成 (任意。directory_uiddistinguished_name を指定した場合。account.existing_password が設定されている場合はスキップ — アカウントは既に存在するとみなす)

  6. ADグループへの割り当て - 指定したADグループにユーザーを追加 (任意。ad_groups を指定した場合。手順5の実行有無にかかわらず実行)

  7. PAMユーザー作成 - 指定フォルダにPAMユーザーレコードを作成

  8. ローテーション構成 - PAM構成に紐付け、ローテーションスケジュールを設定 (rotation: セクションがない場合は完全にスキップ)

  9. 即時ローテーション - Keeperゲートウェイ経由で、対象ディレクトリ内のパスワードをオンデマンドでローテーション (rotation.rotate_on_provision: false の場合、または手順8がスキップされた場合はスキップ)

  10. 直接共有 - ユーザーのKeeperボルトにレコードを直接共有 (任意。delivery セクションがある場合)

  11. メール配信 - ワンタイム共有URLを含むウェルカムメールを送信 (任意。email セクションがある場合)

注: いくつかの手順は条件付きです。

  • 手順4および5 (パスワードの決定とADユーザー作成): account.existing_password が指定されている場合、指定された値はそのままボルトに保存され、ADユーザー作成はスキップされます (アカウントは既に存在するとみなします)。ADグループへの追加 (手順6) は引き続き適用されます。

  • 手順8および9 (ローテーション構成と即時ローテーション): rotation: セクションが省略されている場合、レコードにローテーションは構成されません。rotation.rotate_on_provision: false が設定されている場合、ローテーションは構成されますが、プロビジョニング時の即時ローテーションは実行されません。以降のローテーションは、スケジュールされたcronまたは手動のRotate Nowで行われます。

  • 手順10および11 は互いに独立しており、いずれか一方だけ、両方、またはどちらも使わない構成にできます。deliveryemail の両方のセクションがある場合、レコードはユーザーのボルトに共有したうえで、ワンタイム共有リンクを含むメールも送信されます。どちらのセクションもない場合、レコードは作成されますが、配布は行われません。

この自動化により手動作業を減らしつつ、セキュリティ設定を確実に適用し、一貫したプロビジョニングが可能になります。

パラメータ

  • -c, --pam-config <UID> - PAM構成レコードのUID (使用するゲートウェイを決定)。YAMLの account.pam_config_uid でも指定可能 (非推奨。代わりに -c を使用してください)

  • -config </path/to/file> - プロビジョニング設定を含むYAML構成ファイルのパス

  • --config-base64 <base64 encoded file> - base64形式でエンコードされたYAML構成 (サービスモード/REST API利用向け)

任意パラメータ

  • --dry-run - リソースを作成せずに構成を検証する

  • --output <json|text> - 出力形式 (既定値: text)

要件

この自動化コマンドを利用するには、以下が設定されている必要があります。

メール配信を行う場合

ボルトへの直接共有を行う場合

  • 対象ユーザーに既存のKeeperボルトがあること

ADユーザー作成およびグループ割り当てを行う場合

  • ゲートウェイ v1.8.0 以降

  • PAM構成に紐付いた、directoryType=ad のPAMディレクトリレコード (pamDirectory)

  • ゲートウェイからActive Directoryへのネットワーク到達性

セキュリティ上の制約

account.existing_password が設定されている場合、指定されたパスワードが対象システムに到達しないよう、以下の2つの不変条件が適用されます。

  1. AD作成はスキップされます。 distinguished_name または ad_groups が設定されているときに通常実行される内部アクションは実行されません。アカウントは既に存在するとみなし、指定されたパスワードはボルトに信頼できる値として保存されます。ADグループへの追加は引き続き適用されます。

  2. 即時ローテーションは明示的に延期する必要があります。 existing_password と併せて rotation: セクションが存在する場合は、rotation.rotate_on_provision: false を設定する必要があります。そうでない場合、構成は検証時に拒否されます。これにより、プロビジョニング時に新しいパスワードが生成されて対象へプッシュされ、持ち込みパスワードの意図が無効化されることを防ぎます。

existing_password でオンボーディングしたアカウントをローテーションするには、ボルトUIでRotate Nowをクリックするか、pam action rotate <UID> を実行します。その時点で新しいパスワードが生成され、ゲートウェイ経由で対象へプッシュされます。

YAML構成ファイルの構造

以下のYAML構成例では、Sarah JonesはCompany.comへ入社した新しい従業員です。IdP / IGA / HRシステム (Workday、Aquera、SailPoint、ConductorOneなど) がKeeperへリクエストを送信し、以下を実行します。

  • 対象ディレクトリでユーザーを識別

  • 希望する複雑性ルールに従ってディレクトリ内のパスワードをローテーション

  • パスワードをコマンダーユーザーのボルト内にPAMユーザーレコードとして保存

  • レコードの自動パスワードローテーションを週1回に設定

  • ワンタイム共有リンクを使用して新入社員の個人メールへ認証情報を送信

  • ワンタイム共有リンクの有効期限は7日

Userセクション (必須)

「user」セクションでは、対象ディレクトリ内のエンドユーザー情報を識別します。

フィールド
必須
説明

first_name

string

はい

ファーストネーム

last_name

string

はい

従業員の姓

personal_email

string

はい

認証情報配信用の個人メール

employee_id

string

いいえ

従業員識別子

department

string

いいえ

部署 (フォルダ構成に利用)

Accountセクション (必須)

「account」セクションでは、PAM構成および対象ディレクトリ内のユーザーIDを指定します。

フィールド
必須
説明

username

string

はい*

対象システムのユーザー名

username_template

string

はい*

ユーザー名導出用テンプレート (以下の「ユーザー名テンプレート」を参照)

pam_config_uid

string

いいえ**

PAM構成レコードのUID (非推奨。代わりに -c フラグを使用してください)

directory_uid

string

はい

ADユーザー作成用 pamDirectory レコードのUID

distinguished_name

string

いいえ***

ADの識別名 ({username} プレースホルダーに対応)

ad_groups

list

いいえ

ユーザーを追加するADグループのDNのリスト

existing_password

string

いいえ

アカウントの現在の実パスワード。ボルトに保存され、対象にはプッシュされない。ADに既に存在するアカウントをオンボーディングする場合に使用。プロビジョニング時にローテーションが実行される構成との併用はバリデーターにより禁止 — 「セキュリティ上の制約」をご参照

* username または username_template のいずれか一方が必須です (両方は不可)。

** コマンドラインで -c / --pam-config を指定しない場合は必須です。

*** 複数OU環境のActive Directoryでは必須です (すべてのAD環境での指定を推奨)。username または username_template から解決される {username} プレースホルダーに対応します。

ユーザー名テンプレート

username_template フィールドでは、user セクションから解決される以下の変数が使えます。

変数
入力例
結果

{first_name}

Felipe

felipe

{last_name}

Dias

dias

{first_initial}

Felipe

f

{last_initial}

Dias

d

{email_prefix}

fdias

出力はすべて小文字です。変数は組み合わせ可能です。

Vaultセクション (任意)

「vault」セクションでは、PAMユーザーレコードをボルト内のどこに保存するかを制御します。

フィールド
必須
説明
デフォルト

folder

string

いいえ

ゲートウェイのアプリケーションフォルダからの相対サブフォルダパス、またはフォルダUID

PAM Users/{department}

アプリケーションフォルダの確認方法については、ボルト > シークレットマネージャー > PAM構成 > アプリケーション フォルダ の設定をご参照ください。

例として、ゲートウェイのフォルダが My Infrastructure で、vault.folder パラメータが Users/Service Accounts の場合、最終的なパスは My Infrastructure/Users/Service Accounts になります。

Rotationセクション (任意)

パスワードローテーション設定を制御します。このセクション全体を省略すると、新規レコードのローテーションは管理されません。 セクションがある場合は、scheduleon_demand: true のいずれか一方を指定する必要があります (相互排他)。

フィールド
必須
説明

schedule

string

はい*

6フィールドのCRON式

on_demand

boolean

はい*

手動トリガーのみのローテーションを構成。cronスケジュールは保存されない

password_complexity

string

はい

パスワードの複雑性ルール

rotate_on_provision

boolean

いいえ (既定値 true)

false の場合、プロビジョニング時の即時ローテーションをスキップ。以降は構成されたスケジュールまたは手動でローテーション

* - セクションがある場合は、schedule または on_demand のいずれか一方が必須です。

ローテーションスケジュール (6フィールドCRON) 形式: 秒 分 時 日 月 曜日

パスワードの複雑さの形式: 長さ,大文字,小文字,数字,記号

Deliveryセクション (任意)

「delivery」セクションでは、ボルトへの直接共有を制御します。このセクションを記述すると、PAMユーザーレコードが指定ユーザーのKeeperボルトに直接共有されます。メール用の「email」セクションとは独立しており、いずれか一方だけ、両方、またはどちらも使わない構成にできます。

フィールド
必須
説明
デフォルト

share_to

string

はい

受信者のKeeperボルトのメールアドレス

-

transfer_ownership

boolean

いいえ

レコードの所有権を受信者へ移転する

false

permissions.can_edit

boolean

いいえ

受信者によるレコードの編集を許可する

false

permissions.can_share

boolean

いいえ

受信者によるレコードの共有を許可する

false

Emailセクション (任意)

「email」セクションでは、ワンタイム共有リンク付きのメール配信を制御します。config_name が有効に指定されている場合、ワンタイム共有URLが生成され、受信者へメールで送られます。「delivery」セクションとは独立しており、いずれか一方だけ、両方、またはどちらも使わない構成にできます。

フィールド
必須
説明
デフォルト

config_name

string

はい

Keeper管理コンソールのメール設定名

-

send_to

string

はい

受信者のメールアドレス

subject

string

いいえ

メールの件名

"Your New Credentials"

share_url_expiry

string

いいえ

共有URLの有効期限

"7d"

共有URLの有効期限の形式: y (年)、mo (月)、d (日)、h (時)、mi (分)

自動化の実行

CLIでの実行

Keeperの自動化は、以下の手順で実行します。

  1. 自動化パラメータを定義したYAMLファイルを作成する

  2. コマンダーコマンドを呼び出す

サービスモード/REST APIでの実行

JIRA、Okta、その他のシステムから起動する自動化ワークフローでは、コマンダーサービスモードREST APIを使用します。

続けて、以下のREST APIを呼び出します。

結果は以下のAPIで確認します。

構成の例

Active Directoryの管理者アカウントと直接共有

特定のOUにAD管理者アカウントを作成し、ADグループへ追加、ローテーションを構成し、ユーザーのKeeperボルトへ直接共有します。

実行

直接共有とメールの両方を使うADアカウント

AD管理者アカウントを作成し、ユーザーのボルトへ共有するとともに、ワンタイム共有リンク付きのメールも送信します。

実行

Active Directoryユーザー (メール配信)

実行

Microsoft Entra IDユーザー

実行

その結果、PAMユーザーレコードはボルトに作成され、対象ディレクトリでローテーションされ、7日後に期限切れとなるワンタイム共有として受信者へ送信されます。

持ち込みパスワードで既存アカウントをオンボーディング

対象ディレクトリに既に存在するActive Directoryアカウントを、現在のパスワードを使ってオンボーディングします。パスワードはボルトに保存され、オンデマンドローテーションが構成されますが、プロビジョニング中はADには変更を加えません。Rotate Now を実行すると、新しいパスワードが生成され、既存のADアカウントへプッシュされます。

実行

レコード作成のみ (配布なし)

ローテーションを構成したPAMユーザーレコードを作成しますが、共有やメールによる配布は行いません。管理者が後から手動で共有できます。

実行

JSON出力 (サービスモード)

スケジュールローテーション (プロビジョニング時のローテーションをスキップ)

生成されたパスワードでアカウントを作成し、cronベースのローテーションを構成しますが、プロビジョニング時の即時ローテーションは実行しません。最初のローテーションは、スケジュールされたcronの最初の実行タイミングで行われます。

メールテンプレート

受信者には、暗号化されたワンタイム共有リンクを含むメールが届きます。

受信者が [View Credentials] をクリックすると、認証情報を復号して表示できます。

ADユーザー作成

directory_uiddistinguished_name がアカウントセクションに含まれる場合、このコマンドはKeeperにPAMユーザーレコードを作成する前にActive Directoryにユーザーを作成します。

要件

  • ゲートウェイ v1.8.0 以降 — ADユーザー作成にはゲートウェイ 1.8.0 以降が必要です。コマンドはゲートウェイのバージョンを確認し、条件を満たさない場合は警告を出してAD操作をスキップします

  • ゲートウェイの共有フォルダに、directoryType=adpamDirectory レコードが存在していること

  • 対象OUでユーザーを作成する権限を持つ管理者資格情報が pamDirectory レコードに設定されていること

  • directory_uid フィールドはこの pamDirectory レコードを参照していること

  • ad_groups を使うには directory_uid の指定が必要です。グループ操作で接続するADを特定するため、PAMディレクトリレコードが必要になります

  • ADグループのDNは完全な識別名である必要があります (例: CN=Group-Name,CN=Users,DC=domain,DC=com)

システム固有の要件

Active Directory - 複数OU環境では識別名が必須です。指定しない場合、異なるOUに同じユーザー名のユーザーが複数いるとローテーションが失敗することがあります。

Azure AD - ユーザー名は必ずメール形式である必要があります ([email protected] または DOMAIN\user)。

AWS IAM - プレーンなユーザー名を使用します。

最終更新