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リポジトリには、以下のような新しいローテーションプラグインが公開されています。
AWS Cognito
Cisco APIC
カスタム統合
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の構成ファイルを利用している場合は、管理者アクセスキーを設定する必要はありません。
プラグインは、以下の順序で認証情報を取得します。
SaaS構成レコード (アクセスキーおよびシークレットキーが正しく設定されていることを確認してください。)
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およびクライアントシークレットを設定する必要はありません。
プラグインは、以下の順序で認証情報を取得します。
SaaS構成レコード
Azure用PAM構成
管理アプリケーションへの権限の割り当て
対象のシークレットをローテーションするには、管理アプリケーションに必要なAzureロール権限が割り当てられている必要があります。
必要なMicrosoft Graphの権限
Application.ReadWrite.All
権限の割り当て手順
Azureポータルから、[Azure Active Directory] > [アプリの登録] を選択します。
シークレットのローテーションを行う管理アプリケーションを選択します。
[API のアクセス許可] > [アクセス許可の追加] をクリックします。
[Microsoft Graph] を選択します。
[アプリケーションのアクセス許可] を選択します。
Application.ReadWrite.All
を検索して選択します。[アクセス許可の追加] をクリックします。
最後にテナントに対して [管理者の同意を与える] をクリックして完了します。
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
カスタムフィールドを以下のように設定します。
有効にする場合:
true
、yes
、1
など任意の値を設定無効にする場合: フィールドを削除するか、空または
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リポジトリを定期的にご確認ください。
最終更新