SaaSプラグイン

SaaSプラグイン

KeeperPAM SaaSローテーションプラグイン

概要

KeeperPAMは、クラウドインフラを含むさまざまなSaaSアプリケーションやサービスに対して、自動パスワードローテーションをサポートしています。この機能を利用するには、Keeperゲートウェイのバージョン1.6以降が必要です。

現在、SaaSローテーションの構成はKeeperコマンダーCLIを使用して行う必要がありますが、これらのローテーションを管理するためのフロントエンド機能は、今後リリース予定のウェブボルトおよびデスクトップアプリに追加される予定です。

SaaSローテーションは、組み込み統合カタログ統合カスタム統合のいずれかとして利用できます。

組み込みSaaS連携

KeeperPAMには、以下のような主要サービス向けの統合が含まれています。

  • Okta: IDおよびアクセス管理

  • Snowflake: クラウドデータプラットフォーム

  • REST API: 汎用RESTエンドポイント統合

  • AWSアクセスキー: Amazon Web Servicesの認証情報ローテーション

  • Azureクライアントシークレット: Microsoft Azureアプリケーションのシークレット管理

  • Cisco IOS XE: ネットワーク機器の管理

  • Cisco Meraki: クラウド管理型ネットワークソリューション

カタログSaaS統合

KeeperのSaaS GitHubリポジトリには、以下のような新しいローテーションプラグインが公開されています。

カスタム統合

KeeperのSaaS用GitHubリポジトリに掲載されている例を参考にすることで、ユーザーは自分専用のプライベートプラグインを作成できます。これらのプラグインは、作成したユーザーのKeeperゲートウェイでのみ使用されます。

詳しくは、「カスタムプラグインの使用」のページをご覧ください。


SaaSパスワードローテーションのセットアップ

以下の3つの手順を行います。

1. SaaS構成レコードの作成

SaaS構成は、接続パラメータを定義したカスタムフィールド付きログインレコードとしてボルト内に保存されます。

KeeperコマンダーCLIを使用する方法

最も簡単にSaaS構成を作成するには、KeeperコマンダーCLIを使用します。

# ボルトに接続
keeper shell

# ゲートウェイで利用可能なSaaSタイプを一覧表示
My Vault> pam action saas config --gateway "My Gateway" --list

# 新しいSaaS構成の作成(例:Okta)
pam action saas config --gateway "My Gateway" --plugin "Okta" --shared-folder-uid FOLDER_UID --create

このコマンドを実行すると、選択したSaaSタイプに必要な構成値の入力が求められます。組み込みプラグインおよびカタログプラグイン向けの各構成値の詳細については、以下に記載しています。

ログインレコードを手動で作成し、必要なカスタムフィールドを追加することもできます。


Okta構成レコード

カスタムフィールド名
説明
必須か

SaaS Type

SaaSの種類 (Okta)

はい

Active

SaaSローテーションの有効化と無効化 (デフォルトは有効)

いいえ

Okta URL

ユーザーがログインするカスタマーポータルのURL

はい

Okta Token

Security → API → Tokens管理ページで作成されたAPIトークン

はい


Snowflake構成レコード

カスタムフィールド名
説明
必須か

SaaS Type

SaaSの種類 (Snowflake)

はい

Active

SaaSローテーションの有効化か無効化 (デフォルトは有効)

いいえ

Snowflake Admin User

管理者ユーザー名

はい

Snowflake Admin Password

管理者ユーザーのパスワード

はい

Snowflake Account

アカウント (URLのサブドメイン部分)

はい


REST構成レコード

カスタムフィールド名
説明
必須か

SaaS Type

SaaSの種類 (REST)

はい

Active

SaaSローテーションの有効化と無効化 (デフォルトは有効)

いいえ

REST Url

対象のウェブサービスのURL

はい

REST Token

静的なBearerトークン (動的生成は不可)

はい

REST Method

使用するHTTPメソッド (デフォルトはPOST。指定可能値: POST、PUT)

いいえ


AWSアクセスキー構成レコード

カスタムフィールド名
説明
必須か

SaaS Type

SaaSの種類 (AWS Access Key)

はい

Active

SaaSローテーションの有効化と無効化 (デフォルトは有効)

いいえ

Admin Access Key ID

管理者ロール用のAWSアクセスキーID

いいえ

Admin Secret Access Key

管理者ロール用のAWSシークレットアクセスキー

いいえ

Region Name

リージョン名 (GovCloud以外は空欄可。GovCloudでは必須)

いいえ

AWS Clean Keys

古いアクセスキーの削除方法 (指定がない場合は「All」がデフォルト) All: すべてのアクセスキーを削除 Oldest: 2つのスロットが埋まっている場合、最も古いキーを削除 Replace: ボルトに登録されているキーを置換 (2つある場合は一方のみ削除)

いいえ

備考: EC2インスタンスにアタッチされたIAMロールを使用している場合、またはAWSの構成ファイルを利用している場合は、管理者アクセスキーを設定する必要はありません。

プラグインは、以下の順序で認証情報を取得します。

  1. SaaS構成レコード (アクセスキーおよびシークレットキーが正しく設定されていることを確認してください。)

  2. AWS用PAM構成 (詳細については「AWS環境のセットアップ」ページをご覧ください。)

権限の割り当て

AWSのPAM構成や、特定の管理者用アクセスキーまたはシークレットキーに割り当てられているロールに、対象のアクセスキーをローテーションするために必要な以下のポリシーが含まれていることを確認してください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateAccessKey",
        "iam:ListAccessKeys",
        "iam:DeleteAccessKey"
      ],
      "Resource": "arn:aws:iam::YOUR_AWS_ACCOUNT_ID_HERE:user/*"
    }
  ]
}

Azureクライアントシークレット構成レコード

カスタムフィールド名
説明
必須か

SaaS Type

SaaSの種類 (Azure Client Secret)

はい

Active

SaaSローテーションの有効化と無効化 (デフォルトは有効)

いいえ

Azure Target Object ID

対象となるAzure Entra IDアプリケーションのオブジェクトID (ローテーション対象)

はい

Expiry Days

シークレットの有効期限 (日数)。デフォルトは365日

いいえ

Azure Tenant ID

Azure Entra ID (ディレクトリ) のテナントID。管理アプリと対象アプリの両方に使用されます

いいえ

Azure Admin Application ID

ローテーションを実行する管理アプリケーションのアプリケーション (クライアント) ID (※対象アプリではありません)

いいえ

Azure Admin Client Secret

管理アプリケーションのシークレット

いいえ

Azure Authority

MSALがトークンを要求するための特別なURL

いいえ

Azure Graph Endpoint

Azure Graphスコープ用の特別なURL

いいえ

Azure Clean Keys

ローテーションのたびに古いシークレットを削除する設定 All: すべてのシークレットを削除 Replace: ボルトに登録されているシークレットのみを置き換え

いいえ

注意: すでに必要なAzure権限を持つPAM構成を使用している場合は、管理アプリケーションIDおよびクライアントシークレットを設定する必要はありません。

プラグインは、以下の順序で認証情報を取得します。

  1. SaaS構成レコード

  2. Azure用PAM構成

管理アプリケーションへの権限の割り当て

対象のシークレットをローテーションするには、管理アプリケーションに必要なAzureロール権限が割り当てられている必要があります。

必要なMicrosoft Graphの権限

  • Application.ReadWrite.All

権限の割り当て手順

  1. Azureポータルから、[Azure Active Directory] > [アプリの登録] を選択します。

  2. シークレットのローテーションを行う管理アプリケーションを選択します。

  3. [API のアクセス許可] > [アクセス許可の追加] をクリックします。

  4. [Microsoft Graph] を選択します。

  5. [アプリケーションのアクセス許可] を選択します。

  6. Application.ReadWrite.Allを検索して選択します。

  7. [アクセス許可の追加] をクリックします。

  8. 最後にテナントに対して [管理者の同意を与える] をクリックして完了します。


Cisco IOS XE構成レコード

カスタムフィールド名
説明
必須か

SaaS Type

SaaSの種類 (Cisco IOS XE)

はい

Active

SaaSローテーションの有効化と無効化 (デフォルトは有効)

いいえ

Admin Username

管理者のユーザー名

はい

Admin Password

管理者のパスワード

はい

Hostname

ウェブサービスのホスト名またはIPアドレス

はい

Verify SSL

サーバーのSSL証明書を検証するかどうか (デフォルトはFALSE)

いいえ


Cisco Meraki構成レコード

カスタムフィールド名
説明
必須か

SaaS Type

SaaSの種類 (Cisco Meraki)

はい

Active

SaaSローテーションの有効化と無効化 (デフォルトは有効)

いいえ

Admin Email

管理者のメールアドレス

はい

API Key

管理者のプロフィール内「APIアクセス」セクションで生成されたAPIキー

はい

Network ID

ネットワークID 未入力の場合、取得が試行されます。組織が1つだけ存在し、その組織内にネットワークが1つだけ存在するはそのネットワークIDが使用されます。

いいえ

Verify SSL

サーバーのSSL証明書を検証するかどうか (デフォルトはFALSE)

いいえ


参考 API仕様については、「Cisco Meraki OpenAPI Document」をご参照ください。


2. SaaSローテーションをユーザーに関連付ける

SaaS構成レコードを作成したら、そのレコードをボルト内の1つ以上のPAMユーザーレコードと関連付けます。

  • PAMユーザーレコードは、ボルト内で手動作成するか、またはコマンダーCLIを使用して作成します。

  • コマンダーを使用して関連付けを行うには、以下のコマンドを実行します。

# ユーザーにSaaSローテーションを追加
pam action saas add --user-uid USER_RECORD_UID --config-record-uid SAAS_CONFIG_UID

# 任意で特定のリソースに関連付ける場合
pam action saas add --user-uid USER_RECORD_UID --config-record-uid SAAS_CONFIG_UID --resource-uid RESOURCE_UID

3. 構成の確認

SaaSローテーションが正しく構成されているか確認するには、以下を実行します。

# 指定ユーザーのすべてのSaaSローテーションを表示
pam action saas user -u USER_RECORD_UID

このコマンドにより、対象ユーザーに構成されたSaaSローテーションとその現在の設定内容が表示されます。


Saasローテーションの実行

コマンダーCLIからローテーションを実行するには、pam action rotateコマンドを使用します。

pam action rotate -r USER_RECORD_UID

SaaSローテーションの管理

SaaSローテーションの削除

ユーザーからSaaSローテーションを削除するには、以下のコマンドを使用します。

pam action saas remove --user-uid USER_RECORD_UID --config-record-uid SAAS_CONFIG_UID

ローテーションの有効化と無効化

SaaSローテーションを有効または無効にするには、Activeカスタムフィールドを以下のように設定します。

  • 有効にする場合: trueyes1など任意の値を設定

  • 無効にする場合: フィールドを削除するか、空またはfalseに設定


カスタムおよびコミュニティプラグイン

利用できるカスタムプラグイン

標準装備の統合に加えて、コミュニティが作成したプラグインを含むカスタムプラグインが使用できます。

GitHubリポジトリ: discovery-and-rotation-saas-dev

integrations/フォルダで以下のような利用できるプラグインをご確認ください。

  • その他クラウドサービス

  • データベースシステム

  • ネットワーク機器

  • カスタムエンタープライズアプリケーション

カスタムプラグインの使用方法

1. プラグインディレクトリのセットアップ

PAMゲートウェイにカスタムプラグインのディレクトリを認識させます。

# PAM構成レコードにパスを設定
record-update -r PAM_CONFIG_RECORD_UID "text.SaaS Plugins Dir=/path/to/plugins"

2. プラグインファイルの展開

以下のようにPythonファイルを配置します。

# プラグインディレクトリを作成
mkdir /opt/keeper/saas_plugins

# リポジトリからプラグインファイルをコピー
cp custom_plugin.py /opt/keeper/saas_plugins/

3. Dockerコンテナでの設定

Dockerを使用している場合、以下のようにマウント設定します。

# docker-compose.yml の例
services:
  keeper-gateway:
    image: keeper/gateway:preview
    volumes:
      - ./saas_plugins:/opt/keeper/saas_plugins
    environment:
      GATEWAY_CONFIG: YOUR_GATEWAY_CONFIG_UID

PAM構成にも同様のパスを設定します。

record-update -r PAM_CONFIG_RECORD_UID "text.SaaS Plugins Dir=/opt/keeper/saas_plugins"

4. プラグインのアクセス許可設定 (必要な場合)

一部のプラグイン (AWSやAzure統合など) は、PAM構成の認証情報にアクセスする必要があります。 その場合、以下のようにアクセス許可リストにプラグイン名を追加します。

record-update -r PAM_CONFIG_RECORD_UID "multiline.Allow SaaS Access=Custom Plugin Name\nAnother Plugin"

カスタムプラグインの開発

必要なプラグインが現在存在しない場合は、GitHubリポジトリにある開発環境を使用して独自に開発できます。リポジトリには以下が含まれています。

  • 開発およびテストツール

  • サンプルプラグインとテンプレート

  • APIドキュメント

  • テストフレームワーク

詳細な開発手順については、リポジトリのREADMEをご確認ください。コミュニティディレクトリに貢献する場合は、Pull Requestを送信してください。

ベストプラクティス

セキュリティの考慮事項

  • SaaS統合には最小権限の専用サービスアカウントを使用する

  • APIキーやトークンは定期的にローテーションする

  • 本番導入前に開発環境で十分にテストする

  • ローテーションログを監視し、エラーや認証失敗を検知する

構成管理の推奨事項

  • SaaS構成は専用の共有フォルダに保存して整理

  • 構成レコードにはわかりやすい名前を付ける (例: "Okta Production"、"Snowflake Dev")

  • チーム内で必要なカスタムフィールド要件を文書化する

  • 定期的にSaaSローテーションの割り当てを見直し・更新する

トラブルシューティング

  • ローテーション中の詳細なエラーメッセージはゲートウェイのログを確認

  • SaaSアプリケーション側のAPI認証情報や権限設定を確認

  • ゲートウェイと対象サービス間のネットワーク接続を確認

  • 複数ユーザーに適用する前に個別構成の動作確認を実施


サポートとリソース

項目
サポート方法

標準装備SaaSタイプ

Keeper標準サポート窓口

カスタムプラグイン

GitHubリポジトリのイシューにてコミュニティサポート

開発に関する質問

リポジトリのドキュメントおよびサンプル参照

エンタープライズ向け統合支援

Keeperの担当者にお問い合わせください

常に最新のプラグイン一覧および統合例を確認するには、GitHubリポジトリを定期的にご確認ください。

最終更新