Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 370 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

KeeperPAM and Secrets Manager

Loading...

Privileged Access Manager

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Architecture

Technical details on the KeeperPAM platform architecture

Overview

KeeperPAM is a Zero-Knowledge platform, ensuring that encryption and decryption of secrets, connections, and tunnels occur locally on the end user's device through the Keeper Vault application. Access to resources in the vault is restricted to users with explicitly assigned permissions, enabling them to establish sessions or tunnels securely.

Keeper's zero-trust connection technology further enhances security by providing restricted and monitored access to target systems without direct connectivity, while never exposing underlying credentials or secrets.

This security content will cover the key areas of KeeperPAM:

Architecture Diagram

Keeper Password Rotation architecture diagram and data flow

Architecture Diagram

The KeeperPAM infrastructure and security model ensures zero-knowledge encryption between the end-user's device and the target infrastructure. Keeper's servers have no ability to decrypt or intercept the underlying sessions.

Keeper is designed for high availability, scalability, secure authorization, and robust disaster recovery. Hosted on Amazon Web Services (AWS), Keeper’s backend infrastructure is multi-region and multi-zone, ensuring redundancy across geographic locations. All core services are designed with high availability (HA) in mind, leveraging AWS best practices for fault tolerance and reliability. The system scales automatically to accommodate increased demand without compromising performance. Keeper's infrastructure supports millions of active users and devices.

On the customer side, the Keeper vault is deployed to users for all PAM access. The vault communicates with the Keeper backend APIs for establishing connections to resources. Keeper's zero-knowledge APIs ensure that Keeper's backend systems do not have the ability to decrypt any stored customer data. Encryption and decryption of data is always performed locally on the device.

Keeper Secrets Manager and Keeper Gateway Devices are responsible for performing secret retrieval, credential rotation, resource discovery and privileged session proxying to the customer's local or cloud environment. These devices communicate directly with the Keeper cloud APIs for the management of state, encrypted data storage, audit event logging and session recording. Since these devices are not responsible for the management of data, Keeper's architecture allows the customer environments to scale automatically without any specific hosting requirements on the customer side.

When a customer installs a Keeper Gateway or Keeper Secrets Manager device, it is typically deployed as a Docker container. Customers can use their preferred container orchestration platform such as Kubernetes, Docker Swarm, or Amazon ECS to manage deployment, enable scaling, and provide the necessary levels of local device redundancy.

Multiple Keeper Gateways can also be assigned to the same resources and folders in the Keeper vault in order to establish physical redundancy.

Components

Keeper Gateway

The Keeper Gateway is a service which is installed into the customer's environment and communicates outbound to Keeper services. The Gateway performs the rotation, discovery and connections to assets on the network. The Gateway receives commands from the Keeper Router, then uses Keeper Secrets Manager APIs to authenticate, communicate and decrypt data from the Keeper cloud.

Keeper Router

The Keeper Router is infrastructure in Keeper's cloud that manages connections between Keeper and Rotation Gateways. The Cloud Router provides real-time messaging and communication between the Keeper Vault, customer gateway and Keeper backend services.

Keeper Relay

The Keeper Relay is infrastructure in Keeper's cloud that is responsible for establishing encrypted connections between the end-user vault interface and the customer-hosted Keeper Gateway service.

Keeper Backend API

Keeper's Backend API is the endpoint which all Keeper client applications communicate with. Client applications encrypt data locally and transmit encrypted ciphertext to the API in a format.

Scheduler

Keeper hosted infrastructure that manages timing and logistics around scheduled rotation of credentials across the target infrastructure.

Admin Console and Control Plane

The Management console used to set and enforce policies across all Keeper components.

Client Applications

The end-user interface for managing the vault, rotating passwords, running discovery jobs, creating connections and managing tunnels.

Data Flow

  1. Keeper user performs action (rotation, connection, tunneling, discovery) from the Vault interface, Admin Console, Commander CLI or other endpoint application.

  2. Keeper Gateway establishes an outbound WebSocket connection to the Keeper Router, receives the requests to perform the action.

  3. The Vault Client application establishes a WebRTC connection to the customer's hosted Keeper Gateway.

  4. The Keeper Gateway pulls the necessary secrets from the vault using Keeper Secrets Manager APIs.

Quick Start: Sandbox

Quickly and easily get started with a pre-configured PAM setup in your vault

Quick Start Wizard

To learn some KeeperPAM basics, we have created a wizard that is integrated into the Vault. If you select the Docker install method, this wizard will create all the necessary vault records, configurations and a customized Docker Compose file for quickly standing up a sandbox environment in less than 3 minutes.

1

Activate KeeperPAM

  • Login to the Admin Console in your region:

Region
URL
  • Under Admin > Roles, create a new role for PAM or modify an existing role

  • Go to Enforcement Policies and open the "Privilege Access Manager" section.

  • Enable all the PAM enforcement policies

  • Ensure you are assigned to this role

2

Run the New Gateway Wizard

  • Login to the

3

Test some PAM features

  • You can now instantly connect to any of the resources by clicking "Launch" from the record detail view.

Records Created

The wizard will create the following in your vault:

  • A folder containing Resources and Users in separate shared folders

  • A MySQL database

  • A Linux machine with VNC connection to the desktop UI

  • A Linux machine with SSH connection using an SSH Key

Quick Start Video

We've created a helpful Keeper 101 video to set up your sandbox environment:

Screenshots

Below are screenshots of the Quick Start Wizard from start to finish.

Vault Security

Security and encryption model of the Keeper Vault

Keeper's platform is built with End-to-End Encryption (E2EE) across all devices and endpoints.

  • Data stored in the platform is encrypted locally and encrypted in transit between the user's devices

  • Information exchanged between Keeper users is encrypted from vault-to-vault

  • Data at rest is encrypted with multiple layers, starting with AES-256 encryption at the record level

  • Data in transit is encrypted with TLS and additional layers of transmission encryption which protects against access MITM, service providers and untrusted networks.

A full and detailed disclosure of all encryption related to data at rest, data in transit, cloud architecture and certifications can be found on the .

A video covering this model is below.

Advanced Configuration

Advanced Keeper Gateway Configurations

Overview

This section will cover additional configurations to modify the Keeper Gateway's default behavior.

Advanced Configurations

Setup Steps

Accessing the KeeperPAM platform

Setup Steps

Follow the below steps to start using KeeperPAM.

1

Applications

Secrets Manager Applications with KeeperPAM

What's an Application?

A Secrets Manager Application allows a machine or device to communicate with the Keeper vault, retrieve assigned records and decrypt the data.

Folders are shared to the application, similar to how users are folders are shared to users. This gives the application the capability of accessing and decrypting the records in the folder.

Record Linking

KeeperPAM migration of records to new linked format

Overview

As part of the KeeperPAM product launch, newly created resources in the Keeper Vault—such as PAM Machines, PAM Directories, and PAM Databases—will no longer support embedding credentials directly within the resource. Instead, KeeperPAM now utilizes Record Linking, where the credential record is securely linked to the resource. This approach ensures a clear separation of encryption and permissions between the resource and its associated credentials.

With Record Linking, resources can be shared with users without exposing the underlying credentials, enhancing both security and access control.

Connection and Tunnel Security

Security and encryption model of Connections and Tunnels

Overview

KeeperPAM provides the capability to establish cloud and on-prem privileged sessions, create tunnels, establish direct infrastructure access and secure remote database access.

What is a Connection?

Alerts and SIEM Integration

Monitoring Gateway events and integrating with your SIEM

Overview

KeeperPAM supports integration with your SIEM provider to provide real-time event logging and monitoring of all privileged access management activity. In the Keeper Admin Console, alerts can also be configured based on any event.

For more information on activating SIEM integration from the Keeper Enterprise guide:

  • See

Azure Client Secret Rotation

Automatically rotate the secret of an Azure app using Keeper rotation

Keeper can automatically rotate a client secret in Azure. Please see the Azure Client Secret section of the .

IAM User Access Key

Automatically rotate AWS access keys using Keeper Secrets Manager rotations

Keeper can automatically rotate an IAM User Access Key in AWS. Please see the AWS Access Key section of the .

  • Storing Gateway Configuration in AWS KMS

  • Gateway Configuration with Custom Fields

  • Proxy Configuration

  • A Connection is a visual remote session using the web browser. Interaction between the user and the target device is with a web browser window or within the Keeper Desktop application.

    What is a Tunnel?

    A Tunnel is a TCP/IP connection that is established between the local vault client through the Keeper Gateway to the target endpoint. The user can utilize any native application for communicating with the target endpoint, such as the command-line terminal, GUI application or database management application.

    Connection and tunnel security

    When the user establishes a connection or tunnel:

    1. The Vault Client application communicates to the Keeper Router infrastructure to initiate a WebRTC connection that is protected by a ECDH symmetric key that is stored inside the relevant Keeper record.

    2. The Keeper Gateway communicates with the Keeper Router through outbound-only WebSockets. This is described in detail in the Gateway Security section.

    3. The Keeper Gateway utilizes Keeper Secrets Manager APIs to retrieve the necessary secrets from the vault, including the ECDH symmetric key.

    4. For Connections, the Vault Client (using the Apache Guacamole protocol) passes data through the WebRTC connection to the Keeper Gateway that then uses Guacd to connect to the destination found in the Keeper record.

    5. For Tunneling features (port forwarding), a local port is opened up on the local device running Keeper Desktop software. Data sent to the local port is transmitted through the WebRTC connection to the Keeper Gateway and subsequently forwarded to the target endpoint defined in the Keeper record.

    6. Session recordings of connections are protected by an AES-256 encryption key ("recording key") which is generated on the Keeper Gateway on every session. The recording key is additionally wrapped by a HKDF-derived AES-256 resource key.

    Apache Guacamole Usage

    As seen throughout the KeeperPAM and Keeper Connection Manager documentation, you will notice references to "Apache Guacamole", "guacd", or "guacamole". Apache Guacamole is a robust, open source remote desktop gateway.

    In December 2021, Keeper Security acquired Glyptodon, which was operated by the creators of Apache Guacamole. As such, the creators of Guacamole now lead the Keeper Connection Manager team and continue to build out new capabilities. The Guacamole core services are bundled into the Keeper Connection Manager and KeeperPAM containers.

    SaaS Plugin documentation
    SaaS Plugin documentation

    The Keeper Gateway performs the action on the target infrastructure (such as rotating a credential or establishing a privileged session) and updates the relevant Keeper vault records.

  • The Keeper Gateway runs any required privilege automation scripts on the Gateway or target machines using native protocols and APIs.

  • Client devices securely retrieve the updated record using Keeper Secrets Manager APIs.

  • Vault end-users interact with the target systems through a zero-trust encrypted session to the target infrastructure.

  • The vault performs encrypted syncing to the Keeper cloud to retrieve the latest record content.

  • Keeper's Advanced Reporting & Alerts module logs all events and triggers alerts.

  • WebRTC
    Protocol Buffer
    Click on Create New > Gateway
  • Enter a name for the project, such as "My Infrastructure Demo"

  • Select Docker for the gateway

  • Select "Create with example records"

  • Click Next

  • After the wizard is finished, run the provided installer.

  • The MySQL account, SSH password and SSH key can be rotated by clicking "Rotate" from the record detail within the Users folder.
  • Note: Remote Browser Isolation won't work on some ARM processors

  • A Linux machine with SSH connection using a password

  • A Linux machine with RDP connection to the desktop UI

  • A Remote Browser Isolation session to bing.com

  • A Secrets Manager Application and PAM Configuration with all PAM features enabled

  • A Keeper Gateway ready to initialize

  • US

    https://keepersecurity.com/console

    EU

    https://keepersecurity.eu/console

    AU

    https://keepersecurity.com.au/console

    JP

    https://keepersecurity.jp/console

    GOV

    https://govcloud.keepersecurity.us/console

    Keeper Vault
    Create a Gateway
    Creating the New Project and Gateway
    Building the Gateway
    Install the Gateway with the provided command
    Docker running the Gateway and Sandbox Infrastructure
    SSH Machine Example
    Launching a Connection
    Connecting to a Linux machine with SSH
    Connecting to a virtual Linux machine over VNC
    Connecting to a web application
    Keeper Enterprise license

    If you are not a Keeper customer or do not have the required license, you can start a free trial from our website. The free trial includes KeeperPAM full capabilities.

    2

    Activate Privileged Access Manager

    From the Keeper Admin Console, ensure that your Privileged Access Manager subscription is active. Go to the Admin Console > Subscriptions and activate the trial or contact your Keeper customer success manager.

    3

    Enable PAM Policies

    From the Admin Console, enable the corresponding PAM Enforcement Policies.

    • Login to the Admin Console for your region.

    • Under Admin > Roles, create a new role for PAM or modify an existing role

    • Go to Enforcement Policies and open the "Privileged Access Manager" section.

    • Enable all the to use the new features.

    • Assign yourself or your test user account to this role.

    4

    Existing Customers: Updating your Gateway

    This assumes you are an existing customer with Keeper Secrets Manager and you have a Gateway already deployed. Using the latest Keeper Gateway is required to support the new features. Depending on the operating system, features available will differ.

    Docker

    Use the basic docker-compose.yml file as shown below:

    Download the files called docker-seccomp.json and gateway-apparmor-profile and place them in the same folder as your Docker Compose file.

    and or use curl:

    Windows

    • Download the latest installer:

    • You'll be asked to confirm uninstalling the previous Gateway, this is OK

    • Ensure the "Enter one-time access token" selection is NOT selected

    Linux

    To update an existing Gateway on Linux:

    Retrieving the Configuration

    If you are replacing an existing Gateway, get the old base64 configuration string from: /etc/keeper-gateway/gateway-config.json on Linux or C:\ProgramData\KeeperGateway\config\gateway-config.json on Windows.

    5

    New Customers: Create a new Gateway and Sandbox

    Follow the step by step guide in the Getting Started section of this documentation. A new Quick Start Wizard is available to instantly create a sandbox for testing out a few of the connection types.

    6

    Explore new features

    • Quick Start Sandbox

    Notes

    • PAM Features differ between Linux, Docker and Windows versions of the Keeper Gateway.

    • For a full range of features, use the Docker installation method, or Linux installation method on Rocky Linux or RHEL8.

    • We recommend setting up a Keeper Gateway using the new Quick Start Sandbox. This provides a customized Docker Compose file that provides an instant sandbox for testing.

    Feedback

    Please email us at [email protected] with your feedback and we'll quickly assist you with any questions.

    Creating an Application

    From the Keeper Vault, go to Secrets Manager and click on Create Application.

    • The Application Name typically represents the use case or environment where it is being used

    • The Folder selected is where the application is assigned. An application can be added to any number of shared folders.

    • Record permissions give the application either read-only or read/write access to the folder. This is an additional restriction on top of the existing shared folder permissions.

    • Click on Generate Access Token to create the first access token, representing the first device

    • If you don't plan to set up a device yet, the first access token can be discarded

    Generating a One-Time Access Token

    When creating an application, a one-time access token for the first Device is provided. This one-time access token is supplied to the 3rd party system, Keeper Secrets Manager SDK, Keeper Secrets Manager CLI or other device which needs to access information from the vault.

    One-Time Access Token

    After creating the application, it is managed from the Secrets Manager screen. You can then assign additional devices or Keeper Gateways.

    Managing Applications

    Applications can be added to new or existing Shared Folders.

    Creating a Shared Folder

    Edit the Shared Folder to assign the application.

    Add Application to Shared Folder

    By assigning the Application to shared folders, the application's devices can send Keeper Secrets Manager API requests to the Keeper vault to access and manage the records assigned. There are many use cases where a device can use Keeper Secrets Manager APIs to communicate with the Keeper vault. Below are a few examples.

    • Secrets Manager CLI

    • Developer SDKs

    • Integrations

    Assigning Gateways to Applications

    Keeper Gateways are created and associated to an application. To create a new Gateway, open the application and click on the "Gateways" tab. Select "Provision Gateway" to create a Gateway.

    Assigning a Gateway to an Application

    Alternatively, Keeper provides a wizard that creates several components at once, and automatically links everything together. From the main vault screen, select "Create New" then "Gateway".

    Create a Gateway and associated applications

    The "Project Name" is used to create a PAM Configuration, Gateway, Application and optionally a set of example folders and records.

    Gateway Creation Wizard
    Conversion

    For customers currently using Keeper Secrets Manager with rotation capabilities, if a credential is embedded directly in a resource, a new section will appear when editing the record. This section will display the message:

    "We moved your rotating credentials down below. Please convert these credentials into a PAM User record type."

    This update guides users to transition their rotating credentials into the more secure PAM User record type for enhanced security and proper separation of credentials from resources.

    Splitting Resource and Credentials

    By clicking "Convert Now", you'll be asked to confirm the change and the credentials will be separated from the resource and placed in the same folder.

    Finish Record Splitting

    Click "Next" to finish the conversion. After this is completed, a new record in the same folder will contain the linked credential.

    Converted Resource with Split Credential

    Once the resource has been split, PAM capabilities including connections, tunnels and rotations can be enabled.

    Features
    • Push over 200 different event types to any connected SIEM provider

    • Send alerts to email, SMS, Webhook, Slack or Microsoft Teams on any event trigger

    • Run custom reports from the Keeper Admin Console or Keeper Commander CLI

    KeeperPAM Events

    Events related to KeeperPAM include:

    • Starting and stopping sessions, tunnels, remote browser isolation

    • Gateway lifecycle (online, offline, added/removed)

    • Connection lifecycle (creation, editing and deleting PAM resources)

    KeeperPAM Events

    Recommended Alerts

    As a KeeperPAM administrator, it is useful to receive alerts related to Gateway actions, such as when a Gateway goes offline (in case of server outage or system restart).

    From the Admin Console, go to Reporting & Alerts > Alerts > select Event Types and set the recipient information.

    Set Alert for Gateway Offline

    Event alert details will include the name and UID of the affected Keeper gateway.

    Gateway Offline Alert

    Email alerts contain event information

    Email Alert for Gateway Offline

    Architecture Diagram
    Vault Security
    Router Security
    Gateway Security
    Connection and Tunnel Security
    Keeper Enterprise Encryption Model page

    Getting Started

    Getting Started with KeeperPAM fundamentals

    The Basics

    • Architecture

    KeeperPAM Features

    Secrets Manager Features

    Commander CLI Features

    Enterprise Password Manager

    KeeperPAM

    KeeperPAM is a modern, cloud-based Privileged Access Manager

    Overview

    KeeperPAM is a next-gen privileged access management solution that secures and manages access to critical resources, including servers, web apps, databases and workloads.

    KeeperPAM consolidates enterprise password management, secrets management, connection management, endpoint privileged management, zero-trust network access, remote browser isolation and a cloud-based access control plane in one unified product.

    To learn more about KeeperPAM or sign up for a trial:

    About this Documentation

    This documentation is broken out into the following sections:

    Additional documentation on the core Keeper platform can be found here:

    KeeperPAM vs. Keeper Connection Manager

    KeeperPAM is a cloud-native privileged access solution that requires only a lightweight gateway installation, while Keeper Connection Manager (KCM) is a fully self-hosted solution.

    KeeperPAM works through outbound-only connections with zero-knowledge encryption, eliminating the need for inbound firewall rules or direct line-of-sight to resources. In contrast, KCM is fully hosted by the customer with control over the authentication, database, web server, reverse proxy and session recordings.

    Customers who purchase KeeperPAM may use either the cloud version (described in this documentation) or the self-hosted connection manager as part of the license.

    Features

    KeeperPAM provides the following capabilities:

    • Zero-trust connections launched from the Vault

    • Tunnels established from the Desktop App for ZTNA

    • Sharing connections without exposing credentials

    • Sharing tunnels on a time-limited basis

    Contact the Keeper Team

    If you are an existing customer, your customer success team can activate KeeperPAM in your account.

    For technical questions, you can also email [email protected].

    Next Steps

    • of KeeperPAM

    • Launch the

    • Deep dive into the

    Password Rotation

    Keeper password rotation capabilities with Keeper Secrets Manager

    Overview

    KeeperPAM Password Rotation enables customers to securely and automatically rotate credentials across cloud-based and on-premises environments, including Active Directory accounts, Windows and Linux users, database passwords, Azure IAM accounts, AWS accounts, Google Workspace accounts, SSH keys, and more. Adhering to Keeper’s Zero Trust and Zero Knowledge security model, this feature helps organizations mitigate risks associated with weak, reused, or long-standing credentials, as well as threats such as breaches, terminations, and dark web exposure.

    Features

    • Comprehensive Credential Rotation: Automate rotation for machines, service accounts, and user accounts across your infrastructure and multi-cloud environments.

    • Flexible Scheduling: Schedule rotations to occur at any time or trigger them on demand.

    • Service Management: Automatically update the log on credentials for Windows services and scheduled tasks after rotation.

    • Post-Rotation Actions

    Architecture

    Rotation is performed on the Keeper Gateway and controlled through the Keeper Web Vault, Desktop App or Commander CLI.

    How does Password Rotation Work?

    In KeeperPAM, the way Password Rotation works is as follows:

    • The record holds the credential that is being rotated.

    • The Rotation Settings of the PAM User record references a specific PAM Machine, PAM Database or PAM Directory resource. This is the target resource where the rotation is performed.

    • The uses the Admin Credential associated to the PAM Machine, PAM Database or PAM Directory resource to perform the rotation with native protocols.

    • For AWS, Azure and GCP resources, the record holds the necessary rights and access keys to perform rotations with cloud native APIs.

    Local Network

    Password Rotation in the Local Network Environment

    Overview

    In this section, you will learn how to rotate user credentials within a Local Network environment across various target systems.

    A "local network" simply means any resource that has line of sight access from the Keeper Gateway. This configuration can be used in any cloud or managed environment. Native protocols are used to communicate to the target resources and perform rotations.

    Setup Steps

    At a high level, the following steps are needed to successfully rotate passwords on a network:

    1. Create Shared Folders to hold the PAM records involved in rotation

    2. Create PAM Machine, PAM Database and PAM Directory records representing each resource

    3. Create PAM User records that contain the necessary account credentials for each resource

    4. Link the PAM User record to the PAM Resource record.

    Use Cases

    Database

    DB credential Rotation in the Local Environment

    In this section, you will learn how to rotate database user credentials within your local network.

    Databases Supported

    • Native MySQL

    Azure Managed Database

    Rotate Azure Managed Database credentials with Keeper

    In this section, you will learn how to rotate DB User or Admin credentials on the following Azure Managed Databases:

    • Azure SQL

    • Azure MySQL

    Cloud SQL Database User

    Rotating Google Cloud SQL Database user accounts with Keeper

    Overview

    In this section, you will learn how to rotate DB User or Admin credentials on the following Google Cloud Managed Databases:

    Cloud SQL for MySQL:

    Cloud SQL for SQL Server:

    Cloud SQL for PostgreSQL

    If you are running a database directly on an Google Compute instance in your GCP environment instead of using a managed service, refer to the Local Network > Database documentation for rotating passwords.

    Router Security

    Security and encryption model of the Keeper Router

    Overview

    Keeper Router ("Router") is a cloud service hosted in Keeper's cloud environment which facilitates communications between the Keeper backend API, end-user applications (Web Vault, Desktop App, etc.), and Keeper Gateways installed in the user’s environment. The Router is responsible for communications that perform resource discovery, password rotation, timed access and privileged connection management.

    Sharing Gateways

    Sharing the Keeper Gateway with other admins

    Overview

    Keeper Gateways are essential when configuring PAM features such as rotation and connections on PAM resources. Keeper provides KSM Application Sharing from the vault UI and Keeper Commander CLI.

    Gateways

    Installation and setup of the Keeper Gateway

    Overview

    The Keeper Gateway is a service that is installed on any Docker, Linux or Windows machine in order to execute rotation, discovery, connection and tunneling. A single Gateway can be used to communicate with any target infrastructure, both on-prem and cloud. Typically, customers deploy a Keeper Gateway in each environment that is being managed.

    Managed Database

    Rotating AWS RDS accounts with Keeper

    Overview

    In this section, you will learn how to rotate DB User or Admin credentials on the following AWS Managed Databases:

    Native MariaDB
    Native PostgreSQL
    Native MongoDB
    Native MS SQL Server
    Native Oracle
    Cloud SQL for MySQL
    Cloud SQL for SQL Server
    Cloud SQL for PostgreSQL
    Platforms Supported
    • Docker

    • Windows

    • Linux

    Platform Specific Capabilities

    The Keeper Gateway offers different feature capabilities based on the underlying operating system and hardware. We recommend using Docker on a Linux or Windows host with x86 CPUs for full feature support and ease of management.

    Platform
    Compatibility

    Docker (Linux or Windows host w/ x86)

    • All features supported

    Linux (RHEL 8, Rocky Linux 8)

    • All features supported

    Docker (Linux host on ARM)

    • No Remote Browser Isolation

    Linux Binary Install (Ubuntu, Debian)

    • No Remote Browser Isolation

    • Limited connection protocols

    Windows Binary Install

    • No Remote Browser Isolation

    • No database connections

    Note: EL9 which includes Rocky Linux 9 and RHEL 9 support is coming soon.

    System Requirements

    System requirements vary based on the number of simultaneous user sessions and the types of connections being established. As the volume of simultaneous connections grows, scaling CPU and memory resources becomes essential. In particular, remote browser isolation (RBI) launches a headless Chromium instance for each session. If you anticipate a high number of RBI sessions, ensure the system is scaled to meet these demands.

    For a testing or sandbox a minimum of 2 CPUs with 8GB of memory and 10GB of storage is required. In a production environment, increase to at least 4 CPUs with 16GB of memory. Scale the number of CPUs and memory as the number of simultaneous sessions increases.

    Installation Steps

    The Keeper Gateway generates encryption keys and a local Secrets Manager configuration that is used to authenticate with the Keeper cloud. The location depends on the context in which the Gateway is being run. It can be installed to the local user or installed as a service.

    • Login to the Keeper Web Vault or Desktop App (version 17.1 or newer required)

    • Click on Secrets Manager on the left side

    • Create a new Secrets Manager Application or select existing application

    • Click on the "Gateways" tab and click "Provision Gateway"

    • Select Docker, Linux or Windows install method

    • Install the Keeper Gateway using the provided method

    During the creating of a Keeper Gateway using a one-time token method for Linux and Windows, you have the choice to select "Lock external WAN IP Address of device for initial request". This will additionally IP lock the Gateway in addition to the authentication and encryption built into the service.

    Based on your Operating System, refer to the corresponding guide on installing the Keeper Gateway:

    • Docker

    • Linux

    • Windows

    Additional Installation Configurations

    If you are installing on an EC2 instance in AWS, the Keeper Gateway can be configured to use the instance role for pulling its configuration from AWS Secrets Manager. Detailed instructions on this setup can be found here.

    Session Recording & Playback
  • SSH Agent

  • Discovery

  • On-Prem Connection Manager

  • Sharing
  • KeeperPAM Commands

  • Secrets Management Commands

  • MSP Management Commands

  • Miscellaneous Commands

  • Licensing
    Enforcement policies
    Vault structure
    Record Linking
    Applications
    Devices
    Gateways
    PAM Configuration
    PAM Resources
    PAM Users
    Sharing and Access Control
    Password Rotation
    Connections
    Tunnels
    Remote Browser Isolation (RBI)
    Secrets Manager CLI
    Developer SDKs
    Integrations
    Import and Export
    Reporting
    Enterprise Management
    Record Management
    Enterprise Admin Guide
    : Perform custom actions or functionality after rotation takes place.
  • Access-Based Rotation: Automatically rotate credentials once access expires.

  • Secure Access Control: Control and audit access to credentials through secure sharing and compliance reporting.

  • Detailed Audit Logs: Track all rotation events using Keeper’s Advanced Reporting and Alerts Module (ARAM).

  • Automation with Keeper Commander: Leverage Keeper Commander for fully automated rotation workflows.

  • Rotation Plugins: Open source Plugin framework provides rotation capabilities with any 3rd party SaaS service.

  • For AWS-deployed Gateways, Keeper uses Instance Role permission of the Gateway to perform the rotation with APIs.

  • For Azure and Google Cloud managed resources, Keeper uses the Service Account permissions of the Gateway.

  • PAM User
    Keeper Gateway
    PAM Configuration
    Password Rotation System Architecture Diagram

    Assign a Secrets Manager Application to all of the shared folders that hold the PAM records

  • Install a Keeper Gateway and add it to the Secrets Manager application

  • Create a PAM Configuration with the AWS environment setting

  • Configure Rotation settings on the PAM User records

  • Database
    Active Directory User
    Windows User
    Linux User
    macOS User
    Azure MariaDB
    Azure PostgreSQL
    AWS RDS for MySQL:

    AWS RDS for SQL Server:

    AWS RDS for PostgreSQL

    AWS RDS for MariaDB

    AWS RDS for Oracle:

    If you are running a database directly on an EC2 instance in your AWS environment instead of using a managed service, refer to the Local Network > Database documentation for rotating passwords.

    AWS RDS for MySQL
    AWS RDS for SQL Server
    AWS RDS for PostgreSQL
    AWS RDS for MariaDB
    AWS RDS for Oracle
    PAM enforcement policies
    Download Seccomp File
    Apparmor File
    64-bit Installer
    Connections
    Tunnels
    Remote Browser Isolation
    Session Recording & Playback
    SSH Agent
    Discovery
    services:
          keeper-gateway:
            platform: linux/amd64
            image: keeper/gateway:latest
            shm_size: 2g
            restart: unless-stopped
            security_opt:
              - seccomp:docker-seccomp.json
              - apparmor:gateway-apparmor-profile
            environment:
              ACCEPT_EULA: Y
              GATEWAY_CONFIG: XXXXXXXXXXXX
    curl -O https://raw.githubusercontent.com/Keeper-Security/KeeperPAM/refs/heads/main/gateway/docker-seccomp.json
    
    curl -O https://raw.githubusercontent.com/Keeper-Security/KeeperPAM/refs/heads/main/gateway/gateway-apparmor-profile
    curl -fsSL https://keepersecurity.com/pam/install | sudo bash -s --
    Commander SDK

    Built-in SSH Agent for use with and without tunneling

  • Launching remote browser isolation sessions

  • Session recording and playback

  • File transfer with drag-and-drop

  • Splitting credentials between PAM Resources and PAM Users

  • Discovery of resources

  • All new Keeper Gateway setup wizard

  • Docker-based deployment of the Keeper Gateway

  • Role-based enforcement policies covering PAM use cases

  • Event reporting of all PAM activity with SIEM integration

  • Agentic AI session threat detection monitoring and session summary generation

  • KeeperPAM Website
    Privileged Access Manager
    Endpoint Privilege Manager
    Secrets Manager
    Commander CLI
    Enterprise Admin Guide
    Keeper Connection Manager (self-hosted)
    Documentation Home
    Contact our team
    Start the setup
    Quick Start: Sandbox
    Getting Started guide for KeeperPAM
    How does Keeper Router work?

    In traditional or legacy privileged access products, the customer is responsible for installing on-prem software which is difficult to manage and configure in a cloud environment. In Keeper's model, a hosted service (called a Gateway) is installed into the customer's environment which establishes an outbound secure connection to the Keeper Router, enabling bi-directional communication to the Keeper cloud without any network configuration. Keeper Router makes cloud access to on-prem infrastructure easy and secure by utilizing WebSockets for the inbound requests.

    With Keeper, WebSockets are established between the end-user device (e.g. Web Vault) and the Keeper Router using the user's current session token. The session token is verified by the Keeper Router to authenticate the session. All encrypted payloads sent to the Keeper Router are wrapped by a 256-bit AES transmission key in addition to TLS, to protect against MITM attacks. The transmission key is generated on the end-user device and transferred to the server using ECIES encryption via the Router's public EC key.

    When a user on their Web Vault or Desktop App triggers a password rotation, discovery job or remote connection, the message flow is the following:

    • Upon installation of the Gateway, it authenticates with the Keeper Cloud using a hashed One Time Access Token one time. The client signs the payload and registers a Client Device Public Key with the server on the first authentication. After the first authentication, subsequent requests are sent to the Keeper Router and signed with the Client Device Private Key.

    • The Gateway establishes an authenticated WebSocket connection using the Client Device Private Key and ECDSA signature.

    • The Vault sends a message to the Keeper Router with a command to execute (rotation, tunnel, discovery, connection) and authenticates the command using the user's active session token.

    • The Vault only transmits command and control messages, for example: Rotate UID XXX. No secret information is communicated between Vault and Router. The Router authenticates the command using the session token of the record's rotation configuration to validate the user's request.

    • The Router relays the command to the destination gateway through the existing WebSocket connection.

    • The Gateway retrieves secrets, admin credentials, record details and other private data by using . API requests to the Keeper Cloud are sent with a Client Device Identifier and a request body that is signed with the Client Device Private Key. The server checks the ECDSA signature of the request for the given Client Device Identifier using the Client Public Key of the device. The Client Device decrypts the ciphertext response from the server with the Application Private Key, which decrypts the Record Keys and Shared Folder Keys. The Shared Folder Keys decrypt the Record Keys, and the Record Keys decrypt the individual Record secrets.

    • The Gateway uses Keeper Secrets Manager "update" commands to update the user's vault with any password or discovery job updates.

    • After a rotation or discovery job is complete, the Gateway informs the Router that the job is complete. are triggered by the Router.

    The Keeper Router architecture is Zero Knowledge, and Keeper's infrastructure never has the ability to access or decrypt any of the customer's stored vault data.

    Keeper Router Architecture

    The Router consists of two logical deployments that work together - the Head and the Workers.

    The Router is hosted in Keeper’s AWS cloud environment, isolated to each of the global regions (US, EU, CA, AUS, JP, and US Gov).

    The Head is not exposed to the internet, and performs the following functions:

    • Synchronization of global state between Workers

    • Inter-worker communication

    • Scheduling of events (e.g. rotation, discovery and connection requests)

    The Workers connect to the Head via WebSocket and also use REST API calls to retrieve information. The Workers perform the following functions:

    • Communication with Gateways

    • Communication with Keeper end-user applications

    • Communication with Keeper backend API

    • Communication with Head

    Workers are scaled and load balanced in each Keeper environment. Access to the Keeper Router is established through a common URL pattern in each region:

    US: https://connect.keepersecurity.com

    EU: https://connect.keepersecurity.eu

    AU: https://connect.keepersecurity.com.au

    CA: https://connect.keepersecurity.ca

    JP: https://connect.keepersecurity.jp

    US GOV: https://connect.keepersecurity.us

    The end-user device will always communicate through the same Router instance. When the end-user vault connects to the Router system, a communication exchange is performed to ensure that the vault is communicating to the desired gateway. Once the Gateway communication is established, a Cookie is stored locally on the user's browser which expires automatically in 7 days. This Cookie is only used to establish a sticky session with the target Router instance, and does not contain any secret information.

    Each Gateway device is associated with a unique UID. The Gateway UID is stored within an encrypted “PAM Configuration” record in the administrator's vault. This way, the Keeper vault record knows which Gateway must be used to perform the requested rotation, discovery or connection features.

    Why is Gateway Sharing Needed?

    Gateways are tied to Keeper Secrets Manager (KSM) applications. Only users who have access to a KSM application can view and select its associated Gateway when configuring PAM Record Types. Without sharing, only the owner of the KSM application can use the Gateway for PAM configuration.

    Sharing the KSM application (and thus the Gateway) allows other administrators or team members to independently configure and manage PAM resources. This is critical when multiple users in your organization are responsible for managing privileged access.

    Note: Gateways are automatically shared when the associated KSM application is shared.

    Sharing KSM applications

    When you share the KSM application, you also share access to the associated Gateway.

    To share the KSM application:

    1. From the vault, open the KSM Application you want to share

    2. Edit the Application

    3. Navigate to the "Users" tab

    4. In the search bar, enter the user’s email address

    5. Add the user to the application.

    For more information, visit this page.

    User Permissions

    Outcomes

    Once the gateway is shared through the KSM application, users who now have access can configure PAM resources using that gateway.

    KeeperPAM Licensing

    Features included with the PAM License

    KeeperPAM Licensing Requirements

    In order to enable and use KeeperPAM, the following are required:

    • KeeperPAM License or..

    • or license with

    Trial License

    If you are not a Keeper customer or do not have the required license, you can start a .

    Features Included with KeeperPAM

    With the purchase of the Privileged Access Manager add-on, the following features are included:

    • Secrets Manager with Unlimited API Calls

    • Unlimited Password Rotations

    • Unlimited Privileged Sessions / Connections

    • Unlimited Tunnels

    What is the difference between KeeperPAM and Keeper Connection Manager (Self-Hosted)?

    KeeperPAM is a cloud-native privileged access solution that requires only a lightweight gateway installation, while Keeper Connection Manager (KCM) is a fully self-hosted solution. For more information, visit this .

    KeeperPAM License Model

    The KeeperPAM add-on license includes all the advanced PAM Features. The number of licenses for the enterprise license and the KeeperPAM license is based on:

    License Type
    License Model

    Example

    For example, if an organization has 100 Enterprise users and needs PAM functionality for only 10 of them, they would purchase:

    • 100 Keeper Enterprise Licenses for users who only need the enterprise features.

    • 10 Privileged Access Manager Add-Ons, to cover the 10 users that need PAM functionality.

    MSPs

    Keeper’s allows MSPs and their Managed Companies (MCs) to allocate Keeper licenses to their users and pay only for used licenses at the beginning of the following month.

    KeeperPAM is a that MSPs can add or remove at any time for their Managed Companies.

    Features available with the KeeperPAM Add-On are listed .

    Existing Customers - Updating KSM/KCM Add-Ons

    For existing customers, the following existing Add-ons can be upgraded to the Privileged Access Manager Add-On:

    • Keeper Secrets Manager Add-On

    • KeeperPAM Add-On

    • Keeper Connection Manager Add-On

    Both the Keeper Secrets Manager and Keeper Connection Manager Add-Ons are included as part of the Privileged Access Manager Add-On.

    Upgrading from Keeper Secrets Manager Add-On

    Upgrading to the Privileged Access Manager Add-On from the Keeper Secrets Manager Add-On will give you:

    • Access to new KeeperPAM Features

    • Unlimited API Calls

    Upgrading from Keeper Connection Manager Add-On

    Upgrading to the Privileged Access Manager Add-On from the Keeper Connection Manager Add-On will give you new KeeperPAM Features which includes accessing both the cloud and self-hosted KCM.

    Ready to Upgrade?

    To purchase, upgrade, or if you have any questions, contact your Keeper account manager or use our .

    Gateway Configuration with AWS KMS

    Storing and protecting the Keeper Gateway Configuration using AWS KMS

    Overview

    If the Keeper Gateway is installed on an AWS EC2 Instance, the corresponding Gateway configuration file can be protected and stored in AWS Secrets Manager. This method eliminates the need for storing a configuration file on the instance, and instead stores the configuration file with AWS KMS protection.

    AWS Key Management Service (KMS) Key

    AWS KMS is a fully managed service that makes it easy for you to create and control the cryptographic keys used to encrypt and decrypt your data. The service is integrated with other AWS services, making it easier to encrypt data and manage keys. You will need a AWS KMS key as part of this process, and it is recommended that you follow the principle of least privilege when assigning permissions to this key.

    Prerequisites

    In order to use AWS KMS to protect the Gateway configuration secrets, you need to install the Keeper Gateway on an EC2 instance which assumes an IAM Role. This works on either Docker or Linux install methods.

    Generate a Configuration

    From the Keeper Vault, go to Secrets Manager > Applications and select the application configured with your Gateway. Then select the Gateways tab and select "Provision Gateway".

    Select the Gateway initialization method of "Configuration" and click Next.

    Alternatively, you can generate a One-Time Access Token and then use the Keeper Gateway's "gateway ott-init" command:

    In either case, you'll be provided with a base64 encoded configuration. Save this for the next step.

    Create Secret in AWS Secrets Manager

    From the AWS Console, go to the Secrets Manager and create a new secret.

    • Select "Other type of secret"

    • Select Plaintext and paste the entire base64 value there.

    • Click Next.

    Enter a Secret Name and a description then click Next, Next and Store.

    Assign Policy to Instance Role

    The EC2 instance role needs to be assigned a policy which provides read access to the specific AWS Secrets Manager key. As an example:

    Confirming Access

    From the EC2 instance, the below command will confirm the policy has been applied:

    Configuration of the Keeper Gateway

    Docker Install Method

    For Docker installations, remove the GATEWAY_CONFIG entry and add AWS_KMS_SECRET_NAME with the value containing the name of the secret from the AWS secrets manager.

    Then update the service with the new environment:

    Linux Install Method

    Open the Keeper Gateway service unit file:

    /etc/systemd/system/keeper-gateway.service

    Modify the "ExecStart" line as seen below, replacing YourSecretName with your assigned name.

    Apply changes to the service:

    If there are any errors starting up, they can be seen through this command:

    PAM Resources

    Guide for using PAM Resource Records in the Keeper Vault for privileged access functionality.

    Overview

    KeeperPAM Resource records are special record types designed to organize and store information of your target infrastructure, machines, web apps, workloads and user accounts.

    • What's a Record Type?

    KeeperPAM Record Types

    In your Keeper Vault, resources that represent your infrastructure are created with the following Record Types:

    PAM Record Type
    Target Infrastructure

    Record Linking

    The PAM User record is special because it can be from the other resources. This way, you can to a Machine, Database, Directory or Remote Browser without sharing access to the underlying credentials.

    Creating a PAM Record

    From the Vault UI, click on Create New and select either Rotation, Tunnel or Connection.

    Alternatively, you can right-click on a folder and select Rotation, Tunnel or Connection.

    The "Target" selection will determine what type of record will be created.

    Bulk Import of Resources

    There are several ways of creating resources in the Keeper vault.

    • Manually in the Keeper Vault

    • Using Keeper Discovery

    • Bulk Import with Keeper Commander

    Manually in the Keeper Vault

    As described in this section, you can create PAM Machines, Databases, Directories, Remote Browsers and Users directly in the Keeper Vault.

    Using Keeper Discovery

    KeeperPAM can perform discovery on a network or cloud resource to find all associated machines, accounts, etc. Visit the section to learn more.

    Bulk Import with Keeper Commander

    Keeper Commander CLI can perform import of resources based on a template. See this example for a step by step guide. See the command for more advanced import options.

    The following sections will describe each of the PAM resources.

    Gateway Configuration with Custom Fields

    Advanced configuration of the Keeper gateway with Keeper Vault custom fields

    These configuration capabilities are functional and currently in an experimental phase, and we invite users to actively explore and utilize them. We are actively evaluating their functionality and performance, with the intention of considering them for official integration into our product in the future.

    Advanced Gateway Configuration with Custom Fields

    Gateway on Linux Native

    Instructions for installing Keeper Gateway on Linux with native packages

    Overview

    This document contains information on how to install, configure, and update your Keeper Gateway on Linux with native packages.

    PAM Remote Browser

    KeeperPAM resource for managing remote browser isolation access to a protected web application

    Overview

    A PAM Remote Browser is a type of KeeperPAM resource that represents a remote browser isolation target, such as a protected internal application or cloud-based web app.

    PAM Record Type
    Supported Assets

    Creating a Gateway

    Creating a Keeper Gateway

    Overview

    In order to install and setup a Keeper Gateway device, you need to have a few resources set up:

    • Shared Folders to hold the PAM Resources (Machines, Databases, Users, etc)

    Devices

    Keeper Secrets Manager Devices with KeeperPAM

    What's a Device?

    A Device can be any machine, application or endpoint that has the ability to communicate with the Keeper platform, authenticate and decrypt data that has been provisioned.

    Applications have any number of devices associated. Each device has a unique identifier so that it can be tightly controlled and managed. Devices authenticate and decrypt data using a API and encryption model as defined in the Keeper Secrets Manager Security & Encryption model page.

    AWS

    Password Rotation in the AWS Environment

    Overview

    In this section, you will learn how to rotate user credentials within the AWS Cloud environment across various target systems and services.

    Keeper Secrets Manager APIs
    ARAM event logs

    PAM Machine

    Windows/macOS/Linux Machines, EC2 Instances, Azure VMs, etc.

    PAM Database

    MySQL, PostgreSQL, SQL Server, MongoDB, MariaDB, Oracle

    PAM Directory

    Active Directory, OpenLDAP

    PAM Remote Browser

    Web-based Applications, internal apps or cloud apps

    PAM User

    Any local user, remote user, database credential or admin account. PAM User records can also be configured for scheduled or on-demand password rotation.

    linked
    share access
    Discovery
    Importing PAM Resources
    pam project import
    Create a new PAM Resource Record
    Right-click to create PAM Resource Records
    Selecting a Target
    Vault Encryption & Security Model
    Docker Installation
    Linux Installation
    Select Configuration Method
    Copy the Base64 Configuration
    Create Secret using Plaintext formatting
    Secret Name and Description
    View Secrets
    gateway ott-init [ONE-TIME-TOKEN]
    {
        "Sid": "SecretsManagerPermissions",
        "Effect": "Allow",
        "Action": [
            "secretsmanager:GetSecretValue"
         ],
         "Resource": "arn:aws:secretsmanager:us-west-1:XXX:secret:XXX"
    }
    aws secretsmanager get-secret-value --secret-id YourSecretName --query SecretString --output text
    services:
          keeper-gateway:
            platform: linux/amd64
            image: keeper/gateway:latest
            shm_size: 2g
            security_opt:
              - seccomp:./docker-seccomp.json
              - apparmor=./guacd-apparmor-profile
            environment:
              ACCEPT_EULA: Y
              AWS_KMS_SECRET_NAME: "YourSecretName"
    docker compose pull
    docker compose down
    docker compose up -d
    ExecStart=/bin/bash -c "/usr/local/bin/gateway start --service --aws-kms-secret-name="YourSecretName" --log-to-stdout"
    sudo systemctl daemon-reload
    sudo systemctl restart keeper-gateway
    systemctl status keeper-gateway.service
    Unlimited Remote Browser Isolation
  • Session Recordings and Playback

  • Discovery

  • Keeper Connection Manager (Self-Hosted)

  • PAM Audit and Reporting

  • Business or Enterprise License

    Number of Users using the Business or Enterprise Features

    Privileged Access Manager Add-On

    Number of Users using the Business or Enterprise Features AND PAM Features

    Keeper Business
    Keeper Enterprise
    Privileged Access Manager Add-On
    free KeeperPAM trial
    page
    here
    online form
    When setting up Rotation in your Keeper Vault, you store the credentials of your assets involved in rotation on their corresponding PAM Record Types. On these record types, you are able to create custom fields.

    The additional gateway configurations will be defined with these custom fields on the PAM Record Types. The Keeper Gateway will then adjust its behavior based on the defined configurations.

    The following tables lists all the possible configurations with custom fields:

    Custom Field Name
    Type
    Default Value
    Description

    Shell

    Text

    None

    Allows you to specify a custom shell path that the Gateway will use when executing rotation and post-rotation scripts. This gives you control over the environment in which these scripts run. Example Value: C:\MY\SHELL

    NOOP

    Text

    False

    Allows you to control whether the Gateway performs the primary rotation operation or proceeds directly to execution of the post-rotation script.

    If set to True the Gateway will skip the rotation process and proceed directly in executing the post-rotation script(s). Example Value: True

    Kerberos

    Note:

    • The custom fields values are not case-sensitive.

    Prerequisites
    • Prior to proceeding with this document, make sure you created a Gateway device.

    • For full capabilities, use Rocky Linux 8, RHEL 8 or Alma Linux 8.

    • If you cannot use one of these Linux flavors, please install using the Docker method

    Installation

    Install Command

    Executing the following command will install the Keeper Gateway, and run it as a service:

    • Replace XXXXX with the One-Time Access Token provided from creating the Keeper Gateway

    Installation Location

    The gateway will be installed in the following location:

    An alias gateway is also created in the same directory

    Gateway Service Management

    For managing the Keeper Gateway as a service, the following are created during the Gateway installation:

    • A keeper-gateway folder

    • A keeper-gw user

    keeper-gateway folder

    The keeper-gateway folder contains the gateway configuration file and is created in the following location:

    keeper-gw user

    During the gateway installation, a new user, keeper-gw, is created and added to the sudoers list in /etc/sudoers.d/.

    The keeper-gw user is the owner of the keeper-gateway folder and runs the gateway service. This is required when performing rotations on the gateway service and performing post-execution scripts.

    Managing the Gateway Service

    The following commands can be executed to start, restart, or stop the Keeper Gateway as a service:

    Keeper Gateway Configuration File

    The Keeper Gateway configuration file contains a set of tokens that includes encryption keys, client identifiers, and tenant server information used to authenticate and decrypt data from the Keeper Secrets Manager APIs. This configuration file is created from the One-Time Access Token generated when you created the Gateway.

    If the Keeper Gateway is installed and running as a service, the gateway configuration file is stored in the following location:

    If the Keeper Gateway is installed locally and not running as a service, the gateway configuration file is stored in the following location:

    Keeper Gateway Log files

    Logs that contain helpful debugging information are automatically created and stored on the local machine.

    If the Gateway is running as a service, the log files are stored in the following location:

    If the Gateway is not running as a service, the log files are stored in the following location:

    Verbose Logging

    To add verbose debug logging, modify this file:

    and add the -d flag to the "gateway start" command, e.g:

    Apply changes to the service:

    Tailing the Logs

    Updating

    Executing the following command will update the Keeper Gateway to the latest version:

    Auto Update

    Configure your Keeper Gateway installation to automatically check for updates, ensuring it stays up-to-date with the latest version.

    • Activate the Auto Updater

    Uninstalling

    Executing the following command will uninstall the Keeper Gateway:

    Health Checks

    To monitor the Gateway service, you can configure health checks that expose its operational status. These checks are useful for Docker orchestration, load balancing, and automated monitoring. See the Health Check section for full setup details and examples.

    Any http:// or https:// web application, on-prem or in the cloud

    What is Remote Browser Isolation

    KeeperPAM remote browser isolation records provide secure access to internal and cloud-based web applications through a protected browser, embedded within the vault. This browser is projected visually from the Keeper Gateway through the Keeper Vault, isolating the session and providing zero-trust access.

    Features Available

    The PAM Remote Browser resource supports the following features:

    • Zero-trust Connections over http:// and https:// websites

    • Session recording

    • Sharing access without sharing credentials

    • Autofill of linked credentials and 2FA codes

    • URL AllowList patterns

    • Navigation bar

    Connecting to the protected web application requires only that the Keeper Gateway has access to the target website. The Keeper Vault operates independently and does not require direct connectivity to the website, leveraging Keeper's zero-trust network access model to securely manage access through the Gateway. See the network architecture diagram for more details.

    Creating a Remote Browser Isolation Record

    Prior to creating a PAM Remote Browser, make sure you have already created a PAM Configuration. The PAM Configuration contains information of your target infrastructure while the PAM Remote Browser contains information about the target web application and associated access rules.

    To create a PAM Remote Browser:

    • Click on Create New

    • Select "Connection"

    • On the prompted window:

      • Select "New Record"

      • Select the Shared Folder you want the record to be created in

      • Specify the Title

      • Select "Browser" for the Target

    • Click "Next" and complete all of the required information.

    Creating a Browser Isolation Record

    PAM Remote Browser Record Type Fields

    The following table lists all the configurable fields on the PAM Remote Browser Record Type:

    Field
    Description
    Notes

    URL

    IP or Website address

    Required The target URL only needs to be accessible from the Keeper Gateway

    PAM Settings and Administrative Credentials

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and link a PAM User credential for performing autofill.

    PAM Settings on a Remote Browser Isolation resource
    PAM Settings for Remote Browser Isolation
    Autofill Credentials for Remote Browser Isolation

    PAM Settings

    Field
    Description
    Required

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required

    Browser Autofill Credentials

    Linked PAM User credential used for autofill

    Protocol

    Native protocol used for connecting from the Gateway to the target

    Required

    Session Recording

    Options for recording sessions and typescripts

    See

    PAM Remote Browser resource

    Additional information on Remote Browser Isolation is available at this page.

    PAM Remote Browser

    Keeper Secrets Manager application
  • PAM Configuration

  • To simplify the process, we have a new Gateway wizard which creates all of the necessary components. Or, you can run each step individually.

    Using the Gateway Wizard

    The fastest way to create a Gateway and associated resources is using the Gateway Wizard. From the Web Vault or Desktop App, click on Create New > Gateway.

    Creating a Gateway

    The below link describes how to create a sandbox environment in just a few steps:

    • Quick Start: Sandbox


    Using Keeper Secrets Manager

    To set up a Keeper Gateway manually using the Keeper Secrets Manager application resources, follow these steps.

    1

    Create a Secrets Manager Application

    • In the Keeper Web Vault or Desktop App user interface, create a Shared Folder. This Shared Folder will contain the PAM resource records.

    • Navigate to the "Secret Managers" tab on the left and click on "Create Application" to create a KSM application

    • In the prompted window:

      • Enter the name of your KSM application

      • Choose the Shared Folder

      • Set the Record Permissions for Application to "Can Edit"

    2

    Generate the Gateway Token

    • From the Application screen, open the Gateways tab


    Using Commander CLI

    You can also create a Gateway and configuration file from the Commander CLI. The below CLI commands will create a Secrets Manager application, shared folders and other resources before creating a Gateway instance.

    Create an Application

    Create Folders

    Share the KSM app to the Shared Folders

    Create a Gateway

    To initialize a Gateway for Linux or Windows native install methods, the one-time token method is used:

    To initialize a Gateway using Docker, the base64 configuration is provided as GATEWAY_CONFIG environment variable as described in the Docker Installation instructions.

    See the Security & Encryption Model of a Device

    Creating a Device

    A device can be created through the Applications section of the vault user interface or through the Keeper Commander CLI.

    From the Vault user interface, go to Secrets Manager and select the Application. Then select the Devices tab and click "Add Device".

    Create a Device

    Device Initialization

    A Keeper device can be initialized through either a One-Time Access Token or a pre-built configuration file in either base64 or JSON format.

    One-Time Access Token Initialization

    The One-Time Access Token is an encryption key used by a device for only one authentication to the cloud. After that, a local configuration is created with all of the necessary keys for subsequent authentications and decryption of the resulting vault ciphertext. The Keeper Secrets Manager SDKs and many out of the box integrations utilize this method.

    Add a device using One-Time Access Token and IP Lockdown
    Access Token Generated

    One additional feature of this method is that you can optionally lock down API requests to a specific IP address. The IP address allowed to transact is based on the IP as seen by Keeper's cloud infrastructure.

    • One-Time Access Token details

    Configuration File Initialization

    The Configuration file method of creating a device is useful for tools and integrations where all of the secrets need to be provided at runtime. Most of the CI/CD integration methods use this pre-built configuration file.

    Creating a new device with Configuration File method
    Device created with Configuration method

    For more information about the contents of a Keeper Secrets Manager configuration:

    • Secrets Manager Configuration details

    Commander CLI

    The Keeper Commander CLI can create devices with some additional capabilities that are not available in the UI. For example, the CLI can create any number of devices in bulk, or set an expiration on the validity of the device.

    Additional features of the Commander CLI device initialization method:

    • Control over the device name

    • Access expiration when the device can be initialized

    • Access expiration of the device

    • Allow all IPs or restrict to the first requested IP

    • Generate a number of device tokens or configurations in bulk

    • Option to initialize with a on-time access token or configuration file

    Command Help

    secrets-manager client add --app [APP NAME OR UID] --unlock-ip

    Options:

    --name [CLIENT NAME] : Name of the client (Default: Random 10 characters string)

    --first-access-expires-in-min [MIN] : First time access expiration (Default 60, Max 1440)

    --access-expire-in-min [MIN] : Client access expiration (Default: no expiration)

    --unlock-ip : Does not lock IP address to first requesting device

    --count [NUM] : Number of tokens to generate (Default: 1)

    --config-init [json, b64 or k8s] : Initialize configuration string from a one-time token

    Example:

    • See more details on the secrets-manager Commander CLI command

    KeeperPAM Record Types

    Configurations for your AWS environment are defined in the PAM Configuration section of Keeper Secrets Manager. Keeper will use the inherited EC2 instance role where the Gateway is installed to authenticate with the AWS system and perform rotation. If instance roles are not defined, the AWS Access Key ID and Secret Key can be stored in the PAM Configuration record to authenticate and perform rotations.

    Configurations for managed resources like EC2, RDS, and Directory Services are defined in the PAM Machine, PAM Database, and PAM Directory record types. The following table shows the supported AWS managed resources with KeeperPAM and their corresponding PAM Record Type:

    AWS Managed Resource
    Corresponding Record Type

    EC2

    PAM Machine

    RDS

    PAM Database

    Directory Service

    PAM Directory

    Configurations for directory users or IAM users are defined in the PAM User record type.

    Prerequisites

    To successfully rotate IAM User accounts or EC2 local user accounts, the Keeper Gateway needs to have the necessary AWS role policies with the permissions for performing the password rotation.

    • See the AWS environment setup guide for more information.

    If you are not using EC2 instance role policies, the following values are needed in the PAM Configuration:

    Field
    Description

    Access Key ID

    This is the Access Key ID from the desired Access Key found in the IAM User account Set this field to USE_INSTANCE_ROLE if the gateway is deployed to an EC2 Instance that supports instance roles

    Secret Access Key

    This is the Secret Access Key from the desired Access Key found in the IAM User account Set this field to USE_INSTANCE_ROLE if the gateway is deployed to an EC2 Instance that supports instance roles

    The Keeper Gateway will always first attempt to use the EC2 instance role to authenticate and perform the rotation. If this fails or is not available on the machine, Keeper will use the Access Key ID and Secret Access Key stored in the PAM Configuration.

    Setup Steps

    At a high level, the following steps are needed to successfully rotate passwords on your AWS network:

    1. Create Shared Folders to hold the PAM records involved in rotation

    2. Create PAM Machine, PAM Database and PAM Directory records representing each resource

    3. Create PAM User records that contain the necessary account credentials for each resource

    4. Link the PAM User record to the PAM Resource record.

    5. Assign a Secrets Manager Application to all of the shared folders that hold the PAM records

    6. Install a Keeper Gateway and add it to the Secrets Manager application

    7. Create a PAM Configuration with the AWS environment setting

    8. Configure Rotation settings on the PAM User records

    Use Cases

    • IAM User Password

    • Managed Microsoft AD User

    • EC2 Instance local user

    • IAM User Access Key

    Azure

    Password Rotation in the Azure Environment

    Overview

    In this section, you will learn how to rotate user credentials within the Azure network environment across various target systems. Rotation works on the devices configured and attached to the Azure Active Directory (Azure AD) which can also be your default directory.

    KeeperPAM can rotate the password for Azure AD users, service accounts, local admin users, local users, managed services, databases and more.

    KeeperPAM Record Types

    Configurations for the Azure Active Directory are defined in the PAM Configuration section of Keeper Secrets Manager.

    Configurations for the Azure AD joined devices are defined in the PAM Directory, PAM Machine, and PAM Database record types. The credentials and user accounts are defined in PAM User records. The following table shows the supported Azure AD joined devices with Keeper Rotation and their corresponding PAM Record Type:

    Azure AD Joined Device
    Corresponding PAM Record Type

    Prerequisites for Rotation

    Prior to rotating user credentials within your Azure environment, you need to make sure you have the following information and configurations in place:

    1. All Azure AD joined devices that you want to use with Rotation need to be created and configured within your Azure Active Directory

    2. To successfully configure and setup Rotation within your Azure Network, the following values are needed for your :

    Field
    Description
    1. Make sure all the Azure services or Azure AD joined devices you plan on using for rotation have access to the Azure Active Directory.

    2. Create a custom role to allow application to access/perform actions on various Azure resources. For more information see the document.

    Setup Steps

    At a high level, the following steps are needed to successfully rotate passwords on your Azure network:

    1. Create Shared Folders to hold the PAM records involved in rotation

    2. Create PAM Machine, PAM Database and PAM Directory records representing each resource

    3. Create PAM User records that contain the necessary account credentials for each resource

    4. Link the PAM User record to the PAM Resource record.

    Use Cases:

    Google Cloud

    Password Rotation in the GCP Environment

    Overview

    In this section, you will learn how to rotate user credentials within the Google Cloud environment across various target systems and services.

    KeeperPAM Record Types

    Configurations for your GCP environment are defined in the PAM Configuration section of Keeper Secrets Manager. Keeper will use the inherited service account where the Gateway is installed to authenticate with the GCP system and perform rotation.

    Configurations for managed resources like Compute Engine, Cloud SQL, and Managed Microsoft AD are defined in the , , and record types. The following table shows the supported AWS managed resources with KeeperPAM and their corresponding PAM Record Type:

    Google Managed Resource
    Corresponding Record Type

    Configurations for directory users, database users, or VM users are defined in the record type.

    Prerequisites

    To successfully rotate Compute Cloud Resource User accounts or Google Workspace Principal accounts, the Keeper Gateway needs to have the necessary service account with the permissions for performing the password rotation.

    • See the for more information.

    Setup Steps

    At a high level, the following steps are needed to successfully rotate passwords on your Google Cloud network:

    1. Create Shared Folders to hold the PAM records involved in rotation

    2. Create PAM Machine, PAM Database and PAM Directory records representing each resource

    3. Create PAM User records that contain the necessary account credentials for each resource

    4. Link the PAM User record to the PAM Resource record.

    Use Cases

    Attaching Scripts

    Attaching post-rotation scripts to PAM resource records

    Attaching Post Rotation Scripts

    When creating or editing a PAM record, click on the Add PAM Script button

    Clicking on Add PAM Script will allow you to:

    • Browse locally and choose your Rotation Script(s).

    • Add "Additional Credentials". This is an option to add additional records which contains the credentials needed by the post rotation script. These credentials must be available to the Keeper Gateway.

    • Specify an optional custom command to executed. In the below screenshot, a python script (postRotationTest.py) is attached, and a specific command to be used to execute the python script.

    After successfully selecting the script(s), the record will be updated to show the attached Post Rotation scripts:

    Click Save to create or update the record. Attached Post Rotation Scripts can be deleted or edited by clicking on their respective actions.

    Example: MySQL Database

    Configuring MySQL DB as a PAM Database Record

    Overview

    In this example, you'll learn how to configure a MySQL DB in your Keeper Vault as a PAM Database record.

    Prerequisites

    AWS Environment Setup

    Setting up your AWS environment to work with KeeperPAM

    AWS Environment Overview

    Resources in your AWS environment can be managed by a Keeper Gateway using EC2 instance role policy or using a specified Access Key ID / Secret Access Key configured in the PAM Configuration record.

    The role policy must be configured appropriately to enable access to the target AWS resources:

    Example: Azure Windows VM

    Configuring an Azure Windows VM as a PAM Machine Record

    Overview

    In this example, you'll learn how to configure a Azure Windows VM in your Keeper Vault as a PAM Machine record.

    Prerequisites

    Gateway on Windows

    Instructions for installing Keeper Gateway on Windows

    Overview

    This document contains information on how to install, configure, and update the Keeper Gateway on Windows.

    Enforcement Policies

    Role-based enforcement policy settings for KeeperPAM

    Overview

    Role-based Access Controls (RBAC) provide your organization the ability to define enforcements based on a user's job responsibility as well as provide delegated administrative functions. Prior to proceeding with this guide, familiarize yourself with roles and enforcement policies.

    PAM Machine

    KeeperPAM resource for managing machines on-prem or in the cloud

    Overview

    A PAM Machine record is a type of KeeperPAM resource that represents a workload, such as a Windows or Linux server.

    PAM Record Type
    Supported Assets

    Gateway Security

    Security and encryption model of the Keeper Gateway service

    What is the Keeper Gateway?

    The Keeper Gateway is a service that is installed on-premise in order to execute rotation, discovery and connection tasks. The Keeper Gateway communicates outbound to the Keeper Router using WebSockets and Keeper Secrets Manager .

    Local Environment Setup

    Setting up your Local environment to work with KeeperPAM

    Local Environment Overview

    The PAM Configuration contains critical information on your local infrastructure, settings and associated Keeper Gateway. This guide provides step-by-step instructions for configuring the PAM Configuration in your local environment, enabling the Keeper Gateway to manage all resources within it and allowing users to utilize KeeperPAM features on those resources.

    PAM User

    Record Type Details for PAM User Record Type

    Overview

    A PAM User is a type of KeeperPAM resource that represents an account credential. The PAM User is linked from other resources.

    PAM Record Type
    Supported Account Types

    Connections

    Instantly access your infrastructure with zero-trust security from your Keeper Vault

    What are Keeper Connections?

    Keeper Connections allow users to instantly and securely access assets within their target infrastructure, such as servers, databases, web apps and workloads directly from their Keeper Vault. Connections can be established without exposing the underlying credentials to the user, ensuring zero-trust and zero-knowledge access.

    Keeper Connections are configured on PAM Machine, PAM Database, PAM Directory and PAM Remote Browser record types, and once configured, connections are launched directly from these records.

    One of the key features of Keeper Connections is the agentless and clientless

    curl -fsSL https://keepersecurity.com/pam/install | \
      sudo bash -s -- --token XXXXXX
    /usr/local/bin/keeper-gateway
    gateway -> /usr/local/bin/keeper-gateway
    /etc/keeper-gateway
    sudo systemctl start keeper-gateway
    sudo systemctl restart keeper-gateway
    sudo systemctl stop keeper-gateway
    /etc/keeper-gateway/gateway-config.json
    <User>/.keeper/gateway-config.json
    /var/log/keeper-gateway/
    <User>/.keeper/logs/
    /etc/systemd/system/keeper-gateway.service
    ExecStart=/bin/bash -c "/usr/local/bin/gateway start --service -d --config-file /etc/keeper-gateway/gateway-config.json"
    sudo systemctl daemon-reload
    sudo systemctl restart keeper-gateway
    sudo journalctl -u keeper-gateway.service -f
    curl -fsSL https://keepersecurity.com/pam/install | sudo bash -s --
    curl -fsSL https://keepersecurity.com/pam/uninstall | sudo bash -s --
    secrets-manager app create "My Infrastructure"
    mkdir -uf "My Infrastructure"
    mkdir -sf -a "My Infrastructure/Resources"
    mkdir -sf -a "My Infrastructure/Users"
    secrets-manager share add --app "My Infrastructure" --secret <Resources folder UID>
    secrets-manager share add --app "My Infrastructure" --secret <Users folder UID>
    pam gateway new -n "My Demo Gateway" -a "My Infrastructure"
    pam gateway new -n "My Demo Gateway" -a "My Infrastructure" -c b64
    secrets-manager client add --app "My Infrastructure App" --unlock-ip

    Text

    False

    Specifically designed for WinRM connections using Kerberos authentication. By default, the Gateway automatically decides whether to use Kerberos based on certain rules, and If these conditions are met, the Gateway will attempt to use Kerberos for WinRM. However, if you encounter issues with this automatic detection, setting this field to True will override the default behavior and force the Gateway to use Kerberos for WinRM. Example Value: True

    Private Key Type

    Text

    ssh-rsa

    Gateway Version 1.3.4+ This custom field pertains to the type or algorithm of the private key stored in a record. When adding a private key to a record, users do not need to take any additional action regarding its type or algorithm. The system is designed to automatically recognize and use the same algorithm as the existing private key during the rotation process. If the algorithm in use is ECDSA, the key size will also be preserved during the rotation. Available Options if needed to overwrite the key type: ssh-rsa (Note: 4096 bits)

    ssh-dss (Note: 1024 bit, obsolete) ecdsa-sha2-nistp256

    ecdsa-sha2-nistp384

    ecdsa-sha2-nistp521

    ssh-ed25519

    Private Key Rotate

    Text

    True

    Gateway Version 1.3.4+

    TRUE - (Default) If the custom field doesn't exist, the private key will be rotated if it exists.

    FALSE - The private key won't be rotated, even if it exists. Users should pick this if they wish to retain the private key in the record without any rotations.

    Managed Database
    Authentication of the Gateway

    The Keeper Gateway authenticates first to the Keeper Router using the One Time Access Token provided upon installation of the Gateway service on the target machine. After the first authentication, subsequent API calls to the Router authenticate using a Client Device Identifier (which is the HMAC_SHA512 hash of the One Time Access Token).

    For accessing and decrypting vault records, the Keeper Gateway uses standard Keeper Secrets Manager APIs which perform client-side encryption and decryption of data. The security model of Keeper Secrets Manager ensures least privilege and zero knowledge by allocating only specific folders and records that can be decrypted by the service. API requests to the Keeper Cloud are sent with a Client Device Identifier and a request body that is signed with the Client Device Private Key. The server checks the ECDSA signature of the request for the given Client Device Identifier using the Client Public Key of the device.

    Like any other Secrets Manager device, access can also be restricted based on IP address in addition to the encryption and signing process.

    How does a Gateway fetch instructions?

    Rotations can be performed on-demand or on a schedule. When an on-demand rotation, connection or discovery job is triggered by a user in the Web Vault or Desktop App, the Keeper Router uses the active WebSocket connection to the appropriate Gateway to receive instructions. The messages do not contain any secret information or encrypted ciphertext. All messages sent through the WebSocket contain only the command type (e.g. "rotate") and the affected Record UID ("UID") which is not a secret value.

    For scheduled rotations, the same mechanism is used. Rotation schedules are tracked in the Router, and at the appropriate intervals rotation instructions are pushed to the Gateway. When the Gateway receives a rotation task, it uses the local KSM configuration to fetch the secrets associated with the provided Record UIDs and decrypts the record information locally. These secrets are in turn used to perform the rotation, discovery or connection.

    How is the local KSM Configuration secured?

    When the Gateway service is installed, the local KSM configuration is protected by permissions on the local file system. By default, the configuration will be stored in the home directory (.keeper folder) of the user that installed the Gateway.

    Docker Install

    The Docker installation method passes in the configuration through an environment variable in the Docker Compose file.

    Linux Install

    If Gateway is started as a user:

    • Config file: ~/.keeper/gateway-config.json

    • Logs folder: ~/.keeper/log

    If Gateway is running as a service:

    • User: keeper-gateway-service

    • Config file: /etc/keeper-gateway/gateway-config.json

    • Logs folder: /var/log/keeper-gateway

    Windows Install

    If the Gateway is started via Command Line

    • Logs location: C:\Users\[USER NAME]\.keeper\logs\

    • Config File location: C:\Users\[USER NAME]\.keeper\gateway-config.json

    If Gateway is started as a Windows Service

    • Logs location: C:\ProgramData\KeeperGateway\

    • Config File location: C:\ProgramData\KeeperGatewayPrivate\

      Note: This folder can only be accessed by the user who installed the Gateway Service.

    Access to the KSM configuration file allows a user to retrieve any associated secrets from Keeper. To prevent unauthorized access, this configuration file is only readable by the installing user and administrative accounts. On a Windows server, the Windows System account is used to run the service by default, and also has access to the KSM configuration.

    In AWS environments, the configuration can be protected with the AWS KMS.

    Data Caching

    Caching is used for discovery but not for rotation. Every time a secret is rotated, the Gateway retrieves associated records in real time using the Keeper Secrets Manager APIs.

    The Gateway Shell

    The Gateway includes a virtual command shell. When the Gateway is run as a stand-alone application, the user is dropped into the shell. When the Gateway is run as a service, the shell is not accessible.

    An SSH service is bundled with the Gateway to provide advanced debug access to the shell. The SSH service is not running by default, and there is no way to access the shell while it is disabled. When the Gateway service is started, an optional argument can be supplied to enable the SSH service component. When the SSH service is enabled, by default there are no accounts that can connect to it. A system administrator must create a key pair with an account to utilize SSH.

    The Gateway shell does not provide commands to interact directly with secrets.

    Commander Remote Troubleshooting

    Keeper Commander can also be used to access the Gateway for troubleshooting. This leverages the connection between the Gateway and the Router, and the associated security mechanisms. For example, Commander can send a command to the Router to retrieve a list of running tasks on the Gateway. These commands can be used with any Gateway in the same enterprise as the Commander user.

    Secrets and Logging

    Any secrets that are retrieved during rotation are automatically scrubbed from log messages produced by the Gateway. This includes accidental logging, such as stack traces.

    Post-Rotation Scripts

    Keeper Gateway supports the ability to execute admin-generated scripts in PowerShell and Bash for performing customized behaviors after a successful rotation has taken place. The script is provided to the Gateway through a file attachment in the corresponding Keeper record. Post-Rotation scripts are categorized differently from general file attachments, and only the record owner has the ability to attach post-rotation scripts on the corresponding record.

    The script is decrypted by the Gateway and then executed on the Gateway. Connections to secondary devices, for the purpose of restarting services, etc., must be orchestrated within the post-rotation script.

    Obviously, the script which is uploaded to the Keeper record and executed on the gateway must be protected from malicious abuse. Keeper Administrators need to ensure that least privilege is assigned to the Keeper record.

    When Post-Rotation scripts are run, stdout and stderr output from the script are written to disk in logs. Secrets are also automatically scrubbed from this output. Record UIDs can be logged in this way for diagnostic purposes. The Post-Rotation script can be written with any arbitrary code, however the Keeper Gateway provides the script with minimal information required to perform standard use cases through the command-line parameters. This includes the following parameters:

    • PAM Rotation Record UID (contains environment settings)

    • Resource Record UID (contains target resource data)

    • Account Record UID (the record that was rotated)

    • Old Password (from Account Record)

    • New Password (from Account Record)

    • Username (from Account Record)

    After the command is executed, Keeper Gateway clears the command line history on Linux and Windows instances.

    If a Post-Rotation script requires access to other secrets beyond those passed in automatically, users are strongly encouraged to use the Keeper Secrets Manager SDKs or the Secrets Manager CLI tool.

    zero-knowledge protocols

    Browser Settings (multiple)

    Browser-specific protocol settings

    See RBI page

    session recording

    Assign a Secrets Manager Application to all of the shared folders that hold the PAM records

  • Install a Keeper Gateway and add it to the Secrets Manager application

  • Create a PAM Configuration with the Azure environment setting

  • Configure Rotation settings on the PAM User records

  • Azure AD Domain Services

    PAM Directory

    Virtual Machines

    PAM Machine

    Managed Databases

    PAM Database

    Client ID

    The application/client id (UUID) of the Azure application

    Client Secret

    The client credentials secret for the Azure application

    Subscription ID

    The UUID of your subscription to use Azure services (i.e. Pay-As-You-GO)

    Tenant ID

    The UUID of the Azure Active Directory

    PAM Configuration
    Azure Environment Setup
    Azure AD Users
    Azure VM Local Users
    Azure Managed Database
    Azure App Secret

    Assign a Secrets Manager Application to all of the shared folders that hold the PAM records

  • Install a Keeper Gateway and add it to the Secrets Manager application

  • Create a PAM Configuration with the AWS environment setting

  • Configure Rotation settings on the PAM User records

  • Managed Database

    Compute Engine VM

    PAM Machine

    Cloud SQL Instance

    PAM Database

    Managed Microsoft AD

    PAM Directory

    Google Workspace Principal

    PAM User

    PAM Machine
    PAM Database
    PAM Directory
    PAM User
    Google Cloud environment setup guide
    IAM User Password
    Managed Microsoft AD User
    EC2 Instance local user
    IAM User Access Key

    Click on "Generate Access Token" and then click on "OK"

  • You can safely ignore the first One-Time Access Token generated for the newly created KSM application. When creating a Keeper Gateway device, a different One-Time Access Token will be created.

  • Click on Provision Gateway
  • Select a name for the Gateway and the operating system

  • Follow the on-screen instructions based on the type of install

  • Windows Gateway
    Create a KSM Application
    Prior to proceeding with this guide, make sure you have
    1. Installed and configured the Keeper Gateway

    2. Set up a PAM Configuration for your target Environment

    PAM Database Record

    Databases such as a MySQL DB can be configured on the PAM Database record type.

    Creating a PAM Database

    To create a PAM Database:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

      • Select the Shared Folder you want the record to be created in

      • Specify the Title

      • Select "Database" for the Target

    • Click "Next" and complete all of the required information.

    PAM Database

    Configure a MySQL Database on the PAM Database Record

    Suppose I have a database with the hostname "db-mysql-1", the following table lists all the configurable fields and their respective values:

    Field
    Description
    Value

    Title (Required)

    Title of the PAM Database Record

    Local MySQL Database

    Hostname or IP Address (Required)

    Address or RDP endpoint or Server name of the Database Resource

    db-mysql-1

    Port (Required)

    Port to connect to the Database Resource

    3306

    Use SSL (Required)

    Configuring PAM Settings on the PAM Database

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential. The following table lists all the configurable fields and their respective values for the MySQL Database:

    Field
    Description
    Required

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required - This is the PAM configuration you created in the prerequisites

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required Visit this for more details

    Protocol

    Native database protocol used for connecting from the Gateway to the target

    Required - for this example: "MySQL"

    Session Recording

    Options for recording sessions and typescripts

    See

    Administrative Credential Record

    The Admin Credential Record in the PAM Database links a user to the PAM Database record in your Keeper Vault. This linked user is used for authenticating the connection when clicking "Launch".

    User Accounts are configured on the PAM User record. Visit this page for more information.

    Administrative Credential Record

    Setting a Non Admin User as the Administrative Credential Record

    If you prefer not to authenticate a connection using the admin credential, you can optionally designate a regular user of the resource as the admin credential.

    Sharing PAM Database Records

    PAM Database records can be shared with other Keeper users within your organization. However, the recipient must be assigned to a role with the appropriate PAM enforcement policies in place to utilize KeeperPAM features.

    When sharing a PAM Database record, the linked admin credentials will not be shared. For example, if the PAM Database is configured with a MySQL Database, the recipient can connect to the database without having direct access to the linked credentials.

    • Learn more about Sharing and Access Control

    Sharing PAM Database Records

    Setup Complete

    The MySQL Database record is set up. The user with the ability to launch connections can now launch an interactive MySQL connection or tunnel to the target database.

    MySQL Database Record
    Connection to MySQL Database
    MySQL Interactive Session

    EC2 Role Policy

  • IAM User Policy

  • The following diagram shows the AWS environment hierarchy:

    AWS Rotation Hierarchy

    EC2 IAM Role Policy

    To create a EC2 IAM policy which supports PAM features such as password rotation and discovery, a role with the appropriate policy settings should be configured then attached to the EC2 instance running the Keeper Gateway.

    For KeeperPAM to have the authority to rotate IAM users and RDS databases, the following inline role policy should be modified to meet your needs and ensure least privilege.

    To ensure least privilege, the JSON policy should be modified based on which target resources that KeeperPAM will be managing through the "Action" and "Resource" attributes.

    Follow these steps to create a new role and apply the policy:

    1. Create role with JSON specified above, or click on IAM > Roles > Create Role > Select "AWS Service" with "EC2 use case".

    2. Attach the policy JSON to the role.

    3. From EC2 > Instances, select the instance with the gateway and go to Actions > Security > Modify IAM Role > Select your new role.

    Minimum AWS Policy to Manage IAM users

    Managed User Type
    IAM Policy

    EC2 User

    Rotation uses local credentials and no specific AWS permissions are needed.

    Managed Database

    Rotation uses AWS APIs for PAM Database records and requires: iam:GetUser iam:SimulatePrincipalPolicy rds:ModifyDBInstance rds:DescribeDBInstances

    For managing PAM Database or PAM User Records via SQL no AWS permissions are needed.

    Directory User

    Rotation uses AWS APIs for PAM Directory records and requires:

    iam:SimulatePrincipalPolicy ds:DescribeDirectories ds:ResetUserPassword ds:DescribeLDAPSSettings ds:DescribeDomainControllers

    IAM User

    Rotation uses AWS APIs for PAM User records and requires:

    iam:SimulatePrincipalPolicy iam:UpdateLoginProfile iam:GetUser


    IAM User Policy

    Using EC2 instance role policy is preferred, however the AWS Access Key ID and Secret Access Key can be directly set in the PAM Configuration. The IAM Admin account needs to be created with the appropriate policy settings configured to access the target resource in AWS.

    An sample policy is below.

    To ensure least privilege, the JSON policy should be modified based on which target resources that KeeperPAM will be managing through the "Action" and "Resource" attributes.

    The steps to create the access keys is below:

    1. Create a new IAM user or select an existing user

    2. Attach the policy to the user

    3. Open the IAM user > Security credentials > Create access key

    4. Select "Application running outside AWS"

    5. Save the provided Access Key ID / Secret Access Key into the PAM Configuration

    In addition to these policies, we recommend protecting the Gateway Configuration secrets using the AWS KMS.

    Prior to proceeding with this guide, make sure you have
    1. Installed and configured the Keeper Gateway

    2. Set up a PAM Configuration for your target Environment

    PAM Machine Record

    Machines such as a Azure Virtual Machines can be configured on the PAM Machine record type.

    Creating a PAM Machine

    To create a PAM Database:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

      • Select the Shared Folder you want the record to be created in

      • Specify the Title

      • Select "Machine" for the Target

    • Click "Next" and complete all of the required information.

    Example of Azure Windows VM

    Configure a Windows Machine on the PAM Machine Record

    Suppose I have a Azure Virtual Machine with the hostname "10.0.1.4", the following table lists all the configurable fields and their respective values:

    Field
    Description
    Value

    Title (Required)

    Title of the PAM Machine Record

    Windows VM

    Hostname or IP Address (Required)

    Address or RDP endpoint or Server name of the Machine Resource

    10.0.1.4

    Port (Required)

    Port to connect to the Azure VM for rotation. 22 for SSH, 5986 for WinRM

    5986

    Operating System

    Configuring PAM Settings on the PAM Machine

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential. The following table lists all the configurable fields and their respective values for the Azure Virtual Machine:

    Field
    Description
    Required

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required - This is the PAM configuration you created in the prerequisites

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required Visit this for more details

    Protocol

    Native protocol used for connecting from the Gateway to the target

    Required - for this example: "RDP"

    Session Recording

    Options for recording sessions and typescripts

    See

    Administrative Credential Record

    The Admin Credential Record in the PAM Machine links the admin user to the PAM Machine record in your Keeper Vault. This admin user is used for performing password rotations and authenticating connections.

    User Accounts can be configured on the PAM User record. Visit this page for more information.

    Setting a Non Admin User as the Administrative Credential Record

    If you prefer not to authenticate a connection using the admin credential, you can optionally designate a regular user of the resource as the admin credential.

    Sharing PAM Machine Records

    PAM Machine records can be shared with other Keeper users within your organization. However, the recipient must have the appropriate PAM enforcement policies in place to utilize KeeperPAM features on the shared PAM records.

    When sharing a PAM Machine record, the linked admin credentials will not be shared. For example, if the PAM Machine is configured with a Azure Virtual Machine, the recipient can connect to the Azure Virtual Machine on the PAM Machine record without having direct access to the linked credentials.

    • Learn more about Sharing and Access Control

    Prerequisite

    Prior to proceeding with this document, make sure you created a Gateway device.

    Installation

    The latest Keeper Gateway for Windows is downloaded from here:

    • Download the Keeper Gateway for Windows

    You can run the service under system privilege or use a service account.

    Keeper Gateway for Windows

    New Installs

    Upon installation of the service, select "Enter a Keeper One-Time Access Token" and supply the token provided by when you created a Gateway on the Vault. After installation, the service will automatically start up and register with the Keeper cloud.

    Upgrading

    If you are upgrading an existing Gateway, un-check the "Enter a Keeper One-Time Access Token" so that the existing configuration is maintained.

    Installation Location

    The default installation location is the following:

    Setup Options

    • Install Windows service - Installs the gateway as a Windows service.

      • Use service account - Use the specified service account, otherwise the account installing the gateway will be used.

      • Start Windows service - Start the Keeper Gateway service immediately after installation

      • Enable automatic updates

    • Turn on debug logging - Enable on the gateway log files. NOT recommended for production environments. Only use this when debugging with Keeper support.

    • Remove Keeper Gateway configuration and logs from previous installations

    Specifying the Keeper Gateway Service Account

    If "Use service account" is specified you will be prompted to enter the valid credentials of the desired service account:

    Service Account Setup

    One-Time Access Token

    The final step prior to successfully installing the Keeper Gateway as service is to enter the One-Time Access Token provided from the Keeper Vault.

    After clicking "Next", click "Install" in the next screen to install the Keeper Gateway.

    Gateway Service Management

    After installing and running the Keeper Gateway as a service, this service can be accessed and easily managed within the Windows Services Manager as "Keeper Gateway Service".

    Keeper Gateway Service

    Configuration File

    The Keeper Gateway configuration file contains a set of tokens that includes encryption keys, client identifiers, and tenant server information used to authenticate and decrypt data from the Keeper Secrets Manager APIs. This configuration file is created from the One-Time Access Token generated when you created the Gateway.

    If the Keeper Gateway is installed and running as a service, the gateway configuration file is stored in the following location:

    If the Keeper Gateway is installed locally and not running as a service, the gateway configuration file is stored in the following location:

    Log files

    Logs that contain helpful debugging information are automatically created and stored on the local machine.

    If the gateway is running as a service, the gateway log files are stored in the following location:

    If the gateway is not running as a service, the gateway log files are stored in the following location:

    Verbose Logging

    To activate verbose logging:

    • Go to Windows Services > Keeper Gateway > Properties

    • Stop the service

    • Set the "Start parameters" to: --debug or -d

    • Start the service by clicking on "Start" Do not click "OK" without first starting the service as it will not persist the Parameter setting

    Verbose Logging Mode

    Updating

    To update the Keeper Gateway, stop the service, install the latest version and then start the service.

    • Run the latest Keeper Gateway installer

    • During installation DO NOT select "Enter a Keeper One-Time Access Token".

    Auto Updates

    Select "Enable automatic updates" during the installer process to ensure that your Keeper Gateway is automatically updated when there are new versions available.

    Health Checks

    To monitor the Gateway service, you can configure health checks that expose its operational status. These checks are useful for Docker orchestration, load balancing, and automated monitoring. See the Health Check section for full setup details and examples.


    Silent Install

    This section provides instructions for performing a silent installation of the Keeper Gateway on Windows systems. Silent installation allows the setup process to run in the background without displaying any user interface or messages.

    To install the Keeper Gateway silently, use the following command in your command prompt or script:

    Replace <TOKEN> with the token provided in the Keeper Vault when creating the Keeper Gateway.

    Configuration Options

    If you have previously installed Keeper Gateway and wish to use the existing configuration, you can bypass the token entry by using:

    To generate a log file during the installation process, use the following option and specify the desired log file path:

    Windows Service Account

    If you prefer to run the Keeper Gateway under a specific Windows service account, use the following options to specify the account details:

    Replace <ACCOUNT USERNAME> and <ACCOUNT PASSWORD> with the credentials of the service account you intend to use.

    Auto Updater

    To enable the Auto Updater feature, allowing Keeper Gateway to automatically check for and apply updates, use the following option:

    Uninstalling

    To uninstall the service:

    • Uninstall Keeper Gateway from "Add and remove programs"

    • If desired, delete the private configuration .json file

    Enable PAM Policies

    From the Admin Console, enable the corresponding PAM Enforcement Policies.

    • Login to the Keeper Admin Console for your region.

    • Under Admin > Roles, create a new role for PAM or modify an existing role.

    • Go to Enforcement Policies and open the "Privileged Access Manager" section.

    • Enable all the PAM enforcement policies to use the new features.

    Privileged Access Manager Policies

    Secrets Manager

    Policy
    Definition
    Commander CLI

    Can create applications and manage secrets

    Allow users to create and manage KSM application

    Keeper Gateway

    Policy
    Definition
    Commander CLI

    Can create, deploy, and manage Keeper Gateways

    Allow users to create, setup, and manage Keeper Gateways

    Keeper Rotation

    Policy
    Definition
    Commander CLI

    Can configure rotation settings

    Allow users to configure Rotation settings on PAM User and PAM Configuration Record Types

    Can rotate credentials

    Allow users to rotate credentials on PAM User Record Types

    Keeper Connection Manager (KCM)

    Policy
    Definition
    Commander CLI

    Can configure connection settings

    Allow users to configure Connection and Session Recordings settings on PAM Machine, PAM Directory, PAM Database and PAM Configuration Record Types

    Can launch connections

    Allow users to launch connections on PAM Machine, PAM Directory, PAM Database Record Types

    Can view session recordings

    Allow users to view Session Recordings

    Keeper Tunnels

    Policy
    Definition
    Commander CLI

    Can configure tunnel settings

    Allow users to configure Tunnel settings on PAM Machine, PAM Directory, PAM Database and PAM Configuration Record Types

    Can start tunnels

    Allow users to start tunnels on PAM Machine, PAM Directory, PAM Database Record Types

    Remote Browser Isolation (RBI)

    Policy
    Definition
    Commander CLI

    Can configure remote browsing

    Allow users to configure Remote Browser and Session Recordings settings on PAM Remote Browsing and Configuration Record Types

    Can launch remote browsing

    Allow users to launch remote browsing on PAM Remote Browsing Record Types

    Can view RBI session recordings

    Allow users to view RBI Session Recordings

    Discovery

    Discovery is currently only available on Keeper Commander. The UI is coming soon.

    Policy
    Definition
    Commander CLI

    Can run discovery

    Allow users to run discovery

    Legacy Policies

    These policies are not required moving forward, but they exist for support of legacy features.

    Policy
    Definition
    Commander CLI

    Legacy allow rotation

    Allow users to perform password rotation

    Commander CLI

    The Keeper Commander CLI enterprise-role command can be used to set these policies through automation. The list of policies related to PAM functionality is listed below.

    Features Available

    The PAM Machine resource supports the following features:

    • Password rotation

    • SSH key rotation

    • Zero-trust Connections using RDP, SSH, VNC, K8s and Telnet protocols

    • TCP Tunnels

    • Session recording

    • Sharing access without sharing credentials

    • File transfer through drag-and-drop

    Connecting to the PAM machine requires only that the Keeper Gateway has access to the target machine. The Keeper Vault operates independently and does not require direct connectivity to the machine, leveraging Keeper's zero-trust network access model to securely manage access through the Gateway. See the network architecture diagram for more details.

    Creating a PAM Machine

    Prior to creating a PAM Machine, make sure you have already created a PAM Configuration. The PAM Configuration contains information of your target infrastructure while the PAM Machine contains information of an asset, such as a Windows or Linux server.

    To create a PAM Machine:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

      • Select the Shared Folder you want the record to be created in

      • Specify the Title

      • Select "Machine" for the Target

    • Click "Next" and complete all of the required information.

    Creating a new PAM Machine record

    PAM Machine Record Type Fields

    The following table lists all the configurable fields on the PAM Machine Record Type:

    Field
    Description
    Notes

    Hostname or IP Address

    Address of the machine resource

    Required

    Port

    Port to connect on. The Gateway uses this to determine connection method.

    Required Must be a port for SSH or WinRM

    Keeper expects 22, 5985, 5986, or an alternative port for SSH or WinRM specified in the PAM Configuration port mapping

    Administrative Credentials

    Linked PAM User credential used for connection and administrative operations

    Required Visit this for more details

    PAM settings

    PAM Settings and Administrative Credentials

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential.

    PAM Settings and Administrative Credentials

    PAM Settings

    Field
    Description
    Required

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required

    Protocol

    Native protocol used for connecting the session from the Gateway to the target

    Required

    Session Recording

    Options for recording sessions and typescripts

    See

    PAM Settings for a PAM Machine resource

    Below are a couple examples of PAM Machine records with Connections and Tunnels activated.

    PAM Machine Record - Windows
    PAM Machine Record - Linux

    Examples

    Visit the following pages to set up:

    • Linux Machine

    • Azure Virtual Machine

    PAM Machine

    Windows/macOS/Linux Machines, EC2 Instances, Azure VMs, GCP Compute Engine instances

    Prerequisites

    Prior to proceeding with this guide, make sure to install and configure your Keeper Gateway.

    Creating PAM Configuration

    To create a new PAM Configuration:

    • Login to the Keeper Vault

    • Select Secrets Manager and the "PAM Configurations" tab

    • Click on "New Configuration"

    PAM Configuration Fields - Local Environment

    The following tables provides more details on each configurable fields in the PAM Configuration record for the local environment:

    Field
    Description
    Notes

    Title (Required)

    Name of PAM configuration record

    Ex: Local Configuration

    Environment (Required)

    Your infrastructure's environment

    For this guide, select "Local"

    Gateway (Required)

    The configured gateway

    See for more info

    Application Folder (Required)

    For Discovery, the following fields are required, otherwise they are optional:

    Field
    Description
    Notes

    Network ID

    Unique ID for the network

    This is for the user's reference

    Ex: My Network

    Network CIDR

    Subnet of the IP address

    Ex: 192.168.0.15/24 Refer to for more info.

    PAM Features

    The "PAM Features Allowed" and "Session Recording Types Allowed" sections in the PAM Configuration allow owners to enable or disable KeeperPAM features for resources managed through the PAM configuration:

    Field
    Description

    Rotation

    If enabled, allow rotations on privileged user users managed by this PAM configuration

    Connections

    If enabled, allow connections on resources managed by this PAM configuration

    Remote Browser Isolation (RBI)

    If enabled, allow RBI sessions on resources managed by this PAM configuration

    Tunneling

    If enabled, allow tunnels on resources managed by this PAM configuration

    Graphical Session Recording

    If enabled, visual playback sessions will be recorded for all connections and RBI sessions

    Text Session Recording (TypeScript)

    If enabled, text input and output logs will be logged for all connections and RBI sessions

    Configuring PAM Features on PAM Record Types

    After creating the PAM configuration, visit the following pages to:

    • Configure Rotation

    • Configure Connections

    • Configure RBI

    • Configure Tunnels

    • Configure

    What is a PAM User

    KeeperPAM User records define a specific account inside another PAM resource. PAM Machines, PAM Databases, PAM Directories and PAM Remote Browser records link to a PAM User.

    Features Available

    The PAM User resource supports the following features:

    • On-demand and scheduled password rotation

    • PAM Scripts for privilege automation

    • Persistent sharing to users and teams

    • Sharing with time-limited access

    • Auto-rotation after share revocation

    Creating a PAM User

    Prior to creating a PAM User, make sure you have already created a PAM Configuration and a PAM Resource such as a Machine, Database, Directory or Browser.

    To create a PAM User:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

      • Select the Shared Folder you want the record to be created in

      • Specify the Title

      • Select "User" for the Target

    • Click "Next" and complete all of the required information.

    Creating a PAM User

    PAM User Record Type Fields

    The following table lists all the configurable fields on the PAM Remote Browser Record Type:

    Field
    Description
    Notes

    Login

    Username; exact context and format depends on the associated resource. See below.

    Required Examples: username username@domain DOMAIN\username

    Password

    Password of the user

    Can be rotated

    Private Key

    PEM-encoded SSH Private Key associated with user.

    Can be rotated

    Distinguished Name

    Note (1)

    When connecting to Windows machines that are domain-joined:

    • For domain-joined systems, always use the UPN format ([email protected]) as it is more modern, DNS-reliant, and avoids NetBIOS issues.

    • Reserve DOMAIN\user for older systems or mixed environments where UPN isn't supported.

    Note that Keeper will attempt to login to the remote system using the username exactly as supplied. If authentication fails, Keeper will then attempt to use the below variations:

    • User Principal Name (UPN) format: [email protected]

    • Domain NetBIOS format: COMPANY\admin

    • Shortened UPN format (no TLD): admin@company

    • Domain FQDN with backslash format: company.com\admin

    SSH Key Passphrase

    When the PAM User record is storing an SSH key, the PEM-encoded private key is added to the "Private Key" field. If the SSH key file is encrypted, you can create a custom field with the title of "Passphrase" which stores the SSH key passphrase.

    Field
    Description
    Notes

    Passphrase

    Used to decrypt the SSH Private Key for use in connections.

    Required if the SSH key is encrypted

    Configure rotation settings

    Commander CLI

    The Keeper Commander CLI provides specialized automation tools to create PAM User records, perform rotations, share credentials to team members, and deliver credentials through one-time share links for new employee onboarding.

    References:

    • Commander CLI

    • KeeperPAM Commands

    • Sharing Commands

    • Automation Commands

    PAM User

    Local Windows accounts, Domain accounts, Active Directory users, IAM users, database accounts, SaaS accounts, Linux accounts, SSH Private Keys

    architecture. Organizations need to install only a
    in each managed environment. This streamlined approach simplifies deployment and enhances security by centralizing access management.

    Connection User Interface

    Connections are launched directly from the Vault interface with one click. The connection is established between the Keeper Gateway and the target machine, and the session is visually projected into the Vault where you can interact seamlessly.

    Click "Launch" to open a privileged session.

    Launch Button

    Sessions are opened directly inside the Keeper vault, establishing a zero trust encrypted connection to the target.

    Connecting to a Windows Machine

    Full screen mode and zoom controls are available from the upper right corner of the window.

    Connecting to a Linux Machine

    Connection Dock

    The Connection Dock provides instant switching between active sessions. The dock can be moved to any desired location on the screen.

    Connection Dock

    The dock can be minimized and moved anywhere on the screen.

    Connection Dock Minimized

    How do Keeper Connections Work?

    When launching a connection, the Web and Desktop Vault Client will render a window with the established connection protocol to the specified target defined on the PAM record. This is done by:

    1. The Vault Client communicating with the Keeper Gateway with the relevant connection info through a secure tunnel

    2. The Keeper Gateway then establishes the connection protocol to the target defined on the PAM Record

    3. After establishing the connection, the Keeper Gateway projects the visual session to the Keeper vault client.

    For more information on the architecture, see this page.

    Why Use Keeper Connections?

    IT Admins, DevOps and development teams struggle with protecting access to cloud and on-prem infrastructure to endpoints like remote desktops, Windows machines, Linux Servers, critical web-based apps, Kubernetes clusters and Databases.

    Keeper Connections protects your business, your employees and your customers against data breaches by providing a unified vault for all access and control. Reducing risk and simplifying access are the core tenants of the Keeper platform.

    • Lower complexity: All zero trust access is managed by the Keeper Vault

    • Lower employee risk: No VPNs, No ZTNAs and no Agents

    • Lower supply chain risk: No client-side connection apps

    • Lower attack surface risk: Zero-knowledge encryption and networking

    Keeper Connection Features

    • Support for RDP, SSH, VNC, K8s, telnet remote access protocols

    • Support for MySQL, PostgreSQL, SQL Server database protocols

    • Remote browser isolation (http/https) protocol for web-based apps

    • Drag-and-drop file transfer via SFTP to target machines

    • Session Recording and playback

    • Privileged Session Management

    • Role-Based Access Controls

    To get started with Keeper Connections, proceed to the next section.

    Keeper Gateway

    Auto Updater

    Instructions for installing and configuring the Auto Updater for the Keeper Gateway.

    Overview

    Automatic updates of the Keeper Gateway can be enabled on Linux and Windows installations through Keeper's Auto Updater feature. The Auto Updater makes periodic checks to update your Keeper Gateway to the latest version.

    By default, the Auto Updater is disabled when installing the Keeper Gateway

    We recommend enabling the Auto Updater to ensure you receive the most recent security and functionality enhancements. The Auto Updater verifies all Keeper Gateway downloads by checking the GPG signature of hash value, which are then utilized to checksum each file.

    Auto Updater Installation

    Prerequisites

    • Ensure that you have administrative privileges on the system.

    • Version 1.4.0 or later of Keeper Gateway is required.

    Docker

    On Docker based installations, the best way to update the container is running the below commands from a cron job or your CI/CD tools.

    As an example, create a file called update_gateway.sh that contains:

    Make the script executable:

    Edit the crontab:

    Add a line to schedule the script. For example, to run it every day at 3 AM:

    Linux

    New Gateway

    Execute the following command to download and run the KeeperPAM installer with auto update enabled.

    The --autoupdate parameter activates the auto updater in addition to the Keeper Gateway.

    Existing Keeper Gateway

    Activate the Auto Updater on an existing installation by executing the following Keeper Gateway command:

    Verify Installation (Optional)

    Verify that the Auto Updater has been installed successfully by executing the following Keeper Gateway command:

    Windows

    New Gateway

    • Download and run the latest version of the Gateway installer.

    • During installation, check the box "Enable automatic updates".

    • This setup option will create a new Task Scheduler task for updating the Gateway.

    Existing Gateway

    • Open a command prompt as Administrator.

    • Install Auto Updater with the following Keeper Gateway command:

    Verify Installation (Optional)

    • Open a command prompt as Administrator.

    • Verify that Auto Updater has been installed successfully by executing the following Keeper Gateway command:

    Auto Updater Status

    Prerequisites

    • Ensure that you have administrative privileges on the system.

    • Version 1.4.0 or later of Keeper Gateway is required.

    Status on Linux

    Check the Auto Updater status by executing the following Keeper Gateway command:

    Status on Windows

    • Open a command prompt as Administrator

    • Check the Auto Updater status by executing the following Keeper Gateway command:

    Auto Updater Configuration

    Configuration on Linux

    Edit the crontab that runs Auto Updater.

    Here is an example of the default crontab entry that checks for updates every hour:

    • The first part 0 * * * * is the crontab expression which will cause execution to occur every hour at 0 minutes.

    • The second part is the update command keeper-gateway-update

    • The option --trust causes explicit trust of the Keeper Gateway GPG public key for verification of downloaded install files.

    Configuration on Windows

    Configure the update frequency and other settings with the following steps:

    • Run taskschd.msc to open Windows Task Scheduler.

    • In the left pane double-click on Task Scheduler Library -> Keeper -> Gateway -> AutoUpdate to show the Auto Updater Task.

    • In the upper middle pane double-click on the AutoUpdate Task with the name of the current version and click on the Triggers menu tab.

    • Click Edit... to change when the Auto Updater checks for a new update to install. The default is to "Repeat task every 1 hour indefinitely" as shown below.

    Auto Updater Removal

    Prerequisites

    • Ensure that you have administrative privileges on the system.

    • Version 1.4.0 or later of Keeper Gateway is required.

    Removal on Linux

    Remove Auto Updater by executing the following Keeper Gateway command:

    Removal on Windows

    Remove Auto Updater with the following steps:

    • Open a command prompt as Administrator.

    • Remove Auto Updater with the following Keeper Gateway command:

    Troubleshooting

    Check the status of the Auto Update

    Logging in the Gateway Auto Updater

    To assist with diagnosing issues or monitoring the status of updates, the Gateway Auto Updater generates two types of logs. These logs are subject to rotation policies to avoid overuse of disk space.

    Linux

    Log Location

    All log files for Linux are located in /var/log/keeper-gateway

    Log Files

    • Update Logs: Any logs generated during an update will be timestamped and stored as update_YYYY-MM-DD_HH-MM-SS.log.

    • Last Update Check: The file last-update-check.log contains information regarding the most recent check for updates.

    Windows

    Log Location

    The log files for the Gateway Auto Updater are located in \ProgramData\KeeperGateway\install

    Log Files

    • Update Logs: Any logs generated during an update will be timestamped and stored as YYYY-MM-DD_HH-MM-SS.log

    • Last Update Check: The file last-update-check.log contains information regarding the most recent check for updates.

    Example: Microsoft SQL Server Database

    Configuring Microsoft SQL Server DB as a PAM Database Record

    Overview

    In this example, you'll learn how to configure a Microsoft SQL Server DB in your Keeper Vault as a PAM Database record.

    Prerequisites

    Prior to proceeding with this guide, make sure you have

    PAM Database Record

    Databases such as a Microsoft SQL Server DB can be configured on the PAM Database record type.

    Creating a PAM Database

    To create a PAM Database:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

    Configure a Microsoft SQL Server Database on the PAM Database Record

    Suppose I have a database with the hostname "db-mssql-1", the following table lists all the configurable fields and their respective values:

    Field
    Description
    Value

    Configuring PAM Settings on the PAM Database

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential. The following table lists all the configurable fields and their respective values for the Microsoft SQL Database:

    Field
    Description
    Required

    Administrative Credential Record

    The Admin Credential Record in the PAM Database links a user to the PAM Database record in your Keeper Vault. This linked user is used for authenticating the connection when clicking "Launch".

    User Accounts are configured on the PAM User record. Visit this for more information.

    Setting a Non Admin User as the Administrative Credential Record

    If you prefer not to authenticate a connection using the admin credential, you can optionally designate a regular user of the resource as the admin credential.

    Sharing PAM Database Records

    PAM Database records can be shared with other Keeper users within your organization. However, the recipient must be assigned to a role with the appropriate PAM enforcement policies in place to utilize KeeperPAM features.

    When sharing a PAM Database record, the linked admin credentials will not be shared. For example, if the PAM Database is configured with a Microsoft SQL Database, the recipient can connect to the database without having direct access to the linked credentials.

    • Learn more about

    Setup Complete

    The Microsoft SQL Database record is set up. The user with the ability to launch connections can now launch an interactive SQL connection or tunnel to the target database.

    Native PostgreSQL

    Rotating Local Network PostgreSQL database accounts with Keeper Rotation

    Overview

    In this guide, you'll learn how to rotate Local Postgres Database User and/or Admin accounts within your local network using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this page.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate to your Postgres database

    1. Set up a PAM Database Record

    Keeper Rotation will use an admin credential linked to the PAM Database to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    The following table lists all the required fields that needs to be filled on the PAM Database Record with your information:

    Field
    Description

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    3. Set up one or more PAM user records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your Local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Example: PostgreSQL Database

    Configuring PostgreSQL DB as a PAM Database Record

    Overview

    In this example, you'll learn how to configure a PostgreSQL DB in your Keeper Vault as a PAM Database record.

    Prerequisites

    Prior to proceeding with this guide, make sure you have

    PAM Database Record

    Databases such as a PostgreSQL DB can be configured on the PAM Database record type.

    Creating a PAM Database

    To create a PAM Database:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

    Configure a PostgreSQL Database on the PAM Database Record

    Suppose I have a database with the hostname "db-postgres-1", the following table lists all the configurable fields and their respective values:

    Field
    Description
    Value

    Configuring PAM Settings on the PAM Database

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential. The following table lists all the configurable fields and their respective values for the PostgreSQL Database:

    Field
    Description
    Required

    Administrative Credential Record

    The Admin Credential Record in the PAM Database links a user to the PAM Database record in your Keeper Vault. This linked user is used for authenticating the connection when clicking "Launch".

    User Accounts are configured on the PAM User record. Visit this for more information.

    Setting a Non Admin User as the Administrative Credential Record

    If you prefer not to authenticate a connection using the admin credential, you can optionally designate a regular user of the resource as the admin credential.

    Sharing PAM Database Records

    PAM Database records can be shared with other Keeper users within your organization. However, the recipient must be assigned to a role with the appropriate PAM enforcement policies in place to utilize KeeperPAM features.

    When sharing a PAM Database record, the linked admin credentials will not be shared. For example, if the PAM Database is configured with a PostgreSQL Database, the recipient can connect to the database without having direct access to the linked credentials.

    • Learn more about

    Setup Complete

    The PostgreSQL Database record is set up. The user with the ability to launch connections can now launch an interactive PostgreSQL connection or tunnel to the target database.

    Linux User

    Rotating Linux User Accounts on Local Network

    Overview

    In this guide, you'll learn how to rotate Linux user accounts within your local network using Keeper Rotation, including both password-based and SSH Key-based credentials. For a high-level overview on the rotation process in the local network, visit this page.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate via to your Linux Machine(s)

    1. Set up a PAM Machine Record

    Keeper Rotation will use an admin credential to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    In this guide, we will store the admin credentials in a PAM Machine Record.

    The following table lists all the required fields that needs to be filled on the PAM Machine Record with your information:

    Field
    Description

    The linked PAM User record with the admin credential needs to be in a shared folder that is accessible to the Keeper Gateway.

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    3. Set up one or more PAM User records

    Keeper Rotation will use the credentials in the PAM Machine record to rotate the PAM User records on your Local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Machine credential setup from Step 1.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    PAM Database

    KeeperPAM resource for managing databases either on-prem or in the cloud

    Overview

    In your Keeper Vault, the following assets can be configured on the PAM Database record type:

    PAM Record Type
    Supported Assets

    PAM Database

    This guide will cover the PAM Database Record type in more details.

    Features Available

    The PAM Database resource supports the following features:

    • Password rotation

    • Zero-trust Connections

    • TCP Tunnels

    • Graphical session recording

    Connecting to the PAM database requires only that the Keeper Gateway has access to the database either through native protocols or AWS/Azure APIs. The Keeper Vault operates independently and does not require direct connectivity to the database, leveraging Keeper's zero-trust network access model to securely manage access through the Gateway. See the for more details.

    Creating a PAM Database

    Prior to creating a PAM Database, make sure you have already created a PAM Configuration. The PAM Configuration contains information of your target infrastructure while the PAM Database contains information about the target database, such as the hostname, type (MySQL, PostgreSQL, etc) and port number.

    To create a PAM Database:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

    PAM Database Record Type Fields

    The following table lists all the configurable fields on the PAM Database Record Type:

    Field
    Description
    Notes

    PAM Settings and Administrative Credentials

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential.

    PAM Settings

    Field
    Description
    Required

    Below is an example of a PAM Database record with Connections and Tunnels activated.

    Examples

    Visit the following pages to set up:

    PAM Directory

    KeeperPAM resource for managing directory services, either on-prem or in the cloud

    Overview

    A PAM Directory record is a type of KeeperPAM resource that represents an Active Directory or OpenLDAP service, either on-prem or hosted in the cloud.

    PAM Record Type
    Supported Assets

    Features Available

    The PAM Machine resource supports the following features:

    • Password rotation using either LDAP, LDAPS or WinRM

    • Connections using RDP

    • TCP Tunnels over any protocol

    • Session recording and playback

    Connecting to the PAM Directory requires only that the Keeper Gateway has access to the target directory service. The Keeper Vault operates independently and does not require direct connectivity to the service, leveraging Keeper's zero-trust network access model to securely manage access through the Gateway. See the for more details.

    Creating a PAM Directory

    Prior to creating a PAM Directory Record type, make sure you have already created a PAM Configuration. The PAM Configuration contains information of your target infrastructure while the PAM Directory contains information of an asset, such as a Active Directory server, within that target infrastructure.

    To create a PAM Directory:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

    PAM Directory Record Type Fields

    The following table lists all the configurable fields on the PAM Directory Record Type:

    Field
    Description
    Notes

    PAM Settings and Administrative Credentials

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential.

    PAM Settings

    Field
    Description
    Required

    Note: PAM User is only required to successfully configure connections and rotation, and not required for Tunnels.

    Configuration Steps:

    1. On the PAM Database record, navigate to the PAM Settings section

    2. Select the PAM Configuration and Administrative Credential Record

    3. To configure Keeper Connections and Keeper Tunnels settings, visit the following page:

    The following screenshot is a PAM Directory Record with LDAPS rotation, RDP connections and LDAPS tunnels enabled:

    Example: Linux Machine

    Configuring SSH Server as a PAM Machine Record

    Overview

    In this example, you'll learn how to configure a Linux Machine in your Keeper Vault as a PAM Machine record.

    Prerequisites

    Prior to proceeding with this guide, make sure you have

    PAM Machine Record

    Machines such as a Linux Machines can be configured on the PAM Machine record type.

    Creating a PAM Machine

    To create a PAM Database:

    • Click on Create New

    • Depending on your use case, click on "Rotation", "Tunnel", or "Connection"

    • On the prompted window:

      • Select "New Record"

    Configure a Linux Machine on the PAM Machine Record

    Suppose I have a local Linux Virtual Machine with the hostname "linux-machine", the following table lists all the configurable fields and their respective values:

    Field
    Description
    Value

    Configuring PAM Settings on the PAM Machine

    On the "PAM Settings" section of the vault record, you can configure the KeeperPAM Connection and Tunnel settings and link a PAM User credential for performing rotations and connections. Tunnels do not require a linked credential. The following table lists all the configurable fields and their respective values for the Linux Machine:

    Field
    Description
    Required

    Administrative Credential Record

    The Admin Credential Record in the PAM Machine links the admin user to the PAM Machine record in your Keeper Vault. This admin user is used for performing password rotations and authenticating connections.

    User Accounts can be configured on the PAM User record. Visit this for more information on the PAM User.

    Setting a Non Admin User as the Administrative Credential Record

    If you prefer not to authenticate a connection using the admin credential, you can optionally designate a regular user of the resource as the admin credential.

    Sharing PAM Machine Records

    PAM Machine records can be shared with other Keeper users within your organization. However, the recipient must have the in place to utilize KeeperPAM features on the shared PAM records.

    When sharing a PAM Machine record, the linked admin credentials will not be shared. For example, if the PAM Machine is configured with a Linux Machine, the recipient can connect to the Linux Machine on the PAM Machine record without having direct access to the linked credentials.

    • Learn more about

    Azure Environment Setup

    Setting up your Azure environment to work with KeeperPAM

    Azure Environment Overview

    Resources in your Azure environment can be managed by a Keeper Gateway using Azure App policies and client IDs configured in the PAM Configuration record.

    In order to set up your Azure environment, the following steps must be taken:

    Vault Structure

    Understanding the Keeper Vault structure and organization for KeeperPAM

    Overview

    In a customer's environment, the Keeper Vault is deployed to all users within the organization across all devices. The Vault is accessible through any web browser, and also available as a native desktop application for Windows, macOS and Linux. Accessing the Keeper vault is the foundation of the KeeperPAM platform, since the vault is deployed to all users, enforces MFA, SSO and implements a zero-knowledge encryption model.

    When the Role-based Enforcement Policies are activated from the Keeper Admin Console, those designated users can work with KeeperPAM functionality directly with the vault.

    Native MS SQL Server

    Rotating Local Network Microsoft SQL Server database accounts with Keeper Rotation

    Overview

    In this guide, you'll learn how to rotate Local MS SQL Server Database User and/or Admin accounts within your local network using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this .

    Rotation Use Cases

    Step by step guides for performing rotation on any target system

    The setup and configuration of Keeper Rotation is defined by the use case. Keeper supports any cloud or on-prem environment.

    Windows User

    Rotating Windows User Accounts on Local Network

    Overview

    In this guide, you'll learn how to rotate Windows user accounts within your local network using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this .

    Native MongoDB

    Rotating Local Network MongoDB database accounts with Keeper Rotation

    Overview

    In this guide, you'll learn how to rotate Local MongoDB User and/or Admin accounts within your local network using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this .

    Native MySQL

    Rotating Local Network MySQL database accounts with Keeper Rotation

    Overview

    In this guide, you'll learn how to rotate Local MySQL Database User and/or Admin accounts within your local network using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this .

    IAM User Password

    Rotating AWS IAM account passwords with Keeper

    Overview

    In this guide, you will learn how to rotate passwords for AWS IAM users. In Keeper, the PAM Configuration contains all of the information needed to rotate passwords. The record containing the AWS IAM user accounts to be rotated are stored in the PAM User record.

    AWS RDS for MySQL

    Rotating Admin/Regular AWS SQL Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for AWS MySQL Database User and Admin accounts on your AWS environment using Keeper Rotation. RDS for MySQL is an AWS managed resource where the MySQL Admin Credentials are defined in the PAM Database record type and the configurations of the MySQL Users are defined in the PAM User record type.

    For Amazon RDS, the AWS SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    AWS RDS for MariaDB

    Rotating Admin/Regular AWS MariaDB Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for AWS MariaDB Database User and Admin accounts on your AWS environment using Keeper Rotation. RDS for MariaDB is an AWS managed resource where the MariaDB Admin Credentials are defined in the PAM Database record type and the configurations of the MySQL Users are defined in the PAM User record type.

    For Amazon RDS, the AWS SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Cloud SQL for MySQL

    Rotating Admin/Regular AWS SQL Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for Google Cloud MySQL Database User and Admin accounts on your GCP environment using Keeper Rotation. Cloud SQL for MySQL is an GCP managed resource where the MySQL Admin Credentials are defined in the PAM Database record type and the configurations of the MySQL Users are defined in the PAM User record type.

    To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    GCP Principal User Password

    Rotating Google Workspace user account passwords with Keeper

    Overview

    In this guide, you will learn how to rotate passwords for Google Workspace users. In Keeper, the PAM Configuration contains all of the information needed to rotate passwords. The record containing the Google Principal user accounts to be rotated are stored in the PAM User record.

    Azure AD Users

    Rotating Azure AD Admin and User passwords with Keeper

    Overview

    In this guide, you will learn how to rotate passwords for Azure AD users. In Keeper, the contains all of the information needed to rotate passwords. The record containing the Azure AD user accounts to be rotated are stored in the PAM User record.

    The Keeper Gateway uses Azure APIs to rotate the credentials defined in the PAM User records.

    Google Compute Virtual Machine User

    Rotating Google Compute Virtual Machine accounts with Keeper

    In this guide, you will learn how to rotate Google Compute Virtual Machine (VM) Accounts on your Google Cloud Environment using Keeper Rotation. The Compute VM is an GCP managed resource where the Google Compute VM Admin Credentials are linked to the PAM Machine record and the identity of the Google Compute VM Users are defined in the PAM User record type.

    For Google Compute VM Accounts, normal operating system commands are used to change the password. Keeper will connect to the target machine and send command-line commands to change the password.

    Prerequisites

    Native MariaDB

    Rotating Local Network MariaDB database accounts with Keeper Rotation

    Overview

    In this guide, you'll learn how to rotate Local MariaDB User and/or Admin accounts within your local network using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this .

    Inputs and Outputs

    Description of the input parameters passed into PAM Scripts

    Overview

    Upon successful rotation of credentials on a PAM record, Keeper executes the attached Post-Rotation scripts with parameters containing information on the involved records, credentials, and user.

    Service Management

    Managing the credentials of Windows services and scheduled tasks

    Overview

    KeeperPAM Password Rotation is able to automatically manage the "log on" credentials for Windows services and scheduled tasks.

    When rotation is performed for a specific PAM User record, the Keeper Gateway will update the credentials for all services and scheduled tasks on the associated PAM Machine, and restart the services. One PAM User record can be associated to any number of PAM Machine records, allowing you to update the services and scheduled tasks across a fleet of servers.

    Post-Rotation Scripts

    Perform privileged automation tasks with Post-Rotation scripts and password rotation

    Overview

    Post-rotation scripts (PAM Scripts) are user-defined software programs that can perform privilege automation tasks. Scripts can be attached to any PAM resource records in the vault. Depending on the PAM record the script is attached to, the script will execute either on the Keeper Gateway, or the remote host where password rotation occurred.

    The following table shows all the available PAM Records and where the attached script will execute:

    Record Type
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:SimulatePrincipalPolicy",
                    "ec2:DescribeInstances",
                    "rds:DescribeDBInstances",
                    "ds:DescribeDirectories",
                    "iam:ListUsers",
                    "iam:GetUser",
                    "iam:ListAccessKeys",
                    "iam:UpdateLoginProfile",
                    "rds:ModifyDBInstance",
                    "ds:ResetUserPassword",
                    "ds:DescribeLDAPSSettings",
                    "ds:DescribeDomainControllers"
                ],
                "Resource": "*"
            }
        ]
    }
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:SimulatePrincipalPolicy",
                    "ec2:DescribeInstances",
                    "rds:DescribeDBInstances",
                    "ds:DescribeDirectories",
                    "iam:ListUsers",
                    "iam:GetUser",
                    "iam:ListAccessKeys",
                    "iam:UpdateLoginProfile",
                    "rds:ModifyDBInstance",
                    "ds:ResetUserPassword",
                    "ds:DescribeLDAPSSettings",
                    "ds:DescribeDomainControllers"
                ],
                "Resource": "*"
            }
        ]
    }
    C:\ProgramFiles (x86)\Keeper Gateway\<version>
    C:\ProgramData\KeeperGateway\config\gateway-config.json
    C:\Users\<User>\.keeper\gateway-config.json
    C:\ProgramData\KeeperGateway\logs\
    C:\Users\<User>\.keeper\logs\
    keeper-gateway_windows_x86_64.exe /verysilent /suppressmsgboxes /norestart /token=<TOKEN>
    /existingconfig=1
    /log=<Optional log file>
    /mergetasks="service/account" /serviceuser=<ACCOUNT USERNAME> /servicepass=<ACCOUNT PASSWORD>
    /autoupdate=1
    enterprise-role ROLE_ID --enforcement "ALLOW_SECRETS_MANAGER:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_PAM_ROTATION:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_PAM_DISCOVERY:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_PAM_GATEWAY:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_CONFIGURE_ROTATION_SETTINGS:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_ROTATE_CREDENTIALS:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_CONFIGURE_PAM_CLOUD_CONNECTION_SETTINGS:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_LAUNCH_PAM_ON_CLOUD_CONNECTION:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_CONFIGURE_PAM_TUNNELING_SETTINGS:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_LAUNCH_PAM_TUNNELS:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_LAUNCH_RBI:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_CONFIGURE_RBI:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_VIEW_KCM_RECORDINGS:True"
    enterprise-role ROLE_ID --enforcement "ALLOW_VIEW_RBI_RECORDINGS:True"

    The shared folder where the PAM Configuration data will be stored

    Best practice is to create a folder with limited access to admins. See Security Note (1) below

    PAM Settings (Required)

    List of Zero-Trust KeeperPAM features that should be enabled

    See this section for more info

    Default Rotation Schedule

    Specify frequency of Rotation

    Ex: Daily

    Port Mapping

    Define alternative default ports

    Ex: 3307=mysql See port mapping docs

    Discovery
    docs
    this

    Check to perform SSL verification before connecting, if your database has SSL configured

    Enabled

    Database ID

    Azure or AWS Resource ID (if applicable)

    Required if a managed AWS or Azure Database

    Database Type

    Appropriate database type from supported databases.

    mysql

    Provider Group

    Azure or AWS Provider Group

    Required if a managed AWS or Azure Database

    Provider Region

    Azure or AWS Provider Region

    Required if a managed AWS or Azure Database

    Connection Parameters

    Connection-specific protocol settings which can vary based on the protocol type

    See this section for MySQL protocol settings We recommend specifying the Connection Port at a minimum. E.g. "3306" for MySQL.

    section
    session recording

    The target's Operating System

    Set to: Windows

    Instance Name

    Azure or AWS Instance Name

    Required if AWS/Azure Machine webserver-prod-01

    Instance ID

    Azure or AWS Instance ID

    Required if AWS/Azure Machine

    Provider Group

    Azure or AWS Provider Group

    Required if a managed Azure Machine

    Provider Region

    Azure or AWS Provider Region

    Required if a managed AWS Machine

    Connection Parameters

    Connection-specific protocol settings which can vary based on the protocol type

    See this section for RDP protocol settings We recommend specifying the Connection Port at a minimum. E.g. "3389" for RDP.

    section
    session recording

    This is where you configure Connection and Tunnel settings for this machine.

    Required Visit this section for more details

    Operating System

    The target's Operating System

    For your reference only

    SSL Verification

    When checked, verifies certificate of host when connecting with SSH

    Only applies to certain databases and directories where SSL is optional

    Instance Name

    Azure or AWS Instance Name

    Required if AWS/Azure Machine

    Instance Id

    Azure or AWS Instance ID

    Required if AWS/Azure Machine

    Provider Group

    Provider Group for directories hosted in Azure

    Required if Azure Machine

    Provider Region

    AWS region of hosted directory

    Required if AWS Machine

    Connection Parameters (multiple)

    Connection-specific protocol settings which can vary based on the protocol type

    Depends on protocol. We recommend specifying the Connection Port at a minimum.

    section
    session recording

    When sharing a KSM application with other users, the following permissions can be assigned:

    Permission
    Description

    Member

    Can view the application and use the gateways associated with the application

    Sharing Implications

    Shared Folders

    Shared folders assigned to a KSM application are accessible by the devices and gateways associated with the application. When sharing a KSM application with another user, if the user does not already have access to the shared folders associated with the application, those folders will be automatically shared with the user.

    The level of access the user receives to these shared folders depends on their assigned role in the application:

    • If the user is added as a "Member":

      • The user receives the "No User Permissions" shared folder permissions

    If the user already had access to any of the shared folders before being added to the KSM application, their existing folder permissions remain unchanged and are not overwritten.

    Records

    Records can be directly assigned to a KSM application via Keeper Commander secrets-manager app share command.

    When sharing a KSM application with another user, if the user does not already have access to the records associated with the application, those records will be automatically shared with the user. The level of access the user receives to these records is "View Only".

    Note: Adding individual records to a KSM application requires using Keeper Commander.

    Removing a user from the KSM application

    Removing a user from the KSM application does not revoke their permissions from the shared folders. Folder access must be manually removed if desired.

    Optional database that will be used when connecting to the database server. For example, PostgreSQL requires a database and so this will default to template1.

    Database Type

    postgresql or postgresql-flexible

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Title

    Keeper record title Ex: dbadmin

    Hostname or IP Address

    Server address - doesn't need to be publicly routable

    Port

    For default ports, see port mapping Ex: postgresql=5432

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    Linked PAM User record that contains the username and password of the Admin account which will perform the rotation.

    Title

    Configuration name, example: Postgresql LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your PostgreSQL database

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the db account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example: PostgreSQL requires a database and so this will default to template1.

    role
    role
    application
    gateway

    Connect Database

    Text session recording (Typescript)
  • Sharing access without sharing credentials

  • Select the Shared Folder you want the record to be created in

  • Specify the Title

  • Select "Database" for the Target

  • Click "Next" and complete all of the required information.

  • Database name to connect to

    Required for connecting to PostgreSQL, MongoDB, and MS SQL Server

    Database Id

    Azure or AWS Resource ID

    Required if a managed AWS or Azure Database

    Database Type

    Appropriate database type from supported databases.

    If a non-standard port is provided, the Database Type will be used to determine connection method.

    Provider Group

    Azure or AWS Provider Group

    Required if a managed AWS or Azure Database

    Provider Region

    Azure or AWS Provider Region

    Required if a managed AWS or Azure Database

    Connection Parameters (multiple)

    Connection-specific protocol settings which can vary based on the protocol type

    Depends on protocol

    MySQL, PostgreSQL, SQL Server, MongoDB, MariaDB, Oracle

    Hostname or IP Address

    Address of the Database Resource

    Required

    Port

    Port to connect to the Database Resource

    Required Standard ports are: PostgreSQL: 5432 MySQL: 3306 Maria DB: 3306 Microsoft SQL: 1433 Oracle: 1521 Mongo DB: 27017

    Use SSL

    Use SSL when connecting

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required Visit this section for more details

    Protocol

    Native database protocol used for connecting from the Gateway to the target

    Required

    Session Recording

    Options for recording sessions and typescripts

    See session recording

    network architecture diagram
    MySQL Database
    PostgreSQL Database
    Microsoft SQL Server Database
    Create a PAM Database
    PAM Settings and Administrative Credentials
    PAM Settings on Database resource
    PAM Database with Connections and Tunnels activated

    Connect Database

    Sharing access without sharing credentials

    Select the Shared Folder you want the record to be created in

  • Specify the Title

  • Select "Directory" for the Target

  • Click "Next" and complete all of the required information.

  • Newline separated

    Directory ID

    Instance ID for AD resource in Azure and AWS hosted environments

    Required if Azure Active Directory or AWS Directory Service AWS Example: "d-9a423d0d3b'

    Directory Type

    Directory type, used for formatting of messaging

    Required Must be Active Directory or OpenLDAP

    User Match

    Match on OU to filter found users during Discovery

    Optional Either match the right side of the DN or surround with slashes for a regular expression. Example: OU=Users,DC=company,DC=com

    Example: /OU=Users/

    Domain Name

    domain managed by the directory

    Required Example: some.company.com

    Provider Group

    Provider Group for directories hosted in Azure

    Required for directories hosted in Azure

    Provider Region

    AWS region of hosted directory

    Required for directories hosted in AWS Example: us-east-2

    Connection Parameters (multiple)

    Connection-specific protocol settings which can vary based on the protocol type

    Depends on protocol. We recommend specifying the Connection Port at a minimum.

    Keeper Tunnels

    PAM Directory

    Active Directory, OpenLDAP

    Hostname or IP Address

    Address of the directory resource

    Required

    Port

    Port to connect on

    Required Typically 389 or 636 (LDAP/LDAPS) Active Directory only supports 636

    Use SSL

    Use SSL when connecting

    Required for Active Directory

    Alternative IPs

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required

    Protocol

    Native protocol used for connecting the session from the Gateway to the target

    Required

    Session Recording

    Options for recording sessions and typescripts

    See session recording

    network architecture diagram
    Keeper Connections
    Creating a PAM Directory
    PAM Settings
    PAM Settings
    PAM Directory with Connection, Rotation and Tunnel Enabled

    List of failover IPs for the directory, used for Discovery

    Windows Automatic Updates
    #!/bin/bash
    set -e  # Exit immediately if a command fails
    
    # Navigate to the directory containing your docker-compose.yml file
    cd /path/to/your/docker-compose-directory
    
    # Pull the latest image and update the Gateway container
    docker compose pull
    docker compose up -d keeper-gateway
    chmod +x update_gateway.sh
    crontab -e
    0 3 * * * /path/to/update_gateway.sh >> /var/log/update_gateway.log 2>&1
    curl -fsSL https://keepersecurity.com/pam/install | \
      sudo bash -s -- --autoupdate
    sudo keeper-gateway autoupdate enable
    sudo keeper-gateway autoupdate status
    keeper-gateway autoupdate enable
    keeper-gateway autoupdate status
    sudo keeper-gateway autoupdate status
    keeper-gateway autoupdate status
    sudo crontab -e
    0 * * * * /usr/local/bin/keeper-gateway-update --trust
    sudo keeper-gateway autoupdate disable
    keeper-gateway autoupdate disable
    keeper-gateway autoupdate status
    ALLOW_SECRETS_MANAGER
    ALLOW_PAM_GATEWAY
    ALLOW_CONFIGURE_ROTATION_SETTINGS
    ALLOW_ROTATE_CREDENTIALS
    ALLOW_CONFIGURE_PAM_CLOUD_CONNECTION_SETTINGS
    ALLOW_LAUNCH_PAM_ON_CLOUD_CONNECTION
    ALLOW_VIEW_KCM_RECORDINGS
    ALLOW_CONFIGURE_PAM_TUNNELING_SETTINGS
    ALLOW_LAUNCH_PAM_TUNNELS
    ALLOW_CONFIGURE_RBI
    ALLOW_LAUNCH_RBI
    ALLOW_VIEW_RBI_RECORDINGS
    ALLOW_PAM_DISCOVERY
    ALLOW_PAM_ROTATION

    Select the Shared Folder you want the record to be created in

  • Specify the Title

  • Select "Database" for the Target

  • Click "Next" and complete all of the required information.

  • Enabled

    Database ID

    Azure or AWS Resource ID (if applicable)

    Required if a managed AWS or Azure Database

    Database Type

    Appropriate database type from supported databases.

    mssql

    Provider Group

    Azure or AWS Provider Group

    Required if a managed AWS or Azure Database

    Provider Region

    Azure or AWS Provider Region

    Required if a managed AWS or Azure Database

    Connection Parameters

    Connection-specific protocol settings which can vary based on the protocol type

    See this for SQL Server protocol settings We recommend specifying the Connection Port at a minimum. E.g. "1433" for SQL Server.

    Title (Required)

    Title of the PAM Database Record

    Local SQL Database

    Hostname or IP Address (Required)

    Address or RDP endpoint or Server name of the Database Resource

    db-mssql-1

    Port (Required)

    Port to connect to the Database Resource

    1433

    Use SSL (Required)

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required - This is the PAM configuration you created in the prerequisites

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required Visit this section for more details

    Protocol

    Native database protocol used for connecting from the Gateway to the target

    Required - for this example: "SQL Server"

    Session Recording

    Options for recording sessions and typescripts

    See session recording

    Installed and configured the Keeper Gateway
    Set up a PAM Configuration for your target Environment
    page
    Sharing and Access Control
    SQL Server PAM Database Record
    Administrative Credential Record
    Sharing PAM Database Records
    Microsoft SQL Server Database
    Connection to a Microsoft SQL Database
    Interactive Session with Microsoft SQL Database

    Check to perform SSL verification before connecting, if your database has SSL configured

    Select the Shared Folder you want the record to be created in

  • Specify the Title

  • Select "Database" for the Target

  • Click "Next" and complete all of the required information.

  • Enabled

    Database ID

    Azure or AWS Resource ID (if applicable)

    Required if a managed AWS or Azure Database

    Database Type

    Appropriate database type from supported databases.

    postgresql

    Provider Group

    Azure or AWS Provider Group

    Required if a managed AWS or Azure Database

    Provider Region

    Azure or AWS Provider Region

    Required if a managed AWS or Azure Database

    Connection Parameters

    Connection-specific protocol settings which can vary based on the protocol type

    See this for PostgreSQL protocol settings We recommend specifying the Connection Port at a minimum. E.g. "5432" for PostgreSQL.

    Title (Required)

    Title of the PAM Database Record

    PostgreSQL Database - postgresuser

    Hostname or IP Address (Required)

    Address or RDP endpoint or Server name of the Database Resource

    db-postgres-1

    Port (Required)

    Port to connect to the PostgreSQL DB Resource

    5432

    Use SSL (Required)

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required - This is the PAM configuration you created in the prerequisites

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required Visit this section for more details

    Protocol

    Native database protocol used for connecting from the Gateway to the target

    Required - for this example: "PostgreSQL"

    Session Recording

    Options for recording sessions and typescripts

    See session recording

    Installed and configured the Keeper Gateway
    Set up a PAM Configuration for your target Environment
    page
    Sharing and Access Control
    PostgreSQL PAM Database Record
    Administrative Credential Record
    Sharing a PostgreSQL Database Record
    Launching interactive CLI session to PostgreSQL
    Interactive Connection to PostgreSQL Database

    Check to perform SSL verification before connecting, if your database has SSL configured

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Title

    Name of the Record ex: "Local Linux Admin"

    Hostname or IP Address

    Machine hostname or IP as accessed by the Gateway (internal) or "localhost"

    Port

    22 for SSH

    Administrative Credentials

    Linked PAM User record that contains the username and password (or SSH Key) of the Admin account which will perform the rotation.

    Title

    Configuration name, example: Linux LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has SSH access to your Linux devices

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the machine resources.

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    Private PEM Key

    SSH private key. This is only required if you are planning to rotate the PEM key instead of rotating the password.

    role
    role
    application
    gateway
    SSH

    Select the Shared Folder you want the record to be created in

  • Specify the Title

  • Select "Machine" for the Target

  • Click "Next" and complete all of the required information.

  • linux

    Instance Name

    Azure or AWS Instance Name

    Required if AWS/Azure Machine

    Instance ID

    Azure or AWS Instance ID

    Required if AWS/Azure Machine

    Provider Group

    Azure or AWS Provider Group

    Required if a managed Azure Machine

    Provider Region

    Azure or AWS Provider Region

    Required if a managed AWS Machine

    Connection Parameters

    Connection-specific protocol settings which can vary based on the protocol type.

    See this for SSH protocol settings. We recommend specifying the Connection Port at a minimum. E.g. "22" for SSH.

    Title (Required)

    Title of the PAM Machine Record

    Linux Machine

    Hostname or IP Address (Required)

    Address or RDP endpoint or Server name of the Machine Resource

    linux-machine

    Port (Required)

    Port to connect to the Linux Resource

    22

    Operating System

    PAM Configuration

    Associated PAM Configuration record which defines the environment

    Required - This is the PAM configuration you created in the prerequisites

    Administrative Credential Record

    Linked PAM User credential used for connection and administrative operations

    Required Visit this section for more details

    Protocol

    Native protocol used for creating a session from the Gateway to the target

    Required - for this example: "SSH"

    Session Recording

    Options for recording sessions and typescripts

    See session recording

    Installed and configured the Keeper Gateway
    Set up a PAM Configuration for your target Environment
    page
    appropriate PAM enforcement policies
    Sharing and Access Control
    Linux Machine Example

    The target's Operating System

    Create an Azure application in the default Azure Active Directory.
  • Get values for the Keeper PAM Configuration from this new application.

  • Grant permissions to the application to access the Azure Active Directory.

  • Create a custom role to allow the application to access/perform actions on various Azure resources.

  • Create an Azure App Registration

    Go to the Azure portal > Home and click on Microsoft Entra ID on the left side vertical menu. Select App Registrations, and then New Registration. Give the new application a name and select Single tenant. Then click the Register button at the bottom.

    In the Overview of the application, the Application (client) ID UUID is shown. This is the Client Id field of the Keeper PAM Configuration record. The Directory (tenant) ID is also shown. This is the Tenant Id field of the Keeper PAM Configuration record. Save these values for later.

    Create Application

    Next, go to Home > General > Subscriptions and get your subscription ID. Copy the subscription ID into the Keeper PAM Configuration "Subscription ID" field. For more information on how to get your subscription ID, visit this page.

    Next, click on the Add a certification or secret for Client credentials. On the next page, click on New client secret, give the client secret a Description, and select a desired Expires date, and click Add.

    The page will refresh showing the secret Value. Copy the Value (not Secret ID) into the Keeper PAM Configuration "Client Secret" field. Save this value for later.

    Client Secret

    At this point, all the required the PAM Configuration fields should be filled in. You also have an Azure application that cannot do anything yet.

    Assign Roles and Administrators

    In order for the Azure tenant service principal/application to rotate Azure Active Directory users or Azure Active Directory Domain Service users, the application must be a assigned to an Administrative role.

    From the Azure portal go to Home > Azure Active Directory > Roles and administrators, and click on the Administrative role to use (such as Privileged Authentication Administrator). The correct role depends on what privileges are needed for your use case. Custom roles can be used.

    • Global Administrator - It is not recommended to use a Global Administrator on a service principal. However, it will allow both administrator and user passwords to be rotated.

    • Privileged Authentication Administrator - Can change the password for any user, including a Global Administrator user.

    • Authentication Administrator - Can change the password for any user, except a Global Administrator user.

    To add the application, click Add assignments and Search for the service principal/application that was created, click it, and then Add.

    Assign Administrator Role to Keeper Application

    Assign Azure Role

    Roles need to be attached to the Azure Application (also called a Service Principle here) in order to rotate passwords of target resources. This is done in the Subscription section of the Azure portal.

    Go to the Azure portal > Home > Subscriptions then select your subscription. Click on Access control (IAM), and then Roles.

    Click Add on the top menu, and then Add custom role. Jump to the JSON tab. Click on Edit and paste the JSON object from below, modifying it according to your setup.

    This is a complete list of all of the permissions that Keeper Gateway can use, if applicable. Only include those that are needed for your setup.

    Change the following before you save:

    • <ROLE NAME>: Role Name, e.g. "Keeper Secrets Manager"

    • <DESCRIPTION>: Description, e.g. "Role for password rotation"

    • <SUBSCRIPTION ID>: Subscription ID of this Azure subscription

    Click Save.

    When done, click Review + create, and click Create.

    Once the role is created, it needs to be assigned to the Application (Service Principle). Click View in the Details column.

    Role

    A panel will appear on the right side of the screen. Click Assignments, and then Add assignment.

    Enter in the new role's name in the search bar on the Role tab, then double click it to select it. Move to the Members tab. Click Select members. In the panel that opens, enter the name of the Azure application, select the current application, and click Select.

    Create Azure Custom Role
    Assign Role to Keeper Secrets Manager application member

    Go to the Review + assign tab click Review + assign.

    At this point, you have created the necessary roles and applications within your Azure environment.

    PAM Features

    The "PAM Features Allowed" and "Session Recording Types Allowed" sections in the PAM Configuration allow owners to enable or disable KeeperPAM features for resources managed through the PAM configuration:

    Field
    Description

    Rotation

    If enabled, allow rotations on privileged user users managed by this PAM configuration

    Connections

    If enabled, allow connections on resources managed by this PAM configuration

    Remote Browser Isolation (RBI)

    If enabled, allow RBI sessions on resources managed by this PAM configuration

    Tunneling

    If enabled, allow tunnels on resources managed by this PAM configuration

    Graphical Session Recording

    If enabled, visual playback sessions will be recorded for all connections and RBI sessions

    Text Session Recording (TypeScript)

    If enabled, text input and output logs will be logged for all connections and RBI sessions

    Configuring PAM Features on PAM Record Types

    After creating the PAM configuration, visit the following pages to:

    • Configure Rotation

    • Configure Connections

    • Configure RBI

    • Configure Tunnels

    • Configure

    Accessing the KeeperPAM Console and Vault

  • Activating Enforcement Policies


  • Records, Record Types and Resources

    In Keeper, a record can be a password, file, passkey, or any number of possible record type templates. A record is always encrypted locally on the user's device with a record-level encryption key. All information held within a record is encrypted in the vault.

    When working with Secrets Management and Privileged Access Management functionality, records can also represent Applications, Machines, Directories, Databases, Domain Controllers, Users and other infrastructure being managed.

    Like any password record, these new record types can also be placed into private or shared folders, managed directly in the vault and controlled through policy enforcements.


    Folders and Shared Folders

    In the vault, records are placed into folders and shared folders. A typical and recommended setup looks something like this:

    • Private Folder

      • Shared Folder containing Resources

      • Shared Folder containing User accounts

    Typical Folder Setup for KeeperPAM

    The reason that we recommend splitting up Resources and User accounts is based on least privilege. In this configuration, the resources can be provisioned to a user without sharing access to the underlying credentials. The user accounts are in a separate folder and can remain private in this vault or shared to other privileged users as required.

    A resource such as a Linux machine can be seen inside the resource folder below. The Administrative Credentials used for connecting to that resource are linked, but not directly embedded in the resource. This way, you can provide access to the resource without sharing the credential.

    In this example, the linked Administrative Credential lives in the Users folder with separate permissions and folder privileges.

    Linked Credentials in the Users folder

    At the Shared Folder level, both human users and applications can be assigned with access rights. This allows least privilege enforcement across employees and machines.

    Human users with access to a Shared Folder
    Applications and Machines with access to a Shared Folder

    The fastest way to understand the relationship between records, folders, applications and configurations is using the Quick Start Wizard. This wizard instantly creates a sandbox environment where you can work with the different resources and vault records.


    Application

    A Secrets Manager Application is assigned to specific shared folders. Applications are associated to devices and Gateways for accessing the assigned records.

    An Application and the associated devices and Gateways can only decrypt the records assigned to the folder. Keeper recommends implementing the principle of least privilege, ensuring applications are limited in their ability to access records from the vault.

    Management of Applications is found in the Keeper Secrets Manager section of the vault. An example of an Application might be "Azure DevOps Pipeline" or "Azure AD Rotations" as seen in the screenshot below.

    Secrets Manager Applications

    For more information on Applications:

    • Applications


    Device

    A Device is any endpoint that needs to access secrets associated with an Application. This can be a physical device, virtual device, or cloud-based device. Each Client device has a unique key to read and access the secrets.

    A device can be initialized through the Applications section of the vault user interface.

    Devices

    For more information on Devices:

    • Devices


    Gateway

    The Keeper Gateway is a service that is installed on any Docker, Linux or Windows machine in order to execute password rotation, discovery, connection, tunneling or other privileged automation. The Gateway service can be installed in any remote or on-prem environment, powering a secure zero-trust connection.

    Typically, a Keeper Gateway is deployed to each environment that is being managed. For example, if you are an MSP managing 500 client environments, you may deploy 500 Keeper Gateways.

    Keeper Gateway

    The architecture of the Keeper Gateway deployments is based on your use case and can be reviewed with our implementation team.

    • Gateways


    Configuration

    A PAM Configuration defines the target environment where a Keeper Gateway has been installed. This configuration supplies important secrets to the Gateway that can be used to manage the target infrastructure. For example, it can contain Azure client secrets or Tenant IDs.

    The PAM Configuration data is stored as a record in the vault inside the specified "Application Folder". This way, the Gateway has the necessary permission to retrieve this information.

    We recommend defining only one Configuration for each Gateway.

    PAM Configuration

    More information about PAM Configuration records:

    • PAM Configuration


    PAM Resources

    Inside the vault, records define the type of resources being managed. We call these "PAM Resources". Several new Record Types available in the vault are associated with a resource.

    When creating a resource, you can select from various targets, such as Machine, Database, Directory, etc.

    Creating a PAM Resource

    Visit the pages linked below to learn more about each PAM Resource:

    PAM Record Type
    Supported Assets

    Windows, Linux, macOS devices, VMs, EC2 instances, Azure VMs, Network devices and other operating systems.

    MySQL, PostgreSQL, SQL Server, MongoDB, MariaDB, Oracle

    Active Directory, Azure AD, OpenLDAP

    Web-based Applications, self-hosted apps, cloud apps, any http or https target.


    PAM Users

    A special record type in the Keeper Vault called PAM User can be directly associated to any PAM Resource. The PAM User is used by the Keeper Gateway for establishing a connection, rotating a password, discovering accounts or running other privilege automation on a target resource.

    A PAM User is linked to the PAM Resource in the "Credentials" section of the record. This linkage ensures that access to the resource does not directly allow access to the credential.

    PAM User linked to PAM Resource

    A PAM User record can be configured for on-demand and automatic rotation.

    PAM User settings

    More information on PAM Users is found here:

    • PAM Users


    Activating PAM Features

    Now that you understand the basic structure of the vault, activating and utilizing PAM features is described in the below sections.

    • Password Rotation

    • Connections

    • Tunnels

    • Remote Browser Isolation

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate to your MySQL database

      • If the Gateway is installed on a Linux or macOS server, install the

    1. Set up a PAM Database Record

    Keeper Rotation will use an admin credential linked to the PAM Database to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    The following table lists all the required fields that needs to be filled on the PAM Database record with your information:

    Field
    Description

    Title

    Keeper record title Ex: dbadmin

    Hostname or IP Address

    Server address - doesn't need to be publicly routable

    Port

    For default ports, see Ex: mssql=1433

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    Linked PAM User record that contains the username and password of the Admin account which will perform the rotation.

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: MSSQL LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your MS SQL Server database

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    3. Set up one or more PAM User records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your Local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the db account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    page

    Windows User

  • Linux User

  • macOS User

  • Database - Admin & Users

    • MySQL

    • MariaDB

    • PostgreSQL

  • Azure

    • Azure AD Domain Services

    • Azure App Secrets

    • Machine - Windows or Linux User

    • Managed Database - Admin & Users

    AWS

    • AWS AD Directory Users

    • EC2 Virtual Machine User - Linux or Windows

    • IAM User

    • IAM User Access Keys

    Google Cloud

    • GCP Principal User Password

    • Managed Microsoft AD User

    • Google Compute Virtual Machine User

    • Cloud SQL Database User

    SaaS Plugins

    • Okta

    • Snowflake

    • REST

    • AWS Access Key

    Community Plugins

    • AWS Cognito

    • Cisco APIC

    • AWS IAM User

    • See the Keeper SaaS Github Repo for updates

    Looking for a specific use case we don't cover? Please email [email protected].

    Local Network
    Active Directory
    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed and showing online

    • The Keeper Gateway can communicate over WinRM or SSH to the target machine:

      • WinRM: Enabled and running on port 5986. Verification: Run winrm get winrm/config to verify that WinRM is running. See for installation help. OR...

      • SSH: Enabled and running on port 22. Verification: Run ssh [your-user]@[your-machine] -p 22 to verify that SSH is running.

    1. Set up a PAM Machine Record

    Keeper Rotation will use an admin credential to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    In this guide, we will store the admin credentials in a PAM Machine Record.

    The following table lists all the required fields that needs to be filled on the PAM Machine Record with your information:

    Field
    Description

    Title

    Name of the Record ex: "Local Windows Admin"

    Hostname or IP Address

    Machine hostname or IP as accessed by the Gateway (internal) or "localhost"

    Port

    22 for SSH, 5985 (HTTP) or 5986 (HTTPS) for WinRM

    Administrative Credentials

    Linked PAM User record that contains the username and password (or SSH Key) of the Admin account which will perform the rotation.

    The linked PAM User record with the admin credential needs to be in a shared folder that is accessible to the Keeper Gateway.

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: Windows LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has SSH access to your Windows devices

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the machine resources.

    3. Set up one or more PAM User records

    Keeper Rotation will use the credentials in the PAM Machine record to rotate the PAM User records on your Local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    Supported Username Formats

    Note that Keeper will attempt to login to the remote system using the username exactly as supplied. If authentication fails, Keeper will then attempt to use the below variations:

    • User Principal Name (UPN) format: [email protected]

    • Domain NetBIOS format: COMPANY\admin

    • Shortened UPN format (no TLD): admin@company

    • Domain FQDN with backslash format: company.com\admin

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Machine credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Service Management

    Keeper can automatically update the Windows service account "log on as" credentials for any Windows services running as the PAM User, and restart the service. Keeper will also update the credential of any scheduled task running as that user on the target machine.

    To learn more and set up this capability, see the Service Management page.

    page
    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate to your MongoDB Database

    1. Set up a PAM Database Record

    Keeper Rotation will use an admin credential linked to the PAM Database to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    The following table lists all the required fields that needs to be filled on the PAM Database Record with your information:

    Field
    Description

    Title

    Keeper record title Ex: dbadmin

    Hostname or IP Address

    Server address - doesn't need to be publicly routable

    Port

    For default ports, see Ex: mongodb=27017

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    Linked PAM User record that contains the username and password of the Admin account which will perform the rotation.

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: MongoDB LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your MongoDB database

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    3. Set up one or more PAM User records

    Keeper Rotation will use the credentials linked from the PAM Database record to rotate the PAM User records on your local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the db account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example: MongoDB requires a database and so this will default to admin.

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    page
    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate to your MySQL database

    1. Set up a PAM Database Record

    Keeper Rotation will use an admin credential linked from the PAM Database record to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    The following table lists all the required fields that needs to be filled on the PAM Database Record with your information:

    Field
    Description

    Title

    Keeper record title Ex: dbadmin

    Hostname or IP Address

    Server address - doesn't need to be publicly routable

    Port

    For default ports, see Ex: mysql=3306

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    Linked PAM User record that contains the username and password of the Admin account which will perform the rotation.

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: MySQL LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your MySQL database

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    3. Set up PAM User records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your Local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the db account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    page
    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed and running

    • Your AWS environment is per our documentation

    The Keeper Gateway uses AWS APIs to rotate the credentials defined in the PAM User records.

    1. Create Shared Folder

    In this folder, you’ll create records for the AWS IAM accounts that you’ll rotate. You will create a PAM User record for each user that will be rotated.

    Shared Folder containing PAM User records

    Note: The target user to be rotated must have AWS Console access and at minimum have a temporary password set in the AWS Console before the password can be rotated.

    2. Create PAM User Record(s)

    Keeper Rotation uses the AWS API to rotate the PAM User records in your AWS environment. The PAM User records need to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. AWS user: TestUser

    Login

    Case sensitive username of the account being rotated.

    Password

    Providing a password is optional. Performing a rotation will set one if this field is left blank.

    Distinguished Name

    This is the full ARN of the user identity, e.g: arn:aws:iam::123456789:user/TestUser

    PAM User records for IAM Users

    3. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: AWS IAM Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application.

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    AWS ID

    A unique ID for this instance of AWS. This is only for your reference and can be anything, but its recommended to be kept short Ex: AWS-DepartmentName

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    PAM Configuration for AWS Environment

    4. Configure Rotation on the PAM User Records

    Select the PAM User record(s) from Step 2, edit the record and open the "Password Rotation Settings".

    • Select "IAM User" as the rotation method, since this uses AWS APIs.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • Select the desired schedule and password complexity.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    AWS IAM User Password

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Note: The user must have AWS Console access and at minimum have a temporary password set in the AWS Console before the password can be rotated.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate with your AWS MySQL Database

    • Your AWS environment is per our documentation

    1. Set up PAM Database Records

    The PAM Database record contains the admin credentials and necessary configurations to connect to the MySQL RDS instance on AWS. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the MySQL RDS instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: AWS MySQL Admin

    Hostname or IP Address

    The RDS Endpoint i.e. rdsdb.ckivswes.us-east-2.rds.amazonaws.com

    Port

    The RDS Port, for default ports see i.e. 3306

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Login

    Admin account username that will perform rotation

    Note: Adding Provider Region and Database ID will enable managing the PAM Database Record through the SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration".

    The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: AWS RDS Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your MySQL RDS Instance

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the admin accounts, not the databases.

    AWS ID

    A unique ID for this instance of AWS. This is for your reference and can be anything, but its recommended to be kept short Ex: AWS-1

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your AWS environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. AWS DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate with your AWS MariaDB Database

    • Your AWS environment is per our documentation

    1. Set up PAM Database Record

    The PAM Database record contains the admin credentials and necessary configurations to connect to the MariaDB RDS instance on AWS. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the MariaDB RDS instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: AWS MariaDB Admin

    Hostname or IP Address

    The RDS Endpoint i.e. rdsdb.ckivswes.us-east-2.rds.amazonaws.com

    Port

    The RDS Port, for default ports see i.e. 3306

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Login

    Admin account username that will perform rotation

    Note: Adding Provider Region and Database ID will enable managing the PAM Database Record through the SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration".

    The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: AWS RDS Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your MariaDB RDS Instance

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    AWS ID

    A unique ID for this instance of AWS. This is for your reference and can be anything, but its recommended to be kept short Ex: AWS-1

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your AWS environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. AWS DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate with your GCP MySQL Database

    • Your GCP environment is per our documentation

    1. Set up PAM Database Records

    The PAM Database record contains the admin credentials and necessary configurations to connect to the MySQL instance on Google Cloud SQL. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the MySQL Cloud SQL instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: GCP MySQL Admin

    Hostname or IP Address

    The Cloud SQL Endpoint

    Port

    The MySQL Port, for default ports see i.e. 3306

    Use SSL

    Must be checked, performs SSL verification before connecting

    Login

    Admin account username that will perform rotation

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: GCP Workspace Configuration

    Environment

    Select: Google Cloud

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application.

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    GCP ID

    A unique ID for this instance of Google Cloud. This is only for your reference and can be anything, but its recommended to be kept short Ex: GCP-DepartmentName

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your Google Cloud environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. GCP DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed and running

    • Your Google Cloud environment is per our documentation

    The Keeper Gateway uses Google Admin APIs to rotate the credentials defined in the PAM User records.

    1. Create Shared Folder

    In this folder, you’ll create records for the Google Principal accounts that you’ll rotate. You will create a PAM User record for each user that will be rotated.

    Shared Folder containing PAM User records

    Note: The target user to be rotated must be in a domain that the Google Workspace Administrator whose email is set on the PAM Configuration can manage.

    Keeper Rotation uses the Google Admin API to rotate the PAM User records in your Google Workspace environment. The PAM User records need to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. AWS user: TestUser

    Login

    Complete email address of the account being rotated.

    Password

    Providing a password is optional. Performing a rotation will set one if this field is left blank.

    PAM User records for IAM Users

    3. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: GCP Workspace Configuration

    Environment

    Select: Google Cloud

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application.

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    GCP ID

    A unique ID for this instance of Google Cloud. This is only for your reference and can be anything, but its recommended to be kept short Ex: GCP-DepartmentName

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    PAM Configuration for Google Cloud Environment

    4. Configure Rotation on the PAM User Records

    Select the PAM User record(s) from Step 2, edit the record and open the "Password Rotation Settings".

    • Select "IAM User" as the rotation method, since this uses Google Admin APIs.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • Select the desired schedule and password complexity.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Google Cloud IAM User Password

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    See the Azure Overview for a high level overview and getting started with Azure

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Azure environment is configured per our documentation

    • Your Keeper Gateway is online

    1. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for Azure.

    Prior to setting up the PAM Configuration, make sure that:

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is provisioned in the Keeper Secrets Manager application you created.

    • We recommend installing the Keeper Gateway service in a machine within the Azure environment in order to rotate other types of targets.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields that needs to be filled on the PAM Configuration Record with your information:

    Field
    Description

    Title

    Configuration name, example: Azure AD Configuration

    Environment

    Select: Azure

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Active Directory server from the pre-requisites

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the admin accounts.

    Azure ID

    A unique ID for this instance of Azure. This is for your reference and can be anything, but its recommended to be kept short Ex: Azure-1

    2. Set up one or more PAM User Records

    Keeper Rotation uses the Azure Graph API to rotate the PAM User records in your Azure environment. The PAM User records need to be in a shared folder that is shared to the KSM application created in the pre-requisites.

    The following table lists all the required fields that needs to be filled on the PAM User record with your information:

    Field
    Description

    Title

    Keeper record title i.e. Azure User1

    Login

    Case sensitive username of the account being rotated. The username has to be in one of the following formats: domain\username username@domain

    Password

    Providing a password is optional. Performing a rotation will set one if this field is left blank.

    There should only be one PAM User record for each Azure AD user. Having multiple PAM User records with the same user/login will cause conflicts.

    3. Configure Rotation on the PAM User Records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    Rotation Settings
    • Select "IAM User" for the rotation method, since this uses Azure APIs.

    • The "Rotation Settings" should select the PAM Configuration setup previously.

    • Select the desired schedule and password complexity.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Rotation Settings for Azure AD Users
    PAM Configuration
    This guide assumes the following tasks have already taken place:
    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate via SSH or WinRM with your target Google Compute Virtual Machine(s).

    • Your Google Cloud environment is per our documentation

    1. Set up PAM Machine Records

    Keeper can rotate any local user account on either the Gateway machine or any other machine on the network. A PAM Machine record should be created for every machine. This PAM Machine record should link to an administrative credential that has the rights to change passwords for users on the machine.

    Once a PAM Machine record is created for every machine, a PAM User record needs to be created for each local user account that will be rotated.

    Keeper will use the referenced admin credential to rotate the password or SSH key of AWS Virtual Machine users in your AWS environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of these user accounts.

    If you are running a rotation on a PAM Machine record which also happens to be the same machine running the Keeper Gateway, Keeper will attempt to rotate the password or SSH key for the account using the keeper-gw user. Assuming that keeper-gw has sudoers privilege, it will be able to perform rotations on the local Gateway machine.

    The following table lists all the required fields on the PAM Machine record:

    Field
    Description

    Title

    Name of the Record i.e GCP Linux 1

    Hostname or IP Address

    Machine hostname or IP as accessed by the Gateway

    Port

    Typically 5985 or 5986 for WinRM, 22 for SSH.

    Administrative Credentials

    Linked PAM User record that contains the username and password (or SSH key) of the Admin account.

    Operating System

    The VM Operating System, i.e Windows or Linux

    This PAM Machine Record with the linked admin credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    PAM Machine record in Google Cloud

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: GCP Workspace Configuration

    Environment

    Select: Google Cloud

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application.

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    GCP ID

    A unique ID for this instance of Google Cloud. This is only for your reference and can be anything, but its recommended to be kept short Ex: GCP-DepartmentName

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    PAM Configuration for Google Cloud Environment

    3. Set up PAM User Records

    Keeper will use the credentials linked from the PAM Machine record to rotate the PAM User records in your Google Cloud environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields that need to be filled on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. GCP Machine1 compute-user

    Login

    Case sensitive username of the user account being rotated, e.g. compute-user.

    Password

    This is only required if the user logs in with a password. If the password is left blank, performing a rotation will set one.

    Private PEM Key

    SSH private key. This is only required if you are planning to rotate the PEM key instead of rotating the password.

    Debian Linux PAM User record

    4. Configure Rotation on the Record - GCP VM User

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Machine credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Password Rotation Settings on Google Cloud Compute Instance User

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate to your MariaDB database

    1. Set up a PAM Database Record

    Keeper Rotation will use an admin credential linked to the PAM Database record to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    The following table lists all the required fields that needs to be filled on the PAM Database Record with your information:

    Field
    Description

    Title

    Keeper record title Ex: dbadmin

    Hostname or IP Address

    Server address - doesn't need to be publicly routable

    Port

    For default ports, see Ex: mariadb=3306

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    Linked PAM User record that contains the username and password of the Admin account which will perform the rotation.

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: MariaDB LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your MariaDB database

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    3. Set up one or more PAM user records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your Local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the db account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    page
    Inputs

    The Keeper Gateway executes PAM scripts and provides inputs to the script through stdin parameters. These parameters are placed in a Base64 encoded JSON object and piped to the script.

    For example, the Keeper Gateway will essentially execute the script on a Linux machine as follows:

    Windows:

    The following keys can be found in this base64 encoded JSON object:

    Key
    Description

    providerRecordUid

    The UID of the PAM Configuration record

    resourceRecordUid

    The UID of the PAM Resource record

    userRecordUid

    The UID of the PAM User record

    newPassword

    The new password generated for the User

    oldPassword

    The previous password for the User

    Additional Info on records field

    The records key value is a Base64, JSON array of dictionaries. This array will include the following data:

    • PAM Configuration information

    • Related PAM Machine, PAM Database, or PAM Directory Record Data

    • Additional Records supplied when uploading the post-rotation scripts

    • User Record Data

    Each dictionary object will contain:

    • uid - The UID of the Vault record.

    • title - The title of the Vault record.

    • The rest of the dictionary will contain key/value pairs of the record's data where the key will be the label of the field. If the field does not contain a label, the field type will be used. If the key already exists, a number will be added to the key.

    Outputs

    Upon execution of the PAM Script, an array is returned containing instances of RotationResult for each script that was executed. The class RotationResult has the following attributes:

    • uid - Keeper Vault record UID that has the script attached

    • command - Command that was issued to the shell

    • system - Operating system the script will run upon

    • title - Title of the script attached to the Keeper Vault record

    • name - Name of the script attached to the Keeper Vault record

    • success - Was the script successful?

      • Linux and macOS - Script returned in a 0 return code.

      • Windows - Script returned a True status.

    • stdout - The stdout from the execution of the script

    • stderr - The stderr from the execution of the script

    Additionally, the following methods can be used to determine if the script was a success, or not:

    Method
    Descripton

    was_failure

    boolean, return True if failure, False if success

    was_success

    boolean, returns True if success, False if failure

    With this, it is possible to customize logging:

    Troubleshooting

    The class RotationResult has attribute stderr which logs the errors from execution of the script.

    Although post rotation script results and information are available via the RotationResult class, errors and outputs of scripts are based on the type of shell the script is executed on. Keeper does not check the stdout or errors of the scripts as Keeper does not know what defines as an error for a customer-controlled script.

    For example, if a BASH script does not contain a set -e, the script will continue even if part of the script fails. If the script exits with a 0 return code, the script will be flagged as successful.

    Therefore, it is up to the customer to properly handle the outputs and errors of the script.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Keeper Gateway is online

    • The Keeper Gateway can communicate over WinRM or SSH to the target machine:

      • WinRM: Enabled and running on port 5986. Verification: Run winrm get winrm/config to verify that WinRM is running. See for installation help. OR...

      • SSH: Enabled and running on port 22. Verification: Run ssh [your-user]@[your-machine] -p 22 to verify that SSH is running.

    • Any Windows-based PAM Machine record being managed needs to have the operating system field set to windows

    Setup

    Service account and scheduled task management works by associating a PAM User record with one or more PAM Machine records in the vault. This mapping tells the Keeper Gateway to reach into each machine and look up any services running as the user, updating the password and restarting the service.

    Ensure that you are using a PAM Machine record to manage services and scheduled tasks on the resource. If you are using a different type of resource (Database, Directory, etc) you can create another resource which is a PAM Machine that is associated to the same PAM User.

    Using Discovery

    When running a Discovery job, Keeper will automatically locate any services or scheduled tasks that require update when a password is rotated.

    If you don't use Discovery, this can be managed directly through the Commander CLI interface using the pam action service commands.

    Using the Commander CLI

    Keeper Commander provides the necessary commands to associate services and scheduled tasks, such that password rotations will trigger an update and restart of the service.

    Installing Commander

    If you haven't set up Keeper Commander yet, please follow the installation instructions.

    Locate Gateway UID

    Use the pam gateway list command to locate the Gateway UID which manages the machine containing the services and scheduled tasks. You'll need this for the next step.

    Locate PAM Machine and PAM User UID

    The PAM Machine and PAM User UIDs can be found in Commander by using the ls -l command inside a folder or by using the search command.

    The UIDs can also be found in the Keeper Vault "Record Information" screen:

    Find the Record UID

    Services Management Commands

    Use the pam action service command to instruct Keeper to update services and scheduled tasks on a particular machine, for a particular user, within a network.

    Adding a Service / Task / IIS

    To instruct Keeper to update and restart services and scheduled tasks on a particular machine, use the syntax below:

    Removing a Service / Task / IIS

    To instruct Keeper to remove the associations of services and scheduled tasks on a machine:

    Listing all Mappings

    To display the current mappings between Gateway, Machine and User accounts where services and tasks need to be managed, use the pam action service list command.

    Triggering the service update

    To perform a password rotation of a PAM User account, click on the Rotate button from the vault user interface.

    Rotate the Windows Credential

    To perform the rotation from Commander, run pam action rotate :

    To view the status of the rotation job, check the Vault UI or run the pam action job-info command as instructed:

    Troubleshooting

    Service Restarts

    Keeper will not start a service which is currently stopped. We will only restart any actively running services after updating the log on credential.

    When troubleshooting a service credential update issue, please make sure of the following:

    • For a Windows server, ensure the operating system field is set to windows

    • Ensure that the Keeper Gateway can communicate to the PAM Machine via WinRM or SSH.

    • Check the Event Viewer > Windows Logs > Application events for any error messages

    • Ensure that you are using a PAM Machine record to manage services and scheduled tasks.

    Windows Service Management
    Attached Post Execution Script will execute on

    PAM Configuration

    Gateway

    PAM Machine

    The Machine specified in the record

    PAM Database

    Gateway

    PAM Directory

    Gateway

    PAM User

    Gateway

    Rotation Options on PAM User Records

    When setting up rotation on a record on a PAM User record, you can select from one of the following methods:

    • General

    • IAM User

    • Run PAM scripts only

    When the "General" or "IAM User" methods are selected, Keeper will attempt to rotate the credentials using built-in capabilities based on the information stored in the record.

    When the "Run PAM scripts only" option is selected, Keeper will skip the default rotation task and immediately run the attached PAM scripts on the gateway.

    Order of Execution

    Scripts will be executed in the following order:

    1. Scripts attached on PAM User records

    2. Scripts attached on PAM Machine, PAM Database, or PAM Directory Record types

    3. Scripts attached on PAM Configuration Record types

    If multiple scripts are attached to a record, scripts will be executed in the order they appear on the PAM Record.

    Common Use Cases

    Here are some of the use cases made possible with Keeper Post-Rotation Scripts:

    • Custom rotation scripts for any type of target

    • Revoking access to a resource

    • Sending notifications to team members

    • Propagating the password change to other systems

    • Any other custom privilege automation task

    Documentation included

    • Inputs and outputs

    • Attaching scripts

    • Code Examples

    Distinguished name; used if associated with a PAM Directory

    Required only when the User is managed by a directory Example: CN=Jeff Smith,OU=Sales,DC=demo,DC=COM

    If left blank, defaults are attempted depending on the provider type

    Managed User

    Flag for accounts that are managed by the AWS or Azure IAM systems

    Set by Keeper Discovery to indicate that the password cannot be rotated. For example, AWS token-based auth.

    Connect Database

    Used in certain scenarios if a database name is needed

    Edge cases, e.g. using LDAP to connect to a MySQL database

    Note (1)
    verbose logging

    Network Configuration

    The Keeper Gateway establishes outbound-only connections and does not require any inbound firewall rules. The following outbound connections must be allowed:

    Destination
    Port Needed
    More Info

    Keeper Cloud (keepersecurity.[com|eu|com.au|jp|ca|us])

    TLS Port 443

    Communicates with Keeper Cloud to access target infrastructure via native protocols (e.g., SSH, RDP)

    The Gateway preserves zero knowledge by performing all encryption and decryption of data locally. Keeper Secrets Manager APIs are used to communicate with the Keeper cloud.

    Checksum Verification

    Keeper Gateway SHA256 hashes for the latest version are published at the below location:

    https://keepersecurity.com/pam/latest.txt

    Calculating and verifying the checksum:

    Linux

    sha256sum keeper-gateway_linux_x86_64
    cat keeper-gateway_X.X.X_SHA256SUMS | grep keeper-gateway_linux_x86_64

    PowerShell

    Proxy Configuration

    Configure Keeper Gateway to route traffic through corporate HTTP/HTTPS proxy servers for air-gapped or restricted network environments.

    Overview

    In enterprise environments, network security policies may require internet traffic to flow through a corporate proxy server. Keeper Gateway supports standard HTTP/HTTPS proxy configuration through environment variables and command-line parameters, ensuring compatibility with corporate network architectures.

    When proxy support is enabled, the Gateway routes all outbound connections through the specified proxy server, including:

    • WebSocket connections to Keeper servers

    • HTTP/HTTPS API calls

    • Health check endpoints

    • Version verification requests

    • TURN credential requests

    Proxy support is currently available for Discovery and Rotation operations. PAM connection sessions (SSH, RDP, VNC, database connections, RDP) are not supported through proxies at this time due to the complexity of WebRTC media traffic routing. WebRTC connections require direct network access or TURN server configuration.

    Supported Proxy Types

    Keeper Gateway supports the following proxy configurations:

    • HTTP Proxy - Standard HTTP proxy servers (e.g., Squid, Apache Traffic Server)

    • HTTPS Proxy - Secure proxy connections with TLS

    • Authenticated Proxies - Proxies requiring username/password authentication

    • Bypass Lists - Exclude specific domains or IP addresses from proxy routing

    Configuration Methods

    You can configure proxy settings using either environment variables or command-line parameters. Command-line parameters take precedence over environment variables.

    Option 1: Environment Variables

    Environment variables provide a standard way to configure proxy settings across all network-aware applications. These variables are recognized by most networking tools and libraries.

    Supported Environment Variables

    Keeper Gateway recognizes the following environment variables (in order of precedence):

    1. HTTPS_PROXY or https_proxy - Primary proxy configuration (recommended)

    2. HTTP_PROXY or http_proxy - Fallback proxy configuration

    3. NO_PROXY or no_proxy

    These are standard environment variable names used across many applications and programming languages. The Keeper Gateway follows this industry convention for seamless integration with existing infrastructure.

    Setting Environment Variables

    Linux/macOS:

    Windows (Command Prompt):

    Windows (PowerShell):

    With Authentication

    Include credentials in the proxy URL:

    Special characters in passwords must be URL-encoded. For example, p@ssw0rd becomes p%40ssw0rd.

    Option 2: Command-Line Parameters

    Command-line parameters provide additional flexibility and override environment variables when both are present.

    Available Parameters

    Parameter
    Description
    Example

    Docker Deployment with Proxy

    When deploying Keeper Gateway in Docker, configure proxy settings in your docker-compose.yml file.

    Docker Compose Configuration

    Add proxy environment variables to your Gateway service:

    The proxy server must be accessible from the Gateway container. If using an external proxy, ensure network connectivity. If deploying a proxy container in the same Docker Compose stack, include it in the depends_on section.

    Air-Gapped Docker Environment Example

    For complete network isolation, deploy the Gateway with a dedicated proxy container:

    In this configuration:

    • Gateway container has no direct internet access (only on internal: true network)

    • All internet traffic must flow through the proxy container

    • Proxy container bridges the air-gapped and public networks

    • Internal services (databases, application servers) bypass the proxy

    Configuration Priority

    When multiple configuration sources are present, Keeper Gateway applies settings in the following priority order (highest to lowest):

    1. Individual command-line parameters (--proxy-host, --proxy-port, etc.)

    2. --proxy-url command-line parameter

    3. HTTPS_PROXY environment variable

    For bypass lists:

    1. --no-proxy command-line parameter

    2. NO_PROXY environment variable

    3. no_proxy environment variable

    Proxy URL Format

    Proxy URLs follow standard URI syntax:

    Examples

    Basic HTTP proxy:

    HTTPS proxy:

    Authenticated proxy:

    Proxy with special characters in password:

    Note: URL-encode special characters in usernames and passwords using percent-encoding (e.g., @ becomes %40, ! becomes %21).

    NO_PROXY Bypass List

    The NO_PROXY setting allows you to exclude specific hosts from proxy routing. This is useful for:

    • Internal services on the same network

    • Local resources that don't require proxy access

    • Services that cannot work through a proxy

    Bypass List Format

    The bypass list is a comma-separated list of:

    • Exact hostnames: localhost, internal-server

    • IP addresses: 127.0.0.1, 192.168.1.100

    • Domain suffixes: .internal.com

    Examples

    Basic bypass list:

    With domain suffixes:

    Docker internal services:

    Spaces are automatically trimmed. Both localhost, 127.0.0.1 and localhost,127.0.0.1 work identically.

    Verification and Testing

    Step 1: Verify Configuration

    After starting the Gateway with proxy configuration, check the logs for confirmation:

    Step 2: Test Proxy Connectivity

    Before starting the Gateway, verify proxy accessibility:

    Linux/macOS:

    Windows (PowerShell):

    If the proxy requires authentication:

    Rotation Overview

    Quick start guide to Keeper Password Rotation

    Prerequisites

    An active license is required in order to use the features available with KeeperPAM. This license is available for both business and enterprise customers.

    • KeeperPAM Homepage

    Prior to setting up password rotation, make sure to have the following set up:

    • Learn about KeeperPAM in the section

    Enable Enforcement Policies

    Enforcement policies for KeeperPAM password rotation are managed in the Keeper Admin Console under Admin > Roles > Enforcement Policies > Privileged Access Manager.

    For Password Rotation capabilities, enable the necessary policies:

    Enforcement Policy
    Commander Enforcement
    Definition

    Rotation can also be enabled on the using the enterprise-role command:

    Deploy a Keeper Gateway

    If you haven't yet created a Keeper Gateway yet, a new Gateway deployment can be created by clicking on Create New > Gateway from the Web Vault or Desktop App (version 17.1 or newer). We have also posted a page describing how to create a sandbox environment in :

    Create an Application

    When you use the Gateway using the Create New > Gateway feature, Keeper will automatically create the Secrets Manager Application, Shared Folders and PAM Configuration. In the Secrets Manager section of the vault, you'll see the Application assigned to Shared Folders and also assigned to the Gateway.

    Create a PAM User record

    A PAM user record holds a privileged account credential, password or private key. For steps on creating a PAM User, . The example below shows a PAM User record for an admin password on a Windows server. The PAM User record is added to a Shared Folder containing user accounts.

    Create a PAM Resource

    A PAM Resource represents a Machine, Database or Directory.

    Configure rotation settings

    Record Types for Rotation

    The rotation of credentials is restricted to the record type.

    In previous versions of Keeper, rotation was permitted on PAM Machine, PAM Database and PAM Directory records. In the latest version of KeeperPAM, you will be prompted to separate the PAM Resources from the PAM User. See the documentation for more info.

    When you have activated Keeper Secrets Manager or KeeperPAM, the following new record types will be available to users:

    • PAM User Contains a login / password, private key, or both.

    • PAM Directory Information about your on-prem or cloud-based directory

    • PAM Database Self-hosted or managed cloud-based databases such as MySQL, SQL Server, etc.

    All 5 record types can be added in the Vault, placed in folders, and shared like any other Keeper records.

    • See

    PAM Configurations

    When rotation is activated, within the Secrets Manager screen of the vault you'll see a section called PAM Configurations. A PAM Configuration is an object which is contains the following:

    • Environment Local Network, AWS or Azure

    • Keeper Gateway Service which you install into your on-prem or cloud infrastructure

    • Application Folder Shared Folder which contains the Secrets Manager application and associated records

    Customers may have any number of PAM Configurations, Applications and Gateways.

    • More information on: , and

    How to Rotate a Password

    The basic steps to rotation of passwords in any target environment are:

    • Add PAM User records to the Shared Folder

    • Add PAM Resource (Machine, Database, Directory) records to a Shared Folder

    • Configure rotation settings on each PAM User record

    • Create a Secrets Manager application

    Rotation on Keeper Commander

    For automation of Rotation capabilities, supports KeeperPAM rotation using the following commands:

    Example:

    Services and Scheduled Tasks

    Keeper Rotation can also update the "log on" credentials for Windows service accounts and scheduled tasks. See the documentation.

    Record Import

    Keeper supports importing in bulk from JSON format. See the section for more details.

    Just-In-Time Access (JIT)

    KeeperPAM Just-In-Time Access and Zero Standing Privilege

    Just-In-Time Access and Zero Standing Privilege

    Introduction

    KeeperPAM provides comprehensive just-in-time (JIT) access capabilities to help organizations achieve zero standing privilege (ZSP) across their entire IT infrastructure and endpoints. By implementing JIT access controls, organizations can significantly reduce their attack surface by ensuring that privileged access is only granted when needed, for the duration required, and with appropriate approvals.

    Understanding JIT and ZSP

    Just-In-Time (JIT) Access: Provides users with privileged access only at the moment they need it, for a limited time period, and often with approval workflows.

    Zero Standing Privilege (ZSP): A security approach where users have no permanent privileged access to systems, eliminating the risk associated with compromised privileged accounts.

    Use Cases

    KeeperPAM offers JIT capabilities across multiple scenarios:

    Just-in-Time Elevated Access to Infrastructure

    Keeper's zero-trust privileged sessions can be established to any target with a single click from the web vault. When configured for JIT, elevated privileges are only granted for the duration of the session and automatically revoked upon session termination.

    Supported Connection Protocols:

    • RDP (Remote Desktop Protocol)

    • SSH (Secure Shell)

    • VNC (Virtual Network Computing)

    • HTTP/HTTPS

    How to Configure:

    1. In the KeeperPAM resource configuration, navigate to the "JIT" tab

    2. Enable just-in-time elevated access for the target resource

    3. Configure the elevation settings (Ephemeral account or Group/Role elevation)

    4. Update the configuration

    Ephemeral Account Creation

    KeeperPAM can create temporary accounts with appropriate privileges that exist only for the duration of a privileged session.

    Key Features:

    • Automatic creation of temporary privileged accounts when sessions begin

    • Dynamic privilege assignment based on access requirements

    • Complete account removal when sessions terminate

    • No persistent privileged accounts to be compromised

    Benefits:

    • Eliminates attack vectors associated with standing privileged accounts

    • Prevents lateral movement using compromised credentials

    • Creates clean audit trails linking specific sessions to temporary accounts

    • Reduces administrative overhead of managing privileged accounts

    The Keeper Gateway is responsible for creating a temporary account on the target using the selected account type.

    Keeper can create ephemeral accounts on any assigned target resource, such as:

    • Active Directory / LDAP Domain User

    • Windows User

    • Linux User

    • MySQL User

    Group and Role Elevation

    Role elevation can be assigned at the Group or Role level. For example, an AWS group or role can be assigned to the connecting user account for the duration of the session.

    In the input field, provide Keeper with the identifier of the group or role to elevate during the connection. E.g. for Windows this might be “Administrators” and for AWS this would be the full ARN (e.g. arn:aws:iam::12345:role/Admin).

    Domain User Group Elevation

    When elevating an ephemeral Domain User to a group, you must specify the group in Distinguished Name (DN) format.

    Example: If the group name is RemoteUsers, the DN would be:

    If your group name contains spaces, you must enclose the DN in quotes.

    Example: If the group name is Remote Users, the DN would be:


    Just-in-Time Elevated Access on Endpoints using PEDM

    extends JIT capabilities to end-user devices, allowing for precise privilege elevation for specific processes, applications, or tasks without granting full administrative access.

    Key Features:

    • Process-level privilege management across Windows, macOS, and Linux

    • Policy-based elevation rules with granular controls

    • User-initiated elevation requests with approval workflows

    • Comprehensive auditing and reporting

    How it Works:

    1. Users operate with standard, non-privileged accounts by default

    2. When administrative privileges are needed, users request elevation for specific tasks

    3. Based on policy, requests are auto-approved or routed for manual approval

    4. Elevated privileges are granted only for the specified process or time window

    For more information see:


    Time-Limited Access with Automated Credential Rotation

    KeeperPAM provides time-bounded access to resources with automatic credential rotation.

    Key Features:

    • Automated credential rotation on-demand or on a scheduled basis

    • Time-limited access window for authorized users

    • Integration with password rotation policies

    • Complete audit trail of credential changes

    Security Benefits:

    • Ensures credentials are never re-used for future sessions

    • Protects against credential theft during access periods

    • Creates cryptographically verifiable access boundaries

    • Maintains compliance with credential rotation requirements

    To provide time-limited access to a resource, open the resource from the vault and select Sharing. Add the user as a share recipient, and select Set Expiration.

    For more information see:

    Workflow and Requests for Approval

    KeeperPAM includes flexible approval workflows for JIT access requests, ensuring proper oversight of privileged access.

    Key Features:

    • Multi-level approval workflows

    • Time-based auto-approval or denial

    • Delegation of approval authority

    • Email and mobile notifications

    Configuration Options:

    • Required approvers based on resource sensitivity

    • Approval timeouts and escalations

    • Working hours restrictions

    • Maximum session duration settings

    Implementation Best Practices

    When implementing JIT access and ZSP with KeeperPAM:

    1. Start with critical systems: Begin your implementation with your most sensitive systems and infrastructure

    2. Define clear policies: Establish clear guidelines for when JIT access is required and who can approve it

    3. Educate users: Ensure users understand how to request elevated access when needed

    4. Monitor and adjust: Regularly review logs and adjust policies based on actual usage patterns

    Conclusion

    KeeperPAM's comprehensive JIT and ZSP capabilities provide organizations with the tools needed to significantly reduce their privileged access attack surface. By implementing these capabilities across your infrastructure, you can ensure that privileged access is strictly controlled, properly approved, and thoroughly audited.

    For more information on specific JIT use cases or implementation guidance, contact your Keeper Security account manager or email .

    macOS User

    Rotating Local Mac User Accounts with Keeper Rotation

    Overview

    In this guide, you'll learn how to remotely rotate MacOS accounts via SSH using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this page.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate via to your MacOS device.

    1. Set up a PAM Machine resource

    Keeper Rotation will use the linked admin credential to rotate other accounts in your environment. This account does not need to be joined to a domain, or a full admin account, but the account needs to be able to successfully change passwords for other accounts.

    PAM Directory Record Fields

    Field
    Description

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab. Create a new configuration:

    Field
    Description

    3. Set up one or more PAM user records

    Keeper Rotation will use the linked credentials in the PAM Machine record to rotate the PAM User records in your environment.

    PAM User Record Fields

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the "PAM Machine" credential setup previously.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Managed Microsoft AD User

    Rotating Google Cloud Managed Microsoft AD Service accounts with Keeper

    Overview

    In this guide, you will learn how to rotate User Accounts of a Google Cloud Managed Microsoft AD service using Keeper Rotation. The Active Directory Service is an AWS managed resource where the Directory Service admin credentials are linked to the PAM Directory record type and the configurations of the AD Users are defined in the PAM User record type.

    User Account passwords will be rotated using LDAP and, in order to successfully rotate, server-side LDAPS must be configured and the Directory Admin, defined in the PAM Directory record type, must be using a SSL Connection.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate with your Google Cloud Directory Services

    1. Set up a PAM Directory Record

    Keeper Rotation will use the linked admin credentials of your AWS Managed Directory Service to rotate passwords of Domain Service's directory accounts. These admin credentials can also be used to rotate the passwords of the Directory admin.

    The following table lists all the required fields on the PAM Directory Record:

    Field
    Description

    This PAM Directory Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    For more details on all the configurable fields in the PAM Configuration record, visit this .

    3. Set up one or more PAM User Records

    Keeper Rotation will use the credentials in the PAM Directory record to rotate the PAM User records on your GCP environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Directory credential setup from Step 1.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Troubleshooting

    Getting the Distinguished Names of GCP Managed Directory Service Users

    The following windows command can be used to get the distinguished name of the Directory user:

    If the command does not exist, you need to import the appropriate module with:

    Cloud SQL for SQL Server

    Rotating Admin/Regular AWS SQL Server Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for Google Cloud SQL Server Database User and Admin accounts on your Google Cloud environment using Keeper Rotation. Cloud SQL for SQL Server is an GCP managed resource where the SQL Server Admin Credentials are defined in the PAM Database record type and the configurations of the SQL Server Users are defined in the PAM User record type.

    To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate with your GCP SQL Server Database

    1. Set up a PAM Database Record

    The PAM Database record contains the admin credentials and necessary configurations to connect to the SQL Server Cloud SQL instance on GCP. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the SQL Server Cloud SQL instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    For more details on all the configurable fields in the PAM Configuration record, visit this .

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your GCP environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Cloud SQL for PostgreSQL

    Rotating Admin/Regular AWS PostgreSQL Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for GCP PostgreSQL Database User and Admin accounts on your Google Cloud environment using Keeper Rotation. Cloud SQL for PostgreSQL is a GCP managed resource where the PostgreSQL Admin Credentials are defined in the PAM Database record type and the configurations of the PostgreSQL Users are defined in the PAM User record type.

    To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate with your GCP PostgreSQL Database

    1. Set up a PAM Database Record

    The PAM Database record contains the admin credentials and necessary configurations to connect to the PostgreSQL Cloud SQL instance on GCP. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the PostgreSQL Cloud SQL instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    In the left menu of the vault, select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    For more details on all the configurable fields in the PAM Configuration record, visit this .

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your GCP environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    AWS RDS for Oracle

    Rotating Admin/Regular AWS Oracle Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for AWS Oracle Database User and Admin accounts on your AWS environment using Keeper Rotation. RDS for Oracle is an AWS managed resource where the Oracle Admin Credentials are defined in the PAM Database record type and the configurations of the MySQL Users are defined in the PAM User record type.

    For Amazon RDS, the AWS SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate with your AWS Oracle Database

    1. Set up a PAM Database Record

    The PAM Database record contains the admin credentials and necessary configurations to connect to the Oracle RDS instance on AWS. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the Oracle RDS instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Note: Adding Provider Region and Database ID will enable managing the PAM Database Record through the SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration".

    The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    For more details on all the configurable fields in the PAM Configuration record, visit this .

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your AWS environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Code Examples

    Examples of post-rotation scripts in KeeperPAM

    Echo Inputs

    The below example post-rotation scripts simply echo the input parameters in various languages and platforms. The output of the print statements can be found in the Keeper Gateway log file.

    • Bash

    Bash

    Note: For this example, needs to be installed to parse the JSON. Attach this as a PAM script and perform the rotation. The Gateway logfile will contain the output.

    PowerShell

    Attach this as a PAM script and perform the rotation. The Keeper Gateway logfile will contain the output. This script simply echoes the input.

    Here's a PowerShell script that sends a Webhook to a 3rd party site.

    Using Keeper Secrets Manager SDKs

    The post rotation script is not limited to shell scripts. Applications can be written in languages like Python or C# to get the piped parameters. Since the UIDs of the Rotation involved records are passed in the params, the post-rotation script can use the to get additional information.

    Getting Started

    Getting Started with configuring connections on your PAM Record types

    Overview

    In this guide, you will learn how to setup connections for all the supported protocols on your PAM Record types in your Keeper Vault.

    Prerequisites

    Prior to configuring Connections, make sure to have the following:

    Connection Enforcement Policies

    The following Enforcement Policies affect user's permissions to use Connections and need to be enabled.

    Enforcement policies for KeeperPAM are managed in the Keeper Admin Console under Admin > Roles > Enforcement Policies > Privileged Access Manager.

    Enforcement Policy
    Commander Enforcement Policy
    Definition

    Tunnels can also be enabled on the using the enterprise-role command:

    Enforcement Policy Use Cases

    If a user should only have access to launching connections and not configuring connections, then only "Can start connections" policy should be enabled for the user.

    In addition to launching connections, If a user should also have access to configure connections, then "Can configure connections settings" and "Can start connections" should be enabled for the user.

    Session Recordings

    Launched connections can also be recorded. These recordings are available on the PAM Machine, PAM Database, or PAM Directory record types and can be played back on your Vault. For more details on session recording and playback, visit this .

    Installing the Keeper Gateway

    The Keeper Gateway is a hosted agentless service that is installed on the customer's network to enabled zero-trust access to target infrastructure. Typically this service is installed on a Linux or Docker environment in each of the networks that requires access.

    For more details on installing and setting up your gateway, visit this .

    PAM Configuration

    The PAM Configuration contains essential information of your target infrastructure, settings and . Setting up a PAM Configuration for your infrastructure is required. For more information on creating and configuring the PAM Configuration, visit this .

    PAM Machine, PAM Database and PAM Directory

    A Keeper Connection is a secure, encrypted interactive session established between your vault client to the target endpoint. The target endpoint needs to be defined on one of the following PAM Record types:

    PAM Record Type
    Target Endpoint type

    Depending on your target endpoint, visit the corresponding PAM Record Type page for more information on setup.

    Supported Connection Protocols

    The following table lists all the supported connection protocol that can be configured in your Keeper Vault. Visit the associated link for each protocol for more details on configuration.

    Protocol
    PAM Record Type
    Definition

    Connection Authentication Methods

    Connection Templates

    Network Configuration

    The Keeper Gateway establishes outbound-only connections and does not require any inbound firewall rules. The following outbound connections must be allowed:

    Destination
    Port Needed
    More Info

    Keeper Cloud (keepersecurity.[com|eu|com.au|jp|ca|us])

    TLS Port 443

    Communicates with Keeper Cloud to access target infrastructure via native protocols (e.g., SSH, RDP)

    The Gateway preserves zero knowledge by performing all encryption and decryption of data locally. Keeper Secrets Manager APIs are used to communicate with the Keeper cloud.

    Checksum Verification

    Keeper Gateway SHA256 hashes for the latest version are published at the below location:

    https://keepersecurity.com/pam/latest.txt

    Calculating and verifying the checksum:

    Linux

    sha256sum keeper-gateway_linux_x86_64
    cat keeper-gateway_X.X.X_SHA256SUMS | grep keeper-gateway_linux_x86_64

    PowerShell

    Active Directory or OpenLDAP User

    Rotating Active Directory or OpenLDAP user accounts remotely using KeeperPAM

    Overview

    In this guide, you'll learn how to remotely rotate Active Directory or OpenLDAP user accounts using KeeperPAM.

    Azure MariaDB Database

    Rotating Admin/Regular Azure MariaDB Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for Azure MariaDB Users and Admin accounts on your Azure environment using KeeperPAM. Azure MariaDB is an Azure managed resource where the MariaDB Admin Credentials are defined in the record type and the configurations of the MariaDB Users are defined in the record type.

    For Azure Managed MariaDB database, the Azure SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    AWS RDS for PostgreSQL

    Rotating Admin/Regular AWS PostgreSQL Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for AWS PostgreSQL Database User and Admin accounts on your AWS environment using Keeper Rotation. RDS for PostgreSQL is an AWS managed resource where the PostgreSQL Admin Credentials are defined in the PAM Database record type and the configurations of the PostgreSQL Users are defined in the PAM User record type.

    For Amazon RDS, the AWS SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Azure MySQL - Single or Flexible Database

    Rotating Admin/Regular Azure MySQL Single or Flexible Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for Azure MySQL Database Users and Admin accounts on your Azure environment using Keeper Rotation. Azure MySQL is an Azure managed resource where the MySQL Admin Credentials are defined in the PAM Database record type and the configurations of the MySQL Users are defined in the PAM User record type.

    For Azure Managed MySQL database, the Azure SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Azure VM User Accounts

    Rotating local and remote user accounts on Azure Virtual Machines with Keeper

    Overview

    In this guide, you'll learn how to rotate Azure Virtual Machine local and remote user accounts within the Azure environment using KeeperPAM.

    • See the for a high level overview and getting started with Azure

    Access Controls

    KeeperPAM Access Control Implementation

    Overview

    Access to resources and features in KeeperPAM is governed by a robust cloud-based access control plane, leveraging multiple layers of policies and configuration settings. Devices and gateways are assigned specific permissions, enabling them to access and decrypt data allocated to them from the vault. Users with KeeperPAM management privileges can assign access rights to managed resources with flexibility, offering permanent, time-limited, or just-in-time (JIT) access based on organizational needs.

    AWS RDS for SQL Server

    Rotating Admin/Regular AWS SQL Server Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for AWS SQL Server Database User and Admin accounts on your AWS environment using Keeper Rotation. RDS for SQL Server is an AWS managed resource where the SQL Server Admin Credentials are defined in the PAM Database record type and the configurations of the SQL Server Users are defined in the PAM User record type.

    For Amazon RDS, the AWS SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Azure PostgreSQL - Single or Flexible Database

    Rotating Admin/Regular Azure PostgreSQL Single or Flexible Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for Azure PostgreSQL Database Users and Admin accounts on your Azure environment using KeeperPAM. Azure PostgreSQL is an Azure managed resource where the PostgreSQL Admin Credentials are defined in the record type and the configurations of the PostgreSQL Users are defined in the record type.

    For Azure Managed PostgreSQL database, the Azure SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the provided admin credentials and executes the necessary SQL statements to change the password.

    Azure SQL

    Rotating Admin/Regular Azure SQL Database Users with Keeper

    Overview

    In this guide, you'll learn how to rotate passwords for Azure SQL Database Users and Admin accounts on your Azure environment using Keeper Rotation. Azure SQL is an Azure managed resource where the SQL Admin Credentials are defined in the PAM Database record type and the configurations of the SQL Users are defined in the PAM User record type.

    For Azure Managed SQL database, the Azure SDK will be used to rotate the password of Database Admin Accounts. To rotate the passwords of Regular Database Users, Keeper connects to the DB instance with the linked admin credentials and executes the necessary SQL statements to change the password.

    Native Oracle

    Rotating Local Network Oracle database accounts with Keeper Rotation

    Overview

    In this guide, you'll learn how to rotate Local Oracle Database User and/or Admin accounts within your local network using Keeper Rotation. For a high-level overview on the rotation process in the local network, visit this .

    {
        "properties": {
            "roleName": "<ROLE NAME>",
            "description": "<DESCRIPTION>",
            "assignableScopes": [
                "/subscriptions/<SUBSCRIPTION ID>"
            ],
            "permissions": [
                {
                    "actions": [
                        "Microsoft.Compute/virtualMachines/read",
                        "Microsoft.Network/networkInterfaces/read",
                        "Microsoft.Network/publicIPAddresses/read",
                        "Microsoft.Network/networkSecurityGroups/read",
                        "Microsoft.Compute/virtualMachines/instanceView/read",
                        "Microsoft.Resources/subscriptions/resourceGroups/read",
                        "Microsoft.AAD/domainServices/read",
                        "Microsoft.Network/virtualNetworks/subnets/read",
                        "Microsoft.Sql/servers/read",
                        "Microsoft.Sql/servers/databases/read",
                        "Microsoft.DBforPostgreSQL/servers/read",
                        "Microsoft.DBforMySQL/servers/read",
                        "Microsoft.DBforPostgreSQL/servers/databases/read",
                        "Microsoft.Sql/servers/write",
                        "Microsoft.DBforPostgreSQL/servers/write",
                        "Microsoft.DBforMySQL/servers/write",
                        "Microsoft.DBforMySQL/flexibleServers/read",
                        "Microsoft.DBforPostgreSQL/flexibleServers/read",
                        "Microsoft.DBforPostgreSQL/flexibleServers/write",
                        "Microsoft.DBforMySQL/flexibleServers/write",
                        "Microsoft.DBforMariaDB/servers/read",
                        "Microsoft.DBforMariaDB/servers/write"
                    ],
                    "notActions": [],
                    "dataActions": [],
                    "notDataActions": []
                }
            ]
        }
    }
    history -c && echo "BASE64==......" | /path/to/script.sh
    "BASE64==......" | .\script.ps1; Clear-History
    Example in Python
    for r in results:
        if r.was_failure:
            print(f"For record {r.uid}, the script {r.title} failed: {r.stderr}")
    My Vault> pam gateway list
    
    KSM Application Name (UID)   Gateway Name    Gateway UID             Status
    --------------------------   ------------    ----------------------  --------
    My Application1              East Cost       oVCr3n7qV8uARjwSqBQBBw  ONLINE
    My Application2              West Coast      qSiGWa55QVaGEv3_xAO3UA  ONLINE
    My Application3              GovCloud        31t78gWKRQeY54l0u1sbMA  ONLINE
    My Application4              Tokyo           2XT9aKlYTLOyTnVlpny-dA  ONLINE
    My Vault> pam action service
    pam command [--options]
    
    Command    Description
    ---------  ------------------------------------------
    list       List all mappings
    add        Add a user and machine to the mapping
    remove     Remove a user and machine from the mapping
    pam action service add -g <Gateway_UID> -m <Machine_UID> -u <User_UID> -t service
    pam action service add -g <Gateway_UID> -m <Machine_UID> -u <User_UID> -t task
    pam action service add -g <Gateway_UID> -m <Machine_UID> -u <User_UID> -t iis
    pam action service remove -g <Gateway_UID> -m <Machine_UID> -u <User_UID) -t service
    pam action service remove -g <Gateway_UID> -m <Machine_UID> -u <User_UID) -t task
    pam action service remove -g <Gateway_UID> -m <Machine_UID> -u <User_UID) -t iis
    My Vault> pam action service list -g oVCr3n7qV8uARjwSqBQBBw
    
    User Mapping
      Local service user - testuser (pEFr_dJn5EAc3MT_v30DQw)
        * Lureydemo.com Server (CrvdntH-f9mIcraY1InGiw) : Services, Scheduled Tasks
        * Windows 2022 Server  (U3fHEK2i7LIkWZAzANz2sA) : Services, Scheduled Tasks
    My Vault> pam action rotate -r pEFr_dJn5EAc3MT_v30DQw
    Scheduled action id: +dXjf690oGKgg==
    My Vault> pam action job-info +dXjf690oGKgg== --gateway=oVCr3n7qV8uARjwSqBQBBw
    Job id to check [+dXjf690oGKgg==]
    
    Execution Details
    -------------------------
    Status              : finished
    Duration            : 0:01:01.923147
    Response Message    : Rotation completed for record uid XXX with post-execution

    user

    The username for the User

    records

    Base64-encoded JSON array of record dictionaries

    AWS RDS for MariaDB

  • AWS RDS for Oracle

  • MongoDB
    MS SQL Server
    Oracle
    Azure SQL User
    MySQL User or MySQL Flexible User
    MariaDB User or MariaDB Flexible User
    PostgreSQL User or PostgreSQL Flexible User
    AWS Managed Database Admins and Users
    AWS RDS for MySQL
    AWS RDS for SQL Server
    AWS RDS for PostgreSQL
    Cloud SQL for MySQL
    Cloud SQL for SQL Server
    Cloud SQL for PostgreSQL
    Azure Client Secret
    Cisco IOS EX
    Cisco Meraki
    WinRM setup page

    Keeper Router (connect.keepersecurity.[com|eu|com.au|jp|ca|us])

    TLS Port 443

    Communicates with Keeper Router to establish secure, real-time WebSocket connections

    Keeper KRelay Server (krelay.keepersecurity.[com|eu|com.au|jp|ca|us])

    TCP and UDP opened on Port 3478 Outbound access to TCP and UDP ports 49152 through 65535

    Facilitates secure and encrypted relay connections between end-user's vault and target systems via the Gateway

    Get-FileHash -Algorithm SHA256 keeper-gateway_windows_x86_64.exe | Format-List
    Get-Content keeper-gateway_X.X.X_SHA256SUMS | Select-String keeper-gateway_windows_x86_64.exe

    Keeper Router (connect.keepersecurity.[com|eu|com.au|jp|ca|us])

    TLS Port 443

    Communicates with Keeper Router to establish secure, real-time WebSocket connections

    Keeper KRelay Server (krelay.keepersecurity.[com|eu|com.au|jp|ca|us])

    TCP and UDP opened on Port 3478 Outbound access to TCP and UDP ports 49152 through 65535

    Facilitates secure and encrypted relay connections between end-user's vault and target systems via the Gateway

    Get-FileHash -Algorithm SHA256 keeper-gateway_windows_x86_64.exe | Format-List
    Get-Content keeper-gateway_X.X.X_SHA256SUMS | Select-String keeper-gateway_windows_x86_64.exe
    section
    section
    section

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    Database Type

    mssql

    Microsoft ODBC driver
    port mapping

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MongoDB requires a database and so this will default to admin.

    Database Type

    mongodb

    port mapping

    Database Type

    mysql

    port mapping

    Password

    Admin account password

    Database ID

    The AWS DB instance ID

    Database Type

    mysql

    Provider Region

    The region your Amazon RDS instance is using. i.e us-east-2

    Access Key ID

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Access Secret Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Secret Access Key.

    configured
    port mapping

    Password

    Admin account password

    Database ID

    The AWS DB instance ID

    Database Type

    mariadb

    Provider Region

    The region your Amazon RDS instance is using. i.e us-east-2

    Access Key ID

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Access Secret Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Secret Access Key.

    configured
    port mapping

    Password

    Admin account password

    Database ID

    The AWS DB instance ID

    Database Type

    mysql

    Provider Region

    The region your Cloud SQL instance is using. i.e us-central1

    Service Account Key

    Copy the JSON text of the service account key of the Gateway

    Google Workspace Administrator Email

    The email address for a Workspace administrator account that can be used to manage passwords for GCP Principals.

    configured
    port mapping

    Database Type

    maridb or maridb-flexible

    port mapping
    Discovery
    Discovery
    PAM Machine
    PAM Database
    PAM Directory
    PAM Remote Browser

    Access Key ID

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Access Secret Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Secret Access Key.

    configured

    Service Account Key

    Copy the JSON text of the service account key of the Gateway

    Google Workspace Administrator Email

    The email address for a Workspace administrator account that can be used to manage passwords for GCP Principals.

    configured
    PAM User Records for IAM Users

    Client ID

    The unique Application (client) ID assigned to your app by Azure AD when the application was registered

    Client Secret

    The client credentials secret for the Azure application. It’s random looking text.

    Subscription ID

    The UUID that identifies your subscription (i.e. Pay-As-You-GO) to use Azure services.

    Tenant ID

    The UUID of the Azure Active Directory

    WinRM setup page

    Linked PAM User record that contains the username and password (or SSH Key) of the Admin account which will perform the rotation.

    Operating System

    For Mac OS rotation, use: MacOS

    Record Type

    PAM Machine

    Title

    My macOS User

    Hostname or IP Address

    IP address or hostname of the directory macOS device. Use localhost if the gateway is installed on the device. Examples: 10.10.10.10, MarysMacBook, localhost

    Port

    SSH port, typically: 22 - SSH is required for rotation.

    Use SSL

    Must be enabled

    Title

    Configuration name, example: MAC Rotation

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that has SSH access to your MacOS devices

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the machine resources.

    Default Rotation Schedule

    Optional

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    Other fields

    These should be left blank

    role
    role
    application
    gateway
    SSH

    Administrative Credentials

    If the Gateway is installed on a Linux or macOS server, install the Microsoft ODBC driver

  • Your AWS environment is configured per our documentation

  • Admin account password

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    Database ID

    The AWS DB instance ID

    Database Type

    mssql

    Provider Region

    The region your Amazon RDS instance is using. i.e us-central1

    Copy the JSON text of the service account key of the Gateway

    Google Workspace Administrator Email

    The email address for a Workspace administrator account that can be used to manage passwords for GCP Principals.

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Title

    Keeper record title Ex: GCP SQL Server Admin

    Hostname or IP Address

    The SQL Server Endpoint

    Port

    The SQL Server Port, for default ports see port mapping i.e. 1433

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Login

    Admin account username that will perform rotation

    Title

    Configuration name, example: GCP Workspace Configuration

    Environment

    Select: Google Cloud

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application.

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    GCP ID

    A unique ID for this instance of Google Cloud. This is only for your reference and can be anything, but its recommended to be kept short Ex: GCP-DepartmentName

    Title

    Keeper record title i.e. GCP DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    role
    role
    application
    gateway
    page

    Password

    Service Account Key

    Your GCP environment is configured per our documentation

    Admin account password

    Connect Database

    Optional database that will be used when connecting to the database server. For example, PostgreSQL requires a database and so this will default to template1.

    Database ID

    The AWS DB instance ID

    Database Type

    postgresql

    Provider Region

    The region your Amazon RDS instance is using. i.e us-central1

    Copy the JSON text of the service account key of the Gateway

    Google Workspace Administrator Email

    The email address for a Workspace administrator account that can be used to manage passwords for GCP Principals.

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Title

    Keeper record title Ex: GCP PostgreSQL Admin

    Hostname or IP Address

    The RDS Endpoint

    Port

    The PostgreSQL Port, for default ports see port mapping i.e. 5432

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Login

    Admin account username that will perform rotation

    Title

    Configuration name, example: GCP Workspace Configuration

    Environment

    Select: Google Cloud

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application.

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    GCP ID

    A unique ID for this instance of Google Cloud. This is only for your reference and can be anything, but its recommended to be kept short Ex: GCP-DepartmentName

    Title

    Keeper record title i.e. GCP DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example: PostgreSQL requires a database and so this will default to template1

    role
    role
    application
    gateway
    page

    Password

    Service Account Key

    Your AWS environment is configured per our documentation

    Admin account password

    Connect Database

    Optional database that will be used when connecting to the database server.

    Database ID

    The AWS DB instance ID

    Database Type

    oracle

    Provider Region

    The region your Amazon RDS instance is using. i.e us-east-2

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Access Secret Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Secret Access Key.

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Title

    Keeper record title Ex: AWS Oracle Admin

    Hostname or IP Address

    The RDS Endpoint i.e. rdsdb.ckivswes.us-east-2.rds.amazonaws.com

    Port

    The RDS Port, for default ports see port mapping i.e. 1521

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Login

    Admin account username that will perform rotation

    Title

    Configuration name, example: AWS RDS Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Oracle RDS Instance

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    AWS ID

    A unique ID for this instance of AWS. This is for your reference and can be anything, but its recommended to be kept short Ex: AWS-1

    Title

    Keeper record title i.e. AWS DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example: PostgreSQL requires a database and so this will default to template1

    role
    role
    application
    gateway
    page

    Password

    Access Key ID

    - Bypass list for excluded hosts

    --proxy-password

    Authentication password (if required)

    mypassword

    --no-proxy

    Comma-separated list of hosts to bypass

    localhost,127.0.0.1,.internal

    https_proxy environment variable

  • HTTP_PROXY environment variable

  • http_proxy environment variable

  • ,
    .local
    (matches all subdomains)

    --proxy-url

    Complete proxy URL with optional credentials

    http://proxy.company.com:8080

    --proxy-host

    Proxy server hostname or IP address

    proxy.company.com

    --proxy-port

    Proxy server port number

    8080

    --proxy-username

    Authentication username (if required)

    myuser

    Your Google Cloud environment is configured per our documentation

    Directory Service Admin Account's Distinguished Name (DN).

    Example: CN=jsmith,OU=Cloud,DC=example,DC=com Note: If DN is not provided, the following format will be used: Given domain name is example.com: CN=<user>,CN=Users,DC=example,DC=com

    Domain Name

    The Directory DNS Name Note: This is required if using Login instead of Distinguished Name

    Directory ID

    Directory Service's Identifier i.e d-##########

    Directory Type

    Directory Service Directory type, defaults to Active Directory if left blank.

    Provider Region

    Google Cloud region name i.e. us-east1

    Copy the JSON text of the service account key of the Gateway

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Title

    Name of the Record i.e. AD Domain Service

    Hostname or IP Address

    The Directory DNS Name i.e. ad.pam.test

    Port

    636 for LDAPS

    Use SSL (checkbox)

    Must be checked

    Administrative Credentials

    PAM User providing the directory service admin account and password i.e. Admin Note: Either Login and Domain Name or Distinguished Name is required. Distinguished Name is preferred.

    Title

    Configuration name, example: GCP Workspace Configuration

    Environment

    Select: Google Cloud

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application.

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    GCP ID

    A unique ID for this instance of Google Cloud. This is only for your reference and can be anything, but its recommended to be kept short Ex: GCP-DepartmentName

    Title

    Keeper record title i.e. AWS Directory User1

    Login

    Username of the Directory Service's user account

    Password

    Account password is optional, rotation will set one if blank

    Distinguished Name

    Directory Service User Account's Distinguished Name (DN)

    role
    role
    application
    gateway
    page

    Distinguished Name

    Service Account Key

    PowerShell
    Keeper Secrets Manager SDKs
    jq
    Keeper Secrets Manager SDKs
    export HTTPS_PROXY="http://proxy.company.com:8080"
    export NO_PROXY="localhost,127.0.0.1,.local"
    set HTTPS_PROXY=http://proxy.company.com:8080
    set NO_PROXY=localhost,127.0.0.1,.local
    $env:HTTPS_PROXY="http://proxy.company.com:8080"
    $env:NO_PROXY="localhost,127.0.0.1,.local"
    export HTTPS_PROXY="http://username:[email protected]:8080"
    services:
      keeper-gateway:
        platform: linux/amd64
        image: keepersecurityinc/gateway:latest
        environment:
          GATEWAY_CONFIG: <your-gateway-config>
    
          # Proxy Configuration
          HTTP_PROXY: http://proxy:3128
          HTTPS_PROXY: http://proxy:3128
          NO_PROXY: localhost,127.0.0.1,db-mysql,server-ssh,server-rdp
    
        networks:
          - internal-network
        depends_on:
          - proxy
    networks:
      # Internal network with NO internet access
      airgapped-internal-network:
        internal: true
        ipam:
          config:
            - subnet: 10.99.0.0/24
    
      # Public network (proxy only)
      public-internet-network:
        driver: bridge
    
    services:
      # HTTP Proxy (bridges networks)
      proxy:
        platform: linux/amd64
        image: ubuntu/squid:latest
        networks:
          - airgapped-internal-network
          - public-internet-network
        ports:
          - "3128:3128"
        volumes:
          - ./squid.conf:/etc/squid/squid.conf:ro
    
      # Keeper Gateway (air-gapped)
      keeper-gateway:
        platform: linux/amd64
        image: keepersecurityinc/gateway:latest
        environment:
          GATEWAY_CONFIG: <your-gateway-config>
          HTTP_PROXY: http://proxy:3128
          HTTPS_PROXY: http://proxy:3128
          NO_PROXY: localhost,127.0.0.1,internal-service
        networks:
          - airgapped-internal-network  # NO public-internet-network
        depends_on:
          - proxy
    [scheme://][username:password@]hostname:port
    http://proxy.company.com:8080
    https://proxy.company.com:8080
    http://username:[email protected]:8080
    http://user:p%40ssw0rd%[email protected]:8080
    NO_PROXY=localhost,127.0.0.1
    NO_PROXY=localhost,127.0.0.1,.corp.internal,.local
    NO_PROXY=localhost,127.0.0.1,db-mysql,server-ssh,server-rdp,server-vnc
    INFO - Applying proxy configuration: proxy.company.com:8080
    INFO - Using proxy for WebSocket: proxy.company.com:8080
    curl -x http://proxy.company.com:8080 https://keepersecurity.com
    Invoke-WebRequest -Uri https://keepersecurity.com -Proxy http://proxy.company.com:8080
    curl -x http://username:[email protected]:8080 https://keepersecurity.com
    Get-ADUser -Identity "username" | Select-Object -ExpandProperty DistinguishedName
    Import-Module ActiveDirectory
    decode-and-echo.sh
    #!/bin/bash
    
    # Read the Base64 encoded JSON input and decode it
    decoded_json=$(cat | base64 --decode)
    
    # Extract the "records" field, which is Base64 encoded, and decode it separately
    records_base64=$(echo "$decoded_json" | jq -r '.records')
    
    # Decode the Base64 "records" field and pretty-print the JSON
    decoded_records=$(echo "$records_base64" | base64 --decode | jq '.')
    
    # Print the entire decoded JSON, replacing "records" with the decoded version
    echo "$decoded_json" | jq --argjson records "$decoded_records" '.records = $records'
    Begin {
        # Executes once before first item in pipeline is processed
    }
    
    Process {
        # Stop if error. If not set, result value will be True and assumed there
        # was no problem.
        $ErrorActionPreference = "Stop"
    
        # Executes once for each pipeline object    
        $JSON = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($_))
        $Params = ($JSON | ConvertFrom-Json)
    
        Write-Output "providerRecordUid=$($Params.providerRecordUid)"
        Write-Output "resourceRecordUid=$($Params.resourceRecordUid)"
        Write-Output "userRecordUid=$($Params.userRecordUid)"
        Write-Output "newPassword=$($Params.newPassword)"
        Write-Output "oldPassword=$($Params.oldPassword)"
        Write-Output "user=$($Params.user)"
    
        $recordsJSON = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Params.records))
        $records = ($recordsJSON | ConvertFrom-Json)
    
        # Output full JSON for records
        Write-Output "Full Records JSON: $recordsJSON"
    
        # Extract the provider title from the records
        $title = ($records | Where-Object {$_.uid -eq $Params.providerRecordUid}).title
        Write-Output "Provider Title=$title"
    
        # Loop through all records and display details
        foreach ($record in $records) {
            Write-Output "Record UID=$($record.uid)"
            Write-Output "Record Title=$($record.title)"
            Write-Output "Record Type=$($record.type)"
            Write-Output "Record Details=$($record.details | ConvertTo-Json)"
        }
    }
    
    End {
        # Executes once after last pipeline object is processed
    }
    param (
        [Parameter(ValueFromPipeline=$true)]
        [string]
        $Record
    )
    
    # Decode the Base64 input and convert it to a PowerShell object
    $RecordJsonAsB64 = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($Record))
    $Params = $RecordJsonAsB64 | ConvertFrom-Json
    
    # Prepare the webhook payload
    $webhookPayload = @{
        providerRecordUid=$Params.providerRecordUid
        resourceRecordUid=$Params.resourceRecordUid
        userRecordUid=$Params.userRecordUid
        user=$Params.user
        timestamp= (Get-Date).ToString("yyyy-MM-ddTHH:mm:ssZ")
        message= "Post-rotation script executed successfully."
    } | ConvertTo-Json
    
    # Define the webhook URL
    $webhookUrl = "https://webhook.site/3308ec5a-3fba-4e31-85ad-37b0f643ac82"
    
    # Send the POST request to the webhook
    try {
        Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $webhookPayload -ContentType 'application/json'
        Write-Host "Webhook message sent successfully."
    }
    catch {
        Write-Error "Failed to send webhook message: $_"
    }
    #!/usr/bin/env python3
    
    import sys
    import base64
    import json
    
    from keeper_secrets_manager_core import SecretsManager
    
    # sys.stdin is not an array, it can not subscripted (ie sys.stdin[0])
    for base64_params in sys.stdin:
        params = json.loads(base64.b64decode(base64_params).decode())
            
        print(f"providerRecordUid={params.get('providerRecordUid')}")
        print(f"resourceRecordUid={params.get('resourceRecordUid')}")
        print(f"userRecordUid={params.get('userRecordUid')}")
        print(f"newPassword={params.get('newPassword')}")
        print(f"oldPassword={params.get('oldPassword')}")
        print(f"user={params.get('user')}")
    
        records = json.loads(base64.b64decode(params.get('records')).decode())
        print("Provider Title="
            f"{next((x for x in records if x['uid'] == params.get('providerRecordUid')), None).get('title')}")
    
        ksm = SecretsManager(config=...)
        resource_records = ksm.get_secrets(params.get('userRecordUid'))[0]
        
        break

    Create a PAM Resource

  • Configure rotation settings

  • Can rotate credentials

    All users to perform a password rotation action

    PAM Machine Windows, Linux, macOS machines on-prem or in the cloud
  • PAM Remote Browser Remote browser isolation to protect web-based applications

  • Administrative Credentials Keeper record which contains privileged credentials for performing rotation and discovery.

    Assign the Secrets Manager application to the Shared Folders

  • Set the shared folder permissions containing the PAM Users from Read Only to Can Edit

  • Add a Keeper Gateway to the Secrets Manager application

  • Create a PAM Configuration which ties everything together

  • Assign rotation settings to the PAM User records

  • Can create applications and manage secrets

    Allow users to create a Secrets Manager Application

    Can create, deploy and manage Keeper Gateways

    Allow users to deploy and manage a Keeper Gateway

    Can configure rotation settings

    Allow users to set up rotation on a PAM User record

    Can configure rotation settings (legacy setting)

    Request a Demo
    Contact Support
    Getting Started
    Enable Enforcement Policies
    Deploy a Keeper Gateway
    Create a PAM User record
    Keeper Commander CLI
    just a few steps
    Quick Start: Sandbox
    follow this page
    PAM User
    Record Linking
    PAM Resources
    PAM Configuration
    Applications
    Gateways
    Keeper Commander
    pam action rotate
    pam action job-info
    Service Management
    Importing PAM Records
    KeeperPAM Enforcement Policies
    Deploy a Keeper Gateway
    Application Setup
    Application associated to Gateway
    Creating a PAM User record
    Create new Machine, Database or Directory

    This should be set the same as ALLOW_PAM_ROTATION

    Database connections (MySQL, PostgreSQL, SQL Server, Oracle, etc.)

    Comprehensive logging of all account creation and removal activities

    PostgreSQL User
  • Microsoft Server SQL User

  • Full audit trails capture all elevation activities

    Detailed justification requirements
  • Single-user mode (Check-in / Check-out)

  • MFA enforcement on access

  • User-specific approval requirements
  • Plan for emergencies: Establish break-glass procedures for critical situations where normal approval workflows may be too slow

  • Keeper Privilege Manager
    Keeper Privilege Manager
    Password Rotation
    [email protected]
    Just-In-Time Ephemeral Account Creation during PAM Sessions
    Just-In-Time Role Elevation during Privileged Sessions
    Just-In-Time Access with Keeper Privilege Manager
    Time-Limited Access
    Workflow and Requests for Approval

    PAM Database

    Connecting to the target defined on the PAM Database Record with the SQL Server connection protocol

    PAM Database

    Connecting to the target defined on the PAM Database Record with the PostgreSQL connection protocol

    PAM Machine

    Connecting to the target defined on the PAM Machine Record with the VNC connection protocol

    PAM Machine

    Connecting to the target defined on the PAM Machine Record with the Telnet connection protocol

    Can configure connection settings

    Allow users to configure Tunnel settings on PAM Machine, PAM Directory, PAM Database and PAM Configuration Records Types

    Can start connections

    Allow users to start tunnels on PAM Machine, PAM Directory and PAM Database Record Types

    Can view recordings

    Allow users to view session Recordings.

    PAM Machine

    Windows/MacOS/Linux Machines, EC2 Instances, Azure VMs

    PAM Database

    MySQL, PostgreSQL, SQL Server, MongoDB, MariaDB, Oracle

    PAM Directory

    Active Directory, OpenLDAP

    PAM Remote Browser

    Web-based applications

    SSH

    PAM Machine

    Connecting to the target defined on the PAM Machine Record with the SSH connection protocol

    RDP

    PAM Machine

    Connecting to the target defined on the PAM Machine Record with the RDP connection protocol

    RBI

    PAM Browser

    Connecting to the URL defined in the PAM Browser Record with the Remote Browser Isolation (http/https) protocol

    MySQL

    PAM Database

    Keeper Commander CLI
    page
    page
    Keeper Gateway
    page
    KeeperPAM Enforcement Policies

    Connecting to the target defined on the PAM Database Record with the MySQL connection protocol

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Keeper Gateway is online

    • The Keeper Gateway is able to communicate via LDAPS (port 636) or LDAP (port 389) to your directory.

    1. Set up a PAM Directory credential

    Keeper Rotation will use the linked admin credential to rotate other accounts in your directory. This account does not need to be a domain admin account, but needs to be able to successfully change passwords for other accounts.

    The linked admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    PAM Directory record

    PAM Directory Record Fields

    Field
    Description

    Record Type

    PAM Directory

    Title

    Keeper record title

    Hostname or IP Address

    IP address, hostname or FQDN of the directory server. Examples: 10.10.10.10, dc01.mydomain.local

    Port

    636 - LDAPS is required for rotation on Active Directory. LDAP over port 389 is insecure and should be avoided.

    Use SSL

    Must be enabled for use with Active Directory

    2. Set up a PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    A PAM Configuration associates an environment with a Keeper Gateway and credentials. If you don't have a PAM Configuration set up yet for this use case, create one.

    Field
    Description

    Title

    Configuration name, example: My Active Directory

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that has access to your directory server

    Application Folder

    Select the Shared folder that contains the PAM Directory record

    Other fields

    Depends on your use case. See the section.

    3. Set up PAM User records

    KeeperPAM will use the credentials linked from the "PAM Directory" record to rotate other "PAM User" records in your environment. The PAM User credential needs to be saved in a shared folder that is assigned to the secrets manager application. In the example below, the AD user demouser can be rotated.

    Example of Active Directory account password rotation

    PAM User Record Fields

    Field
    Description

    Record Type

    PAM User

    Title

    Keeper record title, e.g. AD User - demouser

    Login

    Username of the account being rotated. The format of the username depends on the target system and type of service. Examples: demouser [email protected]

    Password

    Account password is optional. In most cases, a password rotation will not require the existing password to be present. However there are some scenarios and protocols which may require it.

    Distinguished Name

    Required for Active Directory and OpenLDAP directories. The LDAP DN for the user, e.g. CN=Demo User,CN=Users,DC=lureydemo,DC=local

    If you don't know the user's DN, the following PowerShell command can be used to find it:

    4. Configure Rotation on the Record

    Select the PAM User record, edit the record and open the "Password Rotation Settings".

    Any user with edit rights to a PAM User record and enforcement policies allowing rotation has the ability to set up rotation for that record.

    PAM User scheduled rotations
    • The "Rotation" should be of type "General".

    • The "PAM Resource" field should select the "PAM Directory" credential setup previously.

    • Select the desired schedule and password complexity.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Troubleshooting

    An easy way to test if LDAP is properly configured is to run 'LDP.exe' and test the connection. If this connection succeeds, then Keeper Rotation should also succeed.

    Testing and LDAP connection with LDP.exe

    Testing with a Self-Signed Cert

    For the purpose of testing an Active Directory user account rotation with Keeper, it is necessary to ensure that the LDAPS connection is active and using a valid certificate. If you are just testing and don't have a production certificate, the instructions below provide you with a self-signed cert.

    Using a self-signed certificate with AD is only for testing purposes, do not use in production

    1

    Create a cert

    From PowerShell running as an administrator, create a self-signed cert. Note that the subject name and alternate names of the certificate must match with the server hostname. In this example, the primary name is XYZ123.company.local with alternate names company.local and company.

    2

    Install the cert

    This script will locate the cert in the personal section of the certificate manager and copy it into the trusted domains. Replace the company parameter in the first line of this script with the domain in step 1.

    3

    Restart NTDS

    After restarting the NTDS service, the certificate should be installed.

    4

    Check the connectivity

    Run 'LDP.exe' and make sure that you're able to connect to the local domain over port 636 with SSL enabled.

    See the Azure Overview for a high level overview and getting started with Azure

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Azure environment is configured per our documentation

    • Your Keeper Gateway is online

    • Your Keeper Gateway is able to communicate with the Azure Managed MariaDB database

    1. Set up a PAM Database Record

    The PAM Database record links to the admin credentials and necessary configurations to connect to the MariaDB server on Azure. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the Azure MariaDB Server instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: Azure MariaDB Admin

    Hostname or IP Address

    The Database Server name i.e testdb-mariadb.mariadb.database.azure.com

    Port

    For default ports, see Ex: mariadb=3306

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    PAM User admin account username that will perform rotation. If the admin in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@SERVERNAME

    Note: Adding Provider Group, Provider Region, and Database ID will enable managing the PAM Database Record through the Azure SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: Azure DB Configuration

    Environment

    Select: Azure Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Azure MariaDB database from the pre-requisites

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    Azure ID

    A unique ID for this instance of Azure. This is for your reference and can be anything, but its recommended to be kept short Ex: Azure-Prod

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up one or more PAM User records

    Keeper Rotation will use the linked credentials in the PAM Database record to rotate the PAM User records on your Azure environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. Azure MariaDB User1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@SERVERNAME

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    PAM Database
    PAM User
    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate with your AWS PostgreSQL Database

    • Your AWS environment is per our documentation

    1. Set up a PAM Database Record

    The PAM Database record contains the admin credentials and necessary configurations to connect to the PostgreSQL RDS instance on AWS. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the PostgreSQL RDS instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: AWS PostgreSQL Admin

    Hostname or IP Address

    The RDS Endpoint i.e. rdsdb.ckivswes.us-east-2.rds.amazonaws.com

    Port

    The RDS Port, for default ports see i.e. 5432

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Login

    Admin account username that will perform rotation

    Note: Adding Provider Region and Database ID will enable managing the PAM Database Record through the SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration".

    The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: AWS RDS Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your PostgreSQL RDS Instance

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    AWS ID

    A unique ID for this instance of AWS. This is for your reference and can be anything, but its recommended to be kept short Ex: AWS-1

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your AWS environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. AWS DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example: PostgreSQL requires a database and so this will default to template1

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

  • See the Azure Overview for a high level overview and getting started with Azure

  • In 2024, Azure is going to sunset the non-flexible MySQL managed services. Most likely the term flexible will be removed. See: What's happening to Azure Database for MySQL Single Server?

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Azure environment is configured per our documentation

    • Your Keeper Gateway is online

    • Your Keeper Gateway is able to communicate with the Azure MySQL Server Database

    1. Set up a PAM Database Record

    The PAM Database record links to the admin credentials and necessary configurations to connect to the MySQL Server on Azure. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the Azure MySQL Server instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: Azure MySQL Admin

    Hostname or IP Address

    The Database Server name i.e testdb-sql.mysql.database.azure.com

    Port

    For default ports, see Ex: mysql=3306

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    PAM User admin account username and password that will perform rotation. If the Admin account in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Note: Adding Provider Group, Provider Region, and Database ID will enable managing the PAM Database Record through the Azure SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: Azure DB Configuration

    Environment

    Select: Azure Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Azure MySQL database from the pre-requisites

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    Azure ID

    A unique ID for this instance of Azure. This is for your reference and can be anything, but its recommended to be kept short Ex: Azure-Prod

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up one or more PAM User records

    Keeper Rotation will use the linked credentials in the PAM Database record to rotate the PAM User records on your Azure environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. Azure DB User1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@SERVERNAME

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Prerequisites
    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Azure environment is configured per our documentation

    • A Keeper Rotation gateway is already installed

    • The Gateway can communicate to the target Windows machine using or

    • PowerShell is available on all Windows machines and bash on all Linux targets

    1. Set up PAM Machine Records

    Keeper can rotate any local user account on either the Gateway machine or any other machine on the network. A PAM Machine record should be created for every machine. This PAM Machine record will be associated to a linked administrative credential that has the rights to change passwords for users on the machine.

    Once a PAM Machine record is created for every machine, a PAM User record needs to be created for each user account that will be rotated.

    The following table lists all the required fields that needs to be filled on the PAM Machine records.

    Field
    Description

    Title

    Name of the Record e.g. Windows Machine 1

    Hostname or IP Address

    Machine hostname or IP as accessed by the Gateway, e.g. 10.0.1.4

    Port

    Typically 5985 or 5986 for WinRM, 22 for SSH

    Private PEM Key

    Required for SSH if not using a password

    Operating System

    The VM Operating System: Windows or Linux

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    Make sure the following items are completed first:

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is provisioned in the Keeper Secrets Manager application you created.

    • PAM Machine records have been created for each target machine

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields that needs to be filled on the PAM Configuration.

    Field
    Description

    Title

    Configuration name, example: Azure Demo

    Environment

    Select: Azure Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to the machine configured from step 1

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the admin accounts, not the machines.

    Azure ID

    A unique ID for this instance of Azure. This is for your reference and can be anything, but its recommended to be kept short Ex: Azure-prod

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up PAM User records

    Keeper Rotation will use the credentials linked from the PAM Machine record to rotate the credentials of accounts referenced by the PAM User records.

    The following table lists all the required fields that need to be filled on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. Local User1

    Login

    Case sensitive username of the account being rotated. The username has to be in one of the following formats: domain\username username@domain

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Machine admin credential specific to this user's machine.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Helpful Resources

    • Setting up WinRM on your Azure VM

    Service Management

    Keeper can automatically update the Windows service account "log on as" credentials for any Windows services running as the PAM User, and restart the service. Keeper will also update the credential of any scheduled task running as that user on the target machine.

    To learn more and set up this capability, see the Service Management page.

    Azure Overview
    Planning your Deployment
  • Role-Based Enforcement Policies

  • PAM Configuration Settings

  • Application and Device Access Control

  • Device and Gateway IP Locking

  • PAM Resource Sharing and Permissions

  • Record Linking

  • Zero-Trust Access through Connection Sharing

  • Time-limited Access

  • Revoking Access

  • Planning your Deployment

    For optimal use of KeeperPAM, it is recommended to create a dedicated service account user within the Keeper Admin Console. This account will oversee the creation and management of Applications, Shared Folders, Gateways, Resources and their associated rights and permissions.

    Vault KSM Application Sharing

    Keeper Commander and Vault version 17.3+ support "Application Sharing", which allows multiple administrators to share applications and gateways.

    Go to Secrets Manager > Applications > Edit and select the administrators who require management of the application, devices and gateways.

    • Application Admin: Can manage application folders, users, all devices and gateways

    • Application Viewer: Can view and use the application and gateways

    Application Sharing

    Keeper Commander

    Sharing and unsharing applications is available in the Keeper Commander CLI and SDK.

    See the secrets-manager app share command.

    Role-Based Enforcement Policies

    Enforcement Policies determine what overall permissions a user has associated to their role. A role can have administrative abilities, or they can be limited to only using resources assigned to them.

    • From the Admin Console, visit Admin > Roles

    • Either create a new role or modify an existing role

    • Under Enforcement Policies, visit the "Privileged Access Manager" tab

    PAM Roles
    Example of role with KeeperPAM administration capabilities
    Example of a role with the ability to only launch connections and tunnels

    A more in-depth look at Admin Console nodes, roles and permissions can be found in the Keeper Enterprise admin guide:

    • Nodes and Organizational Structure

    • Roles, RBAC and Permissions

    PAM Configuration Settings

    The PAM Configuration acts as a set of "parental controls" for PAM records. It enables or disables specific PAM features for all resources using the configuration.

    PAM Configuration
    • More information on PAM Configuration

    Application and Device Access Control

    When creating an application with its devices and gateways, the admin assigns access to specific shared folders with record permissions. This setup allows controlled vault access for both the gateways and the connected devices interacting with the Keeper vault. By managing permissions at both the application and gateway levels, an extra security layer is added.

    Application Permissions

    Multiple applications can be associated to a Shared Folder with different levels of permission.

    Adding multiple applications to a shared folder

    Device and Gateway IP Locking

    When creating a new Device or Gateway on a Windows or Linux-based installation method, Keeper provides the option to apply IP locking upon first access. This added security measure is layered on top of the existing device authorization model.

    Device and Gateway IP Locking

    PAM Resource Sharing and Permissions

    As a zero-knowledge platform, Keeper provides resource-level access control through our secure sharing technology, powered by strong encryption. Access to a resource is controlled through both policy (RBAC, ABAC) in addition to encryption. In order to access a resource, the user must be able to decrypt the record in their vault. The decryption process allows the user to establish a zero trust connection to the target system, or simply access a secret.

    In the Keeper Vault, Shared Folders control access to any resource managed by KeeperPAM. Resources can be placed inside shared folders just like any other Keeper record.

    One of the key benefits of the KeeperPAM platform is the ability to share access to a resource without exposing credentials to the recipient.

    A Shared Folder contains PAM Resources, such as:

    • PAM Machine

    • PAM Database

    • PAM Directory

    • PAM Remote Browser

    • PAM User

    To ensure least privilege, we recommend splitting the PAM Users into a separate shared folder, in order to restrict what users and devices can access the underlying secrets. When launching our Quick Start Sandbox or using our Gateway wizard, Keeper will automatically place the resources and users into separate shared folders.

    For example, this demo environment as seen below provides full access to DevOps, but limits access to only viewing and using resources to the Developers team:

    Managing access to PAM Resources

    In this scenario, only the DevOps team has access to the Users folder. The Developers are restricted from accessing these credentials.

    Managing access to PAM Users

    Record Level Permissions

    Resource-level permissions in a shared folder limit members from editing or sharing records. Users with view-only access can still use PAM features, like launching sessions, if their role allows it.

    Record-level permissions on PAM Resources

    To ensure least privilege access, the recommendation is to reduce record-level permissions in a Shared Folder to "View Only". Only the Keeper service account user responsible for building Applications and Gateways should have full administrative capabilities.

    Direct Resource Sharing

    A record can be shared to an individual user with persistent or time-limited access.

    To share an individual record, click on Share and then select the user. Providing view-only access to a resource allows the recipient to launch connections and tunnels to the target without having access to the underlying credentials.

    Share an Individual Resource

    A user can be assigned standing access or time-limited access to a resource.

    Sharing with Time-limited Access

    Team Level Permissions

    From the Admin Console, a team can optionally be restricted in their ability to edit or re-share records that have been provisioned to the team via shared folders across the entire environment. This only applies to shared folders that have been assigned to a specific team.

    Restricting Permissions on Teams

    Share Admin Permissions

    Managing ownership and permissions of resources and records within the Keeper Vault can be delegated to other Keeper admins through the Share Admin permission.

    • Read more about the Share Admin feature in the Keeper Enterprise docs

    Share Admin Permissions

    Record Linking

    A PAM User record containing credentials can be "linked" to a PAM Resource. Sharing a PAM Resource record to another user does not automatically share the linked credentials. This allows the recipient with view-only access with the ability to launch zero-trust connections without having access to the underlying credentials.

    • Sharing a resource to a user with view-only access only gives them the ability to launch connections and tunnels.

    • Keeper's zero-trust architecture provides access to the target systems without sharing the credential, ensuring least privilege access.

    In the example below, a PAM Database is linked to a specific user sqluser. Connections to the database using that account is available to users without access to the actual credential.

    Linking a PAM User to a Resource

    Here's another example which provides SSH access to a Linux machine without sharing the key:

    SSH Access to a machine without the key

    Time-Limited Access

    Folder and record access can be either persistent or time-limited.

    Time-limited Access

    Access to the resource can be revoked at a specific date and time.

    Revoking Access

    Removing a user from a Shared Folder or removing the user from a direct share of the resource will immediately destroy any active sessions or tunnels.

    To remove a user from a Shared Folder:

    • Select the Shared Folder

    • Select "Edit" and then remove the user or team from the "Users" tab

    • Click Save

    To remove a user from an individual resource

    • Select the record

    • Click on "Sharing"

    • Delete the share

    Removing access

    If you select "Remove ... from all your shared records", this will revoke access to all resources and destroy any active sessions or tunnels for that user.

    Automatic Rotation after Share Expiration

    If you have a use case where a PAM User credential needs to be shared to another user, you have the option of automatically rotating the credential after the sharing has expired.

    Rotate password upon expiration

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate with your AWS SQL Server Database

    • If the Gateway is installed on a Linux or macOS server, install the

    • Your AWS environment is per our documentation

    1. Set up a PAM Database Record

    The PAM Database record contains the admin credentials and necessary configurations to connect to the SQL Server RDS instance on AWS. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the SQL Server RDS instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: RDS SQL Server Admin

    Hostname or IP Address

    The RDS Endpoint i.e. rdsdb.ckivswes.us-east-2.rds.amazonaws.com

    Port

    The RDS Port, for default ports see i.e. 1433

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Login

    Admin account username that will perform rotation

    Note: Adding Provider Region and Database ID will enable managing the PAM Database Record through the SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration".

    The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: AWS RDS Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your SQL Server RDS Instance

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    AWS ID

    A unique ID for this instance of AWS. This is for your reference and can be anything, but its recommended to be kept short Ex: AWS-1

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up PAM User Records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your AWS environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. AWS DB User 1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

  • See the Azure Overview for a high level overview and getting started with Azure

  • Prerequisites

    This guide assumes the following tasks have already taken place:

    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Azure environment is configured per our documentation

    • Your Keeper Gateway is online

    • Your Keeper Gateway is able to communicate with the Azure Managed PostgreSQL database

    1. Set up a PAM Database Record

    The PAM Database record links to the admin credentials and necessary configurations to connect to the PostgreSQL Server on Azure. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the Azure PostgreSQL Server instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: Azure PostgreSQL Admin

    Hostname or IP Address

    The Database Server name i.e testdb-psql.postgresql.database.azure.com

    Port

    For default ports, see i.e. 5432

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    PAM User admin account username that will perform rotation. If the Admin account in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@HOST

    Note: Adding Provider Group, Provider Region, and Database ID will enable managing the PAM Database Record through the Azure SDK.

    This PAM Database Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment..

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: Azure DB Configuration

    Environment

    Select: Azure Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Azure PostgreSQL database from the pre-requisites

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    Azure ID

    A unique ID for this instance of Azure. This is for your reference and can be anything, but its recommended to be kept short Ex: Azure-Prod

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up one or more PAM User records

    Keeper Rotation will use the linked credentials in the PAM Database record to rotate the PAM User records on your Azure environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. Azure PostgreSQL User1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@SERVERNAME

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example: PostgreSQL requires a database and so this will default to template1

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    PAM Database
    PAM User
  • See the Azure Overview for a high level overview and getting started with Azure

  • Prerequisites

    This guide assumes the following tasks have already taken place:

    • Rotation enforcements are configured for your role

    • A Keeper Secrets Manager application has been created

    • Your Azure environment is configured per our documentation

    • Your Keeper Gateway is online

    • The Keeper Gateway is able to communicate with your Azure SQL Server Database

    • If the Gateway is installed on a Linux or macOS server, install the

    1. Set up a PAM Database Record

    The PAM Database record links to admin credentials and contains the necessary configurations to connect to the SQL Server on Azure. Keeper Rotation will use these provided configurations to rotate passwords of regular database user accounts in the Azure SQL Server instance. These provided admin credentials need to also have sufficient database permissions to successfully change the credentials of the database user accounts.

    The following table lists all the required fields on the PAM Database Record:

    Field
    Description

    Title

    Keeper record title Ex: Azure SQL Admin

    Hostname or IP Address

    The Database Server name i.e testdb-sql.mssql.database.azure.com

    Port

    For default ports, see Ex: 1433

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    PAM User providing the Admin account username and password that will perform rotation. If the admin in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@SERVERNAME

    Note: Adding Provider Group, Provider Region, and Database ID will enable managing the PAM Database Record through the Azure SDK.

    This PAM Database Record with the linked admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: Azure DB Configuration

    Environment

    Select: Azure Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Azure SQL database from the pre-requisites

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records.

    Azure ID

    A unique ID for this instance of Azure. This is for your reference and can be anything, but its recommended to be kept short Ex: Azure-Prod

    For more details on all the configurable fields in the PAM Configuration record, visit this page.

    3. Set up one or more PAM User records

    Keeper Rotation will use the linked credentials in the PAM Database record to rotate the PAM User records on your Azure environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Title

    Keeper record title i.e. Azure DB User1

    Login

    Case sensitive username of the account being rotated. If the user in the DB user table is in a Host other than %, add the Host value to the user name as USERNAME@SERVERNAME

    Password

    Account password is optional, rotation will set one if blank

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your role

    • Keeper Rotation is enabled for your role

    • A Keeper Secrets Manager application has been created

    • A Keeper Rotation gateway is already installed, running, and is able to communicate to your Oracle database

    1. Set up a PAM Database Record

    Keeper Rotation will use an admin credential linked to the PAM Database to rotate credentials of other accounts in your local environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of other accounts.

    The following table lists all the required fields that needs to be filled on the PAM Database record with your information:

    Field
    Description

    Title

    Keeper record title Ex: dbadmin

    Hostname or IP Address

    Server address - doesn't need to be publicly routable

    Port

    For default ports, see Ex: oracle=1521

    Use SSL

    Check to perform SSL verification before connecting, if your database has SSL configured

    Administrative Credentials

    Linked PAM User record that contains the username and password of the Admin account which will perform the rotation.

    2. Set up a PAM Configuration

    If you already have a PAM Configuration for your Local environment, you can simply add the additional Resource Credentials required for rotating database users to the existing PAM Configuration.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    Title

    Configuration name, example: Oracle LAN Configuration

    Environment

    Select: Local Network

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Oracle database

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the PAM User records, not the database resources.

    3. Set up one or more PAM user records

    Keeper Rotation will use the credentials in the PAM Database record to rotate the PAM User records on your Local environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    Case sensitive username of the db account being rotated. Example: msmith

    Password

    Account password is optional, rotation will set one if blank

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Database credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    page

    SSL Verification

    For WinRM, if selected, will use SSL mode port 5986. Ignored for SSH.

    Service Account Key

    Copy the JSON text of the service account key of the Gateway

    configured

    SSH Key Rotation Notes

    When rotating the private PEM Key credential on a target machine or user, Keeper will update the authorized_keys file on the machine with the new public key. The first time that a rotation occurs, the old public key is left intact in order to prevent system lockout. The second public key added to the file contains a comment that serves as an identifier for future rotations. For example:

    By default, Keeper will not remove other keys from the .ssh/authorized_keys file since some providers will place in their own keys in order to control the virtual machine (ie Google Cloud Provider).

    If the first rotation is successful, you can optionally delete the old public key entry in the authorized_keys file. On subsequent rotations, Keeper will update the line which contains the "keeper-security-xxx" comment.

    Rotation will also create backup of the prior .ssh/authorized_keys

    Gateway with Docker

    Instructions for installing Keeper Gateway on Docker

    Overview

    This document contains information on how to install, configure, and update your Keeper Gateway on Docker. The Keeper Gateway container is built upon the base image of Rocky Linux 8 and it is hosted in DockerHub.

    Prerequisites

    • A Linux host with a x86 AMD processor for all PAM capabilities

    • docker and docker compose installed (see for help)


    Create a Gateway

    A new Gateway deployment can be created by clicking on Create New > Gateway from the Web Vault or Desktop App.

    You can also create a Gateway and configuration file from the Commander CLI:

    The Application names and UIDs can be found with secrets-manager app list

    Installation Options

    Keeper provides 2 ways of setting up the Gateway:


    Option 1: Auto Docker Installation

    Keeper's automatic installer will set up the environment for you.

    1

    Create a Docker Gateway and Copy the Installation Command

    Create a new Gateway with either the or using for the Docker Operating System.

    You will be provided with an installation command to paste into your Linux host.

    2

    Option 2: Manual Docker Installation

    If you prefer to set up the Docker environment yourself, follow the instructions below.

    1

    Docker Compose

    A Docker Compose file is provided through the Vault UI. Typically this file would be saved in your local environment as docker-compose.yml in your preferred folder. An example is below:

    Note: There's a typo in Vault version 17.4 that references gateway-app-armor-profile instead of gateway-apparmor-profile in the provided docker-compose.yml file when creating a new gateway. To fix this issue, remove the extra dash. It needs to be labeled as gateway-apparmor-profile


    Logging

    When running the latest version of the Keeper Gateway, you'll see the output in the logs like below:

    On the Vault UI in the Secrets Manager > Applications > Gateways screen, the Gateway will show Online.


    Gateway Service Management

    Starting the service

    Stopping the service

    Restarting the service

    Connecting to the Gateway container


    Starting the Gateway Automatically on Reboot

    In the docker-compose.yml file, ensure that a restart policy is enabled. For example:

    Adding the "restart: unless-stopped" or "restart: always" parameter in the docker-compose.yml file will assign a restart policy to the environment.

    If you would like to force the host operating system to automatically start the Keeper Gateway on a Docker installation, follow these steps (Linux host).

    First, create a file /etc/systemd/system/keeper-gateway.service

    NOTE:

    • Replace /path/to/install with the path to your docker-compose.yml

    • Replace myusername user with your user running Docker

    • Replace docker group with your defined group

    Then enable the service:

    Important: Ensure that the apparmor file is loaded up and available on reboot

    After a reboot, verify that it's running:


    Debugging

    If you need to enable verbose debug logs on the Gateway, enable debug logging by adding the below environment section variables to your Docker Compose file:

    After changing the log level, apply the changes to the docker

    Tail the logs of the Keeper Gateway using this command:


    Updating

    Executing the following command will update the Keeper Gateway container to the latest version and restart the service:


    Health Checks

    To monitor the Gateway service, you can configure health checks that expose its operational status. These checks are useful for Docker orchestration, load balancing, and automated monitoring. See the for full setup details and examples.



    Managing Disk Space

    Over time, as new versions of the Gateway are deployed, old Docker images may accumulate on the host server. This can consume a significant amount of disk space. To ensure smooth operation and avoid storage issues, we recommend periodically checking your available disk space and removing unused Docker images.

    Checking Disk Space Usage

    To view your current disk usage, run the following command on your Keeper Gateway server:

    This command displays available disk space on all mounted filesystems in a human-readable format. Pay particular attention to the partition where Docker stores its data (typically /var/lib/docker).

    If you notice the disk space running low (for example, more than 80–90% full), it’s a good idea to clean up old Docker images.

    Cleaning Up Old Docker Images

    When you update the Keeper Gateway, Docker keeps older images on your system. To remove all unused Docker images, you can use the following command:

    • The -a flag ensures that all unused images are deleted (not just dangling ones).

    • You may be prompted to confirm the action — type y when prompted.

    Example output:

    This operation safely removes old images that are no longer used by any running containers.


    References:

    • DockerHub listing:

    • Quick reference for

    Google Cloud Environment Setup

    Setting up your Google Cloud environment to work with KeeperPAM

    Google Cloud Environment Overview

    Overview

    Resources in your GCP environment can be managed by a Keeper Gateway using a service account configured in the PAM Configuration record. Optionally this service account can be configured to have domain-wide delegation, enabling Keeper Gateway to rotate passwords for Google Workspace users (GCP principals) discovered during GCP discovery.

    The service account must be configured appropriately to enable access to the target GCP resources:

    • Compute Engine

    • Cloud SQL

    • Cloud Resource Manager

    • Managed Microsoft Active Directory

    Additionally, in order to enable Google Workspace user password changes, the service account also needs:

    • Domain-wide delegation enabled in Google Workspace Admin Console

    • Scope: https://www.googleapis.com/auth/admin.directory.user

    • The google_admin_email must have user management permissions in Workspace

    See for more details about enabling password rotations for GCP Principals.

    Required Service Account Setup

    A service account is a special kind of account typically used by an application or compute workload, such as a Compute Engine instance, rather than a person.

    The minimal set of permissions needed by the KeeperPAM service account are as follows:

    To ensure least privilege, the service account provided in the GCP configuration should be granted these permissions only:

    • Create a (e.g. KeeperPAM)

    • Create a Service Account

    • Assign the role to the Service Account

    • Create a new JSON Private Key for the Service Account

    Save the downloaded file in the Keeper vault for protection. The contents of this file will also be added to the "Service Account Key" field of the PAM Configuration record in the Keeper vault.


    Optional Setup for GCP User Password Rotation

    You can optionally activate the ability for KeeperPAM to rotate Google Workspace identities by following the steps in this section.

    When discovering GCP resources, the system identifies users from IAM policies with the user: prefix (e.g., user:[email protected]). These are typically Google Workspace users who have been granted permissions in your GCP project.

    To rotate passwords for these Workspace users, the service account must:

    1. Have domain-wide delegation enabled in Google Workspace

    2. Be authorized with the appropriate OAuth scope

    3. Have an admin email specified that the service account will impersonate

    Prerequisites

    • A Google Cloud Platform project with a service account

    • Google Workspace admin access

    • The service account's Client ID (found in the service account details)

    Step-by-Step Configuration

    Enable Domain-Wide Delegation for the Service Account

    1. Go to the

    2. Navigate to IAM & Admin → Service Accounts

    3. Locate your service account (the one whose key is used in the PAM Configuration)

    4. Click on the service account to view its details

    Authorize the Service Account in Google Workspace Admin Console

    1. Go to the

    2. Navigate to Security → Access and data control → API controls

    3. Scroll down to Domain-wide delegation

    4. Click Manage Domain-Wide Delegation

    Configure the Google Admin Email

    The Google Admin Email is a Google Workspace user account that:

    • Has administrative privileges in Google Workspace

    • Specifically has User Management permissions

    • Will be impersonated by the service account when making password changes

    Create or Identify an Admin User

    Option A: Use an existing Super Admin

    • Use the email of an existing Google Workspace Super Admin

    • Example: [email protected]

    Option B: Create a dedicated service admin account (Recommended)

    • Go to Directory → Users in Google Workspace Admin Console

    • Click Add new user

    • Create a user with a name like:

      • Name: Keeper Gateway Service


    Set up the PAM Configuration Record

    In the Keeper Vault > Secrets Manager > PAM Configurations > create a new GCP PAM Configuration record. Set the following:

    Service Account Key (JSON format)

    This is the key file created above during the Service Account setup. The format is like this:

    Google Admin Email

    This is only required if GCP service principal rotation is configured.


    How It Works

    When rotating a password for a GCP user:

    1. The system discovers users from GCP IAM policies (e.g., user:[email protected])

    2. During password rotation, the code:

      • Loads the service account credentials from the JSON key

      • Requests credentials with the admin.directory.user

    Required Permissions Summary

    GCP Project Permissions (for Discovery)

    The service account needs these IAM permissions in the GCP project:

    • resourcemanager.projects.getIamPolicy - To discover users from IAM policies

    Google Workspace Permissions

    The service account needs:

    • Domain-wide delegation enabled

    • OAuth Scope: https://www.googleapis.com/auth/admin.directory.user

    The Google Admin email account needs:

    • User Management Admin role (or Super Admin)

    Troubleshooting

    Error: "No Google Admin email provided"

    • Cause: The google_admin_email field is not set in the PAM Configuration record

    • Solution: Add the admin email to the PAM Configuration record

    Error: "Permission denied" or "Forbidden"

    • Cause: Domain-wide delegation not properly configured

    • Solution:

      1. Verify the service account has domain-wide delegation enabled

      2. Verify the Client ID is correctly added in Google Workspace Admin Console

    Error: "Insufficient permissions"

    • Cause: The Google Admin email doesn't have sufficient privileges

    • Solution: Ensure the admin email has User Management Admin role or Super Admin role

    Error: "Invalid credentials" or "Authentication failed"

    • Cause: Service account key is invalid or expired

    • Solution:

      1. Regenerate the service account key in GCP Console

      2. Update the PAM Configuration record with the new key JSON

    User password change succeeds but user can't log in

    • Cause: Password policy requirements not met

    • Solution: Password generation respects these constraints:

      • Minimum 8 characters

      • At least one lowercase letter

    Security Best Practices

    1. Use a dedicated service admin account: Create a separate Google Workspace user specifically for this service rather than using a personal admin account

    2. Limit service account key distribution: Store the service account key JSON securely in Keeper Secrets Manager only

    3. Monitor admin activity: Regularly review the Google Workspace admin audit logs for activities by the service account

    4. Rotate service account keys

    Additional Resources

    Active Directory

    Rotating Active Directory user accounts remotely using KeeperPAM

    Overview

    In this guide, you'll learn how to remotely rotate Active Directory user accounts using KeeperPAM.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • are configured for your role

    • A Keeper Secrets Manager has been created

    • Your is online

    • The Keeper Gateway is able to connect to your Active Directory via LDAPS (port 636)

    1. Set up a PAM User Record

    Keeper Rotation will use the credentials in this PAM User record to rotate other accounts in your directory. This account does not need to be a domain admin account, but needs to be able to successfully change passwords for other accounts.

    The PAM User record needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    PAM User Record Fields

    Field
    Description

    2. Set up a PAM Configuration

    A associates an environment with a Keeper Gateway and credentials. If you don't have a PAM Configuration set up yet for this use case, create one.

    Field
    Description

    3. Set up PAM User records

    KeeperPAM will use the credentials linked from the PAM User record to rotate other PAM User records in your environment. The PAM User credential needs to be saved in a shared folder that is assigned to the secrets manager application. In the example below, the AD user demouser can be rotated.

    PAM User Record Fields

    Field
    Description

    If you don't know the user's DN, the following PowerShell command can be used to find it:

    4. Configure Rotation on the Record

    Select the PAM User record, edit the record and open the Password Rotation Settings.

    Any user with edit rights to a PAM User record and allowing rotation has the ability to set up rotation for that record.

    • The "Rotation" should be of type IAM User.

    • The "PAM Configuration" field should point to the Active Directory PAM Configuration created in step 2.

    • Select the desired schedule and password complexity.

    Troubleshooting

    An easy way to test if LDAP is properly configured is to run 'LDP.exe' and test the connection. If this connection succeeds, then Keeper Rotation should also succeed.

    Testing with a Self-Signed Cert

    For the purpose of testing an Active Directory user account rotation with Keeper, it is necessary to ensure that the LDAPS connection is active and using a valid certificate. If you are just testing and don't have a production certificate, the instructions below provide you with a self-signed cert.

    Using a self-signed certificate with AD is only for testing purposes, do not use in production

    1

    Create a cert

    From PowerShell running as an administrator, create a self-signed cert. Note that the subject name and alternate names of the certificate must match with the server hostname. In this example, the primary name is XYZ123.company.local with alternate names company.local and company.

    2

    EC2 Virtual Machine User

    Rotating AWS EC2 Virtual Machine accounts with Keeper

    In this guide, you will learn how to rotate AWS EC2 Virtual Machine (VM) Accounts on your AWS Environment using Keeper Rotation. The EC2 VM is an AWS managed resource where the EC2 VM Admin Credentials are linked to the PAM Machine record and the identity of the EC2 VM Users are defined in the PAM User record type.

    For EC2 VM Accounts, normal operating system commands are used to change the password. Keeper will connect to the target machine and send command-line commands to change the password.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to or with your target AWS Virtual Machine(s).

    1. Set up PAM Machine Records

    Keeper can rotate any local user account on either the Gateway machine or any other machine on the network. A PAM Machine record should be created for every machine. This PAM Machine record should link to an administrative credential that has the rights to change passwords for users on the machine.

    Once a PAM Machine record is created for every machine, a PAM User record needs to be created for each local user account that will be rotated.

    Keeper will use the referenced admin credential to rotate the password or SSH key of AWS Virtual Machine users in your AWS environment. These admin credentials need to have the sufficient permissions in order to successfully change the credentials of these user accounts.

    If you are running a rotation on a PAM Machine record which also happens to be the same machine running the Keeper Gateway, Keeper will attempt to rotate the password or SSH key for the account using the keeper-gw user. Assuming that keeper-gw has sudoers privilege, it will be able to perform rotations on the local Gateway machine.

    The following table lists all the required fields on the PAM Machine record:

    Field
    Description

    This PAM Machine Record with the linked admin credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    Make sure the following items are completed:

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is provisioned in the Keeper Secrets Manager application you created.

    • PAM Machine records have been created for each target machine

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields that needs to be filled on the PAM Configuration.

    Field
    Description

    For more details on all the configurable fields in the PAM Configuration record, visit this .

    3. Set up PAM User Records

    Keeper will use the credentials linked from the PAM Machine record to rotate the PAM User records in your AWS environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields that need to be filled on the PAM User record:

    Field
    Description

    4. Configure Rotation on the Record - AWS VM User

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Machine credential setup from Step 1.

    • Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Managed Microsoft AD User

    Rotating AWS Managed Microsoft AD Service accounts with Keeper

    Overview

    In this guide, you will learn how to rotate Admin and User Accounts of an AWS Managed Microsoft AD service using Keeper Rotation. The Active Directory Service is an AWS managed resource where the Directory Service admin credentials are linked to the PAM Directory record type and the configurations of the AD Users are defined in the PAM User record type.

    For Amazon Managed Active Directory Services, the AWS SDK will be used to rotate the password of Directory Admins. User Account passwords will be rotated using LDAP and, in order to successfully rotate, server-side LDAPS must be configured and the Directory Admin, defined in the PAM Directory record type, must be using a SSL Connection.

    Prerequisites

    This guide assumes the following tasks have already taken place:

    • Keeper Secrets Manager is enabled for your

    • Keeper Rotation is enabled for your

    • A Keeper Secrets Manager has been created

    • A Keeper Rotation is already installed, running, and is able to communicate with your AWS Directory Services

    1. Set up a PAM Directory Record

    Keeper Rotation will use the linked admin credentials of your AWS Managed Directory Service to rotate passwords of Domain Service's directory accounts. These admin credentials can also be used to rotate the passwords of the Directory admin.

    The following table lists all the required fields on the PAM Directory Record:

    Field
    Description

    Note: Adding Provider Region and Directory ID will enable managing the PAM Directory Record through the AWS SDK, which is preferred.

    This PAM Directory Record with the admin credential needs to be in a shared folder that is shared to the KSM application created in the pre-requisites. Only the KSM application needs access to this privileged account, it does not need to be shared with any users.

    2. Set up PAM Configuration

    Note: You can skip this step if you already have a PAM Configuration set up for this environment.

    If you are creating a new PAM Configuration, login to the Keeper Vault and select "Secrets Manager", then select the "PAM Configurations" tab, and click on "New Configuration". The following table lists all the required fields on the PAM Configuration Record:

    Field
    Description

    For more details on all the configurable fields in the PAM Configuration record, visit this .

    3. Set up one or more PAM User Records

    Keeper Rotation will use the credentials in the PAM Directory record to rotate the PAM User records on your AWS environment. The PAM User credential needs to be in a shared folder that is shared to the KSM application created in the prerequisites.

    The following table lists all the required fields on the PAM User record:

    Field
    Description

    4. Configure Rotation on the PAM User records

    Select the PAM User record(s) from Step 3, edit the record and open the "Password Rotation Settings".

    • Select the desired schedule and password complexity.

    • The "Rotation Settings" should use the PAM Configuration setup previously.

    • The "Resource Credential" field should select the PAM Directory credential setup from Step 1.

    Any user with edit rights to a PAM User record has the ability to setup rotation for that record.

    Troubleshooting

    Getting the Distinguished Names of AWS Managed Directory Service Users

    The following windows command can be used to get the distinguished name of the Directory user:

    If the command does not exist, you need to import the appropriate module with:

    PAM Configuration

    Creating a PAM Configuration in the Keeper Vault

    Overview

    In Keeper, the PAM Configuration contains essential information of your target infrastructure, settings and associated Keeper Gateway. We recommend setting up one PAM Configuration for each Gateway and network being managed.

    SSH Key Rotation Notes

    When rotating the private PEM Key credential on a target machine or user, Keeper will update the authorized_keys file on the machine with the new public key. The first time that a rotation occurs, the old public key is left intact in order to prevent system lockout. The second public key added to the file contains a comment that serves as an identifier for future rotations. For example:

    By default, Keeper will not remove other keys from the .ssh/authorized_keys file since some providers will place in their own keys in order to control the virtual machine (ie Google Cloud Provider).

    If the first rotation is successful, you can optionally delete the old public key entry in the authorized_keys file. On subsequent rotations, Keeper will update the line which contains the "keeper-security-xxx" comment.

    Rotation will also create backup of the prior .ssh/authorized_keys

    ALLOW_SECRETS_MANAGER
    ALLOW_PAM_GATEWAY
    ALLOW_PAM_ROTATION
    ALLOW_CONFIGURE_ROTATION_SETTINGS
    enterprise-role "Keeper Administrator" --enforcement "ALLOW_SECRETS_MANAGER":true
    enterprise-role "Keeper Administrator" --enforcement "ALLOW_PAM_GATEWAY":true
    enterprise-role "Keeper Administrator" --enforcement "ALLOW_PAM_ROTATION":true
    enterprise-role "Keeper Administrator" --enforcement "ALLOW_CONFIGURE_ROTATION_SETTINGS":true
    enterprise-role "Keeper Administrator" --enforcement "ALLOW_ROTATE_CREDENTIALS":true
    My Vault> pam action rotate -r 5NaygwI4LK1BDZmH3Ib
    Scheduled action id: MfKbPR3ac6A/oBDZpctpOg==
    
    My Vault> pam action job-info MfKbPR3ac6A/oBDZpctpOg== -g QPkRsR8KQm6_4vnHTcofZA
    Job id to check [MfKbPR3ac6A/oBDZpctpOg==]
    Execution Details
    -------------------------
    	Status              : finished
    	Duration            : 0:00:17.525641
    	Response Message    : Rotation completed for record uid 5NaygwI4LK1BDZmH3Ib
    My Vault>
    CN=RemoteUsers,CN=Users,DC=example,DC=com
    "CN=Remote Users,CN=Users,DC=example,DC=com"
    ALLOW_CONFIGURE_PAM_CLOUD_CONNECTION_SETTINGS
    ALLOW_LAUNCH_PAM_ON_CLOUD_CONNECTION
    ALLOW_VIEW_KCM_RECORDINGS
    enterprise-role "My Role" --enforcement "ALLOW_CONFIGURE_PAM_CLOUD_CONNECTION_SETTINGS":true
    enterprise-role "My Role" --enforcement "ALLOW_LAUNCH_PAM_ON_CLOUD_CONNECTION":true
    enterprise-role "My Role" --enforcement "ALLOW_VIEW_KCM_RECORDINGS":true
    New-SelfSignedCertificate -DnsName XYZ123.company.local,company.local,company, -CertStoreLocation cert:\LocalMachine\My
    Get-ADUser -Identity <username> -Properties DistinguishedName

    SSL Verification

    For WinRM, if selected, will use SSL mode port 5986. Ignored for SSH.

    Client ID

    The unique Application (client) ID assigned to your app by Azure AD when the application was registered.

    Client Secret

    The client credentials secret for the Azure application.

    Subscription ID

    The UUID that identifies your subscription (i.e. Pay-As-You-GO) to use Azure services.

    Tenant ID

    The UUID of the Azure Active Directory

    WinRM
    SSH

    Database ID

    Name of the Azure Database Server i.e. testdb-mariadb

    Database Type

    mariadb or mariadb-flexible

    Provider Group

    Azure Resource group name

    Provider Region

    Azure Resource region i.e. East US

    Client ID

    The unique Application (client) ID assigned to your app by Azure AD when the application was registered

    Client Secret

    The client credentials secret for the Azure application

    Subscription ID

    The UUID that identifies your subscription (i.e. Pay-As-You-GO) to use Azure services.

    Tenant ID

    The UUID of the Azure Active Directory

    port mapping

    Password

    Admin account password

    Connect Database

    Optional database that will be used when connecting to the database server. For example, PostgreSQL requires a database and so this will default to template1.

    Database ID

    The AWS DB instance ID

    Database Type

    postgresql

    Provider Region

    The region your Amazon RDS instance is using. i.e us-east-2

    Access Key ID

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Access Secret Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Secret Access Key.

    configured
    port mapping

    Database ID

    Name of the Azure Database Server i.e. testdb-sql

    Database Type

    mysql or mysql-flexible

    Provider Group

    Azure Resource group name

    Provider Region

    Azure Resource region i.e. East US

    Client ID

    The unique Application (client) ID assigned to your app by Azure AD when the application was registered

    Client Secret

    The client credentials secret for the Azure application

    Subscription ID

    The UUID that identifies your subscription (i.e. Pay-As-You-GO) to use Azure services

    Tenant ID

    The UUID of the Azure Active Directory

    port mapping

    Password

    Admin account password

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    Database ID

    The AWS DB instance ID

    Database Type

    mssql

    Provider Region

    The region your Amazon RDS instance is using. i.e us-east-2

    Access Key ID

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Access Secret Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Secret Access Key.

    Microsoft ODBC driver
    configured
    port mapping

    Connect Database

    Optional database that will be used when connecting to the database server. For example, PostgreSQL requires a database and so this will default to template1.

    Database ID

    Name of the Azure Database Server i.e. testdb-psql

    Database Type

    postgresql or postgresql-flexible

    Provider Group

    Azure Resource group name

    Provider Region

    Azure Resource region i.e. East US

    Client ID

    The unique Application (client) ID assigned to your app by Azure AD when the application was registered

    Client Secret

    The client credentials secret for the Azure application

    Subscription ID

    The UUID that identifies your subscription (i.e. Pay-As-You-GO) to use Azure services.

    Tenant ID

    The UUID of the Azure Active Directory

    port mapping

    Connect Database

    Optional database that will be used when connecting to the database server. For example, MS SQL server requires a database and so this will default to master.

    Database ID

    Name of the Azure Database Server i.e. testdb-sql

    Database Type

    mssql

    Provider Group

    Azure Resource group name

    Provider Region

    Azure Resource region i.e. East US

    Client ID

    The unique Application (client) ID assigned to your app by Azure AD when the application was registered

    Client Secret

    The client credentials secret for the Azure application

    Subscription ID

    The UUID that identifies your subscription (i.e. Pay-As-You-GO) to use Azure services.

    Tenant ID

    The UUID of the Azure Active Directory

    Microsoft ODBC driver
    port mapping

    Database Type

    oracle

    port mapping

    Administrative Credentials

    Linked PAM User credential used for performing the LDAP rotation. Example: rotationadmin

    Domain Name

    Domain name of the Active Directory. Example: mydomain.local

    Directory Type

    Set to Active Directory or OpenLDAP

    PAM Configuration
    Connect using LDP.exe

    Go to the Details tab

  • Under Advanced settings, find the Domain-wide delegation section

  • Click Enable Google Workspace Domain-wide Delegation

  • Note the Client ID - you'll need this in the next step

  • Click Add new

  • In the Client ID field, paste the Client ID from step 1

  • In the OAuth scopes field, enter:

  • Click Authorize

  • Email: [email protected]

  • Assign admin roles to this user:

    • Go to Directory → Users

    • Click on the newly created user

    • Click Admin roles and privileges

    • Assign User Management Admin role (or Super Admin if needed)

  • scope
  • Creates delegated credentials by impersonating the Google Admin email

  • Uses the Google Admin Directory API to update the user's password

  • The password change is applied to the Google Workspace user

  • Verify the OAuth scope https://www.googleapis.com/auth/admin.directory.user is authorized

    At least one uppercase letter

  • At least one digit

  • At least one symbol from: !@#$%^&*()_+-=[]{}|

  • : Periodically rotate the service account keys and update the PAM Configuration
  • Principle of least privilege: Only grant User Management Admin role, not Super Admin, unless additional permissions are needed

  • below
    Custom Role
    Google Cloud Console
    Google Workspace Admin Console
    Google Workspace Domain-Wide Delegation Guide
    Google Admin SDK Directory API
    Service Account Authentication

    Your AWS environment is configured per our documentation

    Directory Service Admin Account's Distinguished Name (DN). Note: If DN is not provided, the following format will be used: Given domain name is example.com: CN=<user>,CN=Users,DC=example,DC=com

    Domain Name

    The Directory DNS Name Note: This is required if using Login instead of Distinguished Name

    Directory ID

    Directory Service's Identifier i.e d-##########

    Directory Type

    Directory Service Directory type, defaults to Active Directory if left blank.

    Provider Region

    AWS region name i.e. us-east-1

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Access Secret Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Region Names

    List of AWS region names, one per line Example: us-east-1 us-east-2

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Title

    Name of the Record i.e. AD Domain Service

    Hostname or IP Address

    The Directory DNS Name i.e. ad.pam.test

    Port

    636 for LDAPS

    Use SSL (checkbox)

    Must be checked

    Administrative Credentials

    PAM User providing the directory service admin account and password i.e. Admin Note: Either Login and Domain Name or Distinguished Name is required. Distinguished Name is preferred.

    Title

    Configuration name, example: AWS AD Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to your Active Directory server from the pre-requisites

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the admin accounts, not the machines.

    AWS ID

    A unique ID for this instance of AWS. This is for your reference and can be anything, but its recommended to be kept short Ex: AWS-1

    Title

    Keeper record title i.e. AWS Directory User1

    Login

    Username of the Directory Service's user account

    Password

    Account password is optional, rotation will set one if blank

    Distinguished Name

    Directory Service User Account's Distinguished Name (DN)

    role
    role
    application
    gateway
    page

    Distinguished Name

    Access Key ID

    inside of the
    .ssh
    directory.

    For private key rotation, the new private key will be same algorithm and key size (bits) as the current private key. For example, if the current private key is ecdsa-sha2-nistp256 the new private key will be ecdsa-sha2-nistp256. This can be overridden by adding a custom text field, with the label Private Key Type , and setting the value to one support algorithms:

    • ssh-rsa - 4096 bits

    • ecdsa-sha2-nistp256 - ECDSA, 256 bits

    • ecdsa-sha2-nistp384 - ECDSA, 384 bits

    • ecdsa-sha2-nistp521 - ECDSA, 521 bits

    • ssh-ed2551

    .This custom field can also be used if the current private key's algorithm cannot be detected.

    To prevent private key rotation, a custom text field can be added to the PAM User record with the label Private Key Rotate. If the value of the field is TRUE, or the field doesn't exists, the private key will be rotated if it exists. If the value is FALSE, the private key will not be rotated.

    For Linux user rotations, password-encrypted PEM files are not currently supported.

    Administrative Credential - SSH key only accounts

    When configuring a PAM User with only a private PEM key and no password as the admin credential for a machine resource, this user will execute all administrative operations such as password rotation. In this configuration, the admin account must be able to perform sudo operations without being prompted for a password.

    If a password is required to execute sudo commands, rotations for non-admin credentials on that resource will fail—since the admin credential does not include a password. To ensure successful rotation, configure the PEM key only admin account to run sudo commands without a password prompt.

    inside of the
    .ssh
    directory.

    For private key rotation, the new private key will be same algorithm and key size (bits) as the current private key. For example, if the current private key is ecdsa-sha2-nistp256 the new private key will be ecdsa-sha2-nistp256. This can be overridden by adding a custom text field, with the label Private Key Type , and setting the value to one support algorithms:

    • ssh-rsa - 4096 bits

    • ecdsa-sha2-nistp256 - ECDSA, 256 bits

    • ecdsa-sha2-nistp384 - ECDSA, 384 bits

    • ecdsa-sha2-nistp521 - ECDSA, 521 bits

    • ssh-ed2551

    .This custom field can also be used if the current private key's algorithm cannot be detected.

    To prevent private key rotation, a custom text field can be added to the PAM User record with the label Private Key Rotate. If the value of the field is TRUE, or the field doesn't exists, the private key will be rotated if it exists. If the value is FALSE, the private key will not be rotated.

    For Linux user rotations, password-encrypted PEM files are not currently supported.

    Administrative Credential - SSH key only accounts

    When configuring a PAM User with only a private PEM key and no password as the admin credential for a machine resource, this user will execute all administrative operations such as password rotation. In this configuration, the admin account must be able to perform sudo operations without being prompted for a password.

    If a password is required to execute sudo commands, rotations for non-admin credentials on that resource will fail—since the admin credential does not include a password. To ensure successful rotation, configure the PEM key only admin account to run sudo commands without a password prompt.

    # Get the cert we just created
    $cert = Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object {$_.Subject -like "*company*"}
    $thumbprint = ($cert.Thumbprint | Out-String).Trim()
    
    # Copy to NTDS through registry
    $certStoreLoc = 'HKLM:/Software/Microsoft/Cryptography/Services/NTDS/SystemCertificates/My/Certificates'
    if (!(Test-Path $certStoreLoc)) {
        New-Item $certStoreLoc -Force
    }
    Copy-Item -Path HKLM:/Software/Microsoft/SystemCertificates/My/Certificates/$thumbprint -Destination $certStoreLoc
    
    # Copy to Trusted Root store
    $rootStore = New-Object System.Security.Cryptography.X509Certificates.X509Store([System.Security.Cryptography.X509Certificates.StoreName]::Root, 'LocalMachine')
    $rootStore.Open('ReadWrite')
    $rootStore.Add($cert)
    $rootStore.Close()
    Restart-Service NTDS -force
    https://www.googleapis.com/auth/admin.directory.user
    compute.instances.list
    compute.zones.list
    
    cloudsql.instances.get
    cloudsql.instances.list
    cloudsql.users.update
    
    resourcemanager.projects.getIamPolicy
    
    managedidentities.domains.list
    {
      "type": "service_account",
      "project_id": "your-project-id",
      "private_key_id": "...",
      "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
      "client_email": "[email protected]",
      "client_id": "...",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://oauth2.googleapis.com/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "..."
    }
    [email protected]
    Get-ADUser -Identity "username" | Select-Object -ExpandProperty DistinguishedName
    Import-Module ActiveDirectory
    [compute-user@host .ssh]$ cat authorized_keys
    ssh-rsa AAAAB3NzaC1...11xZrfOxYXG6RV84mCZ3uldesEyV/ghLxAb7Fcz gcpdemo
    ssh-rsa AAAAB3NzaC...un+frl9Q== keeper-security-computeuser
    [compute-user@host .ssh]$ cat authorized_keys
    ssh-rsa AAAAB3NzaC1...11xZrfOxYXG6RV84mCZ3uldesEyV/ghLxAb7Fcz gcpdemo
    ssh-rsa AAAAB3NzaC...un+frl9Q== keeper-security-computeuser

    Run the Installation Command

    On your Linux host, navigate to your desired working directory and execute the copied installation command.

    The installation command will:

    • Install Docker and Docker Compose (if needed)

    • Generate the Docker Compose, Seccomp and AppArmor files.

    • Prepare the service

    3

    Start the Service

    Ensure that you are located in the folder where the docker-compose.yml, docker-seccomp.json and gateway-apparmor-profile files are saved.

    Executing the following command will run the Keeper Gateway in the background:

    The shm_size is a critical parameter. We recommend maximizing this value to at least half of the available server memory. Production gateways should have as much memory and CPU allocated as possible. When using remote browser isolation sessions, Chromium uses a lot of memory for each process.

    The only required environment variable setting is GATEWAY_CONFIG which is the resulting base64-encoded configuration provided by Keeper when creating a Gateway.

    2

    Seccomp File

    The file called docker-seccomp.json needs to be downloaded and placed in the same folder as your Docker Compose file.

    Download File or:

    3

    AppArmor Profile (Required for Ubuntu/Debian distributions)

    This step is required for Ubuntu and Debian-based distributions. For all other Linux distributions (RHEL, CentOS, Fedora, Amazon Linux, etc.) skip to Step 4.

    The file called gateway-apparmor-profile needs to be placed in the same folder as your Docker Compose file.

    or:

    Activate the apparmor config

    4

    Start the Service

    Ensure that you are located in the folder where the docker-compose.yml is saved. Executing the following command will run the Keeper Gateway container in the background, as specified in the docker compose file:

    Ensure the binary path for ExecStart and ExecStop are correct
    Docker Install
    Auto Docker Installation
    Manual Installation
    Gateway Wizard
    Keeper Secrets Manager
    Health Check section
    https://hub.docker.com/r/keeper/gateway
    Installing Docker
    and Docker Compose on Linux
    Docker Logs from Keeper Gateway
    Gateway is Online

    Network Configuration

    The Keeper Gateway establishes outbound-only connections and does not require any inbound firewall rules. The following outbound connections must be allowed:

    Destination
    Port Needed
    More Info

    Keeper Cloud (keepersecurity.[com|eu|com.au|jp|ca|us])

    TLS Port 443

    Communicates with Keeper Cloud to access target infrastructure via native protocols (e.g., SSH, RDP)

    The Gateway preserves zero knowledge by performing all encryption and decryption of data locally. Keeper Secrets Manager APIs are used to communicate with the Keeper cloud.

    Enter the domain or IP address of your Active Directory domain.

    Port

    Enter 636 (LDAPS). 389 LDAP is not supported for rotations.

    Use SSL

    Ensure this checkbox is checked.

    Upon saving, the rotation button will be enabled and available to rotate on demand, or via the selected schedule.

    Install the cert

    This script will locate the cert in the personal section of the certificate manager and copy it into the trusted domains. Replace the company parameter in the first line of this script with the domain in step 1.

    3

    Restart NTDS

    After restarting the NTDS service, the certificate should be installed.

    4

    Check the connectivity

    Run 'LDP.exe' and make sure that you're able to connect to the local domain over port 636 with SSL enabled.

    Connect using LDP.exe

    Record Type

    PAM User

    Title

    Keeper record title

    Login

    The username of the Active Directory admin. The format of the username depends on the target system and type of service. Examples: Administrator [email protected]

    Password

    Password of the admin user on the Active Directory.

    Distinguished Name

    Full Distinguished Name (DN) of the admin user on the Active Directory.

    Title

    Configuration name, example: My Active Directory

    Environment

    Select: Domain Controller

    Gateway

    Select the Gateway that has access to your directory server

    Application Folder

    Select the Shared folder that contains the PAM User record created in step 1.

    Administrative Credential

    Select the PAM User record created in step 1.

    Record Type

    PAM User

    Title

    Keeper record title, e.g. AD User - demouser

    Login

    Username of the account being rotated. The format of the username depends on the target system and type of service. Examples: demouser [email protected]

    Password

    Account password is optional. In most cases, a password rotation will not require the existing password to be present. However there are some scenarios and protocols which may require it.

    Distinguished Name

    The LDAP DN for the user, e.g. CN=Demo User,CN=Users,DC=lureydemo,DC=local

    Rotation enforcements
    application
    Keeper Gateway
    PAM Configuration
    enforcement policies
    PAM User record for AD Admin
    PAM User record for AD Admin
    Example of Active Directory account password rotation
    PAM User scheduled rotations
    PAM User scheduled rotations
    Testing and LDAP connection with LDP.exe

    Hostname or IP Address

  • Your AWS environment is configured per our documentation

  • For WinRM, if selected, will use SSL mode port 5986. Ignored for SSH.

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Access Key ID.

    Secret Access Key

    Set this field to USE_INSTANCE_ROLE if you are using EC2 role policy (default). Otherwise use a specific Secret Access Key.

    Title

    Name of the Record i.e AWS Linux 1

    Hostname or IP Address

    Machine hostname or IP as accessed by the Gateway

    Port

    Typically 5985 or 5986 for WinRM, 22 for SSH.

    Administrative Credentials

    Linked PAM User record that contains the username and password (or SSH key) of the Admin account.

    Operating System

    The VM Operating System, i.e Windows or Linux

    Title

    Configuration name, example: AWS VM Configuration

    Environment

    Select: AWS

    Gateway

    Select the Gateway that is configured on the Keeper Secrets Manager application and has network access to the machine configured from step 1

    Application Folder

    Select the Shared folder where the PAM Configuration will be stored. We recommend placing this in a shared folder with the admin accounts, not the machines.

    AWS ID

    A unique ID for this instance of AWS. This is for your reference and can be anything, but its recommended to be kept short Ex: AWS-1

    Title

    Keeper record title i.e. AWS Machine1 ec2-user

    Login

    Case sensitive username of the user account being rotated, e.g. ec2-user.

    Password

    This is only required if the user logs in with a password. If the password is left blank, performing a rotation will set one.

    Private PEM Key

    SSH private key. This is only required if you are planning to rotate the PEM key instead of rotating the password.

    role
    role
    application
    gateway
    communicate via SSH
    WinRM
    application
    gateway
    page
    PAM Machine record
    PAM Configuration for AWS
    Linux PAM User record
    Password Rotation Settings on AWS Instance User

    SSH Key Rotation Notes

    When rotating the private PEM Key credential on a target machine or user, Keeper will update the authorized_keys file on the machine with the new public key. The first time that a rotation occurs, the old public key is left intact in order to prevent system lockout. The second public key added to the file contains a comment that serves as an identifier for future rotations. For example:

    By default, Keeper will not remove other keys from the .ssh/authorized_keys file since some providers will place in their own keys in order to control the virtual machine (ie Google Cloud Provider).

    If the first rotation is successful, you can optionally delete the old public key entry in the authorized_keys file. On subsequent rotations, Keeper will update the line which contains the "keeper-security-xxx" comment.

    Rotation will also create backup of the prior .ssh/authorized_keys inside of the .ssh directory.

    For private key rotation, the new private key will be same algorithm and key size (bits) as the current private key. For example, if the current private key is ecdsa-sha2-nistp256 the new private key will be ecdsa-sha2-nistp256. This can be overridden by adding a custom text field, with the label Private Key Type , and setting the value to one support algorithms:

    • ssh-rsa - 4096 bits

    • ecdsa-sha2-nistp256 - ECDSA, 256 bits

    • ecdsa-sha2-nistp384 - ECDSA, 384 bits

    .This custom field can also be used if the current private key's algorithm cannot be detected.

    To prevent private key rotation, a custom text field can be added to the PAM User record with the label Private Key Rotate. If the value of the field is TRUE, or the field doesn't exists, the private key will be rotated if it exists. If the value is FALSE, the private key will not be rotated.

    For Linux user rotations, password-encrypted PEM files are not currently supported.

    Administrative Credential - SSH key only accounts

    When configuring a PAM User with only a private PEM key and no password as the admin credential for a machine resource, this user will execute all administrative operations such as password rotation. In this configuration, the admin account must be able to perform sudo operations without being prompted for a password.

    If a password is required to execute sudo commands, rotations for non-admin credentials on that resource will fail—since the admin credential does not include a password. To ensure successful rotation, configure the PEM key only admin account to run sudo commands without a password prompt.

    SSL Verification

    Access Key ID

    Creating PAM Configuration

    To create a new PAM Configuration:

    • Login to the Keeper Vault

    • Select Secrets Manager and the "PAM Configurations" tab

    • Click on "New Configuration"

    PAM Configuration Fields

    When setting up the PAM Configuration, you have the option of choosing one of the following environments:

    • Local Network

    • AWS

    • Azure

    • Google Cloud

    The following tables provides more details on each configurable fields in the PAM Configuration record regardless of the environment you choose:

    Field
    Description
    Notes

    Title

    Name of PAM configuration record

    Ex: US-EAST-1 Config

    Gateway

    The configured gateway

    See for more info

    Application Folder

    The shared folder where the PAM Configuration data will be stored

    Best practice is to create a folder with limited access to admins. See Security Note (1) below

    PAM Settings

    Security Note (1) The PAM Configuration information is stored as a record in the vault inside the specified Application Folder and may contain secrets. Therefore, we recommend that the Application Folder should be limited in access to only privileged admins.

    The following tables provides more details on each configurable fields in the PAM Network Configuration record based on the environment you chose:

    Local Network Environment

    Field
    Description
    Notes

    Network ID

    Unique ID for the network

    This is for the user's reference

    Ex: My Network

    Network CIDR

    Subnet of the IP address

    Ex: 192.168.0.15/24 Refer to for more info

    AWS Environment

    Field
    Description
    Notes

    AWS ID

    A unique id for the instance of AWS

    Required, This is for the user's reference Ex: AWS-US-EAST-1

    Access Key ID

    From an IAM user account, the Access key ID from the desired Access key.

    Leave Empty when EC2 instance role is assumed.

    Secret Access Key

    The secret key for the access key.

    Leave Empty when EC2 instance role is assumed.

    • See additional information on AWS Environment Setup

    Azure Environment

    Field
    Description
    Notes

    Azure ID

    A unique id for your instance of Azure

    Required, This is for the user's reference Ex: Azure-1

    Client ID

    The application/client id (UUID) of the Azure application

    Required

    Client Secret

    The client credentials secret for the Azure application

    Required

    • See additional information on Azure Environment Setup

    Google Cloud Environment

    Coming soon in Q4 2025

    Field
    Description
    Notes

    GCP ID

    A unique id for the instance of Google Cloud

    Required, This is for the user's reference. Example: GCP-US-CENTRAL1

    Google Workspace Administrator Email

    The email address for a Google Workspace administrator account that can be used to manage passwords for GCP Principals.

    Leave Empty if no such account exists, or if the environment does not require Principal rotation.

    Service Account Key

    The service account key in JSON format.

    Required. Example:

    • See additional information on Google Cloud Environment Setup

    Domain Controller Environment

    Field
    Description
    Required

    Administrative Credential

    Credentials of a domain administrator or an account with equivalent privileges, required to perform full discovery and access all domain resources

    Yes

    Hostname and Port

    Hostname and port for the domain controller.

    Yes

    Domain ID

    The FQDN domain used by the Domain Controller. For example, EXAMPLE.COM and not EXAMPLE.

    Yes

    Use SSL

    If using LDAPS (default 636), check the box. If using LDAP (default 389), uncheck the box.

    Yes

    PAM Features on PAM Configuration

    The "PAM Features Allowed" and "Session Recording Types Allowed" sections in the PAM Configuration allow owners to enable or disable KeeperPAM features for resources managed through the PAM configuration:

    Field
    Description

    Rotation

    If enabled, allow rotations on privileged user users managed by this PAM configuration

    Connections

    If enabled, allow connections on resources managed by this PAM configuration

    Remote Browser Isolation (RBI)

    If enabled, allow RBI sessions on resources managed by this PAM configuration

    Tunneling

    If enabled, allow tunnels on resources managed by this PAM configuration

    Graphical Session Recording

    If enabled, visual playback sessions will be recorded for all connections and RBI sessions

    Text Session Recording (TypeScript)

    If enabled, text input and output logs will be logged for all connections and RBI sessions

    On the "Rotation Settings" section of the PAM User vault record, you can configure how credential rotation is managed.

    Password Rotation Settings

    Field
    Description
    Required
    SQL Server
    PostgreSQL
    VNC
    Telnet

    An active license is required in order to use the features available with KeeperPAM. This license is available for both business and enterprise customers.

    • KeeperPAM Homepage

    • Request a Demo

    • Contact Support

    The PAM record type with your target system can also be configured as a Connection template. These templates serve as reusable record types for launching sessions to target systems without needing to predefine a specific hostname or credential. For more information, visit the following:

    On the "Rotation Settings" section of the PAM User vault record, you can configure how credential rotation is managed.

    Password Rotation Settings

    Field
    Description
    Required
    docker compose up -d
    curl -O https://raw.githubusercontent.com/Keeper-Security/KeeperPAM/refs/heads/main/gateway/docker-seccomp.json
    docker compose up -d
    pam gateway new -n "<Gateway Name>" -a <Application Name or UID> -c b64
    services:
          keeper-gateway:
            platform: linux/amd64
            image: keeper/gateway:latest
            shm_size: 16g
            restart: unless-stopped
            security_opt:
              - seccomp:docker-seccomp.json
              - apparmor:gateway-apparmor-profile
            environment:
              ACCEPT_EULA: Y
              GATEWAY_CONFIG: XXXXXXXXXXXXXXXXX
    docker compose logs keeper-gateway
    docker compose up -d
    docker compose stop
    docker compose restart
    docker compose exec keeper-gateway bash
    services:
      keeper-gateway:
        restart: unless-stopped
    [Unit]
    Description=Keeper Gateway Docker Compose
    Requires=docker.service
    After=docker.service
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    WorkingDirectory=/path/to/install
    ExecStart=/usr/bin/docker compose up -d
    ExecStop=/usr/bin/docker compose down
    User=myusername
    Group=docker
    
    [Install]
    WantedBy=multi-user.target
    sudo systemctl daemon-reload
    sudo systemctl enable keeper-gateway.service
    sudo systemctl start keeper-gateway.service
    sudo apparmor_parser -r gateway-apparmor-profile
    sudo cp gateway-apparmor-profile /etc/apparmor.d/
    systemctl status keeper-gateway
    services:
          keeper-gateway:
            .....
            environment:
              KEEPER_GATEWAY_LOG_LEVEL: "debug" # logs for gateway
              LOG_LEVEL: "debug" # logs for guacd
    docker compose up -d
    docker compose logs -f keeper-gateway
    docker compose pull
    docker compose up -d
    df -h
    docker image prune -a
    WARNING! This will remove all images without at least one container associated to them.
    Are you sure you want to continue? [y/N] y
    Deleted Images:
    ...
    Total reclaimed space: 4.8GB
    # Get the cert we just created
    $cert = Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object {$_.Subject -like "*company*"}
    $thumbprint = ($cert.Thumbprint | Out-String).Trim()
    
    # Copy to NTDS through registry
    $certStoreLoc = 'HKLM:/Software/Microsoft/Cryptography/Services/NTDS/SystemCertificates/My/Certificates'
    if (!(Test-Path $certStoreLoc)) {
        New-Item $certStoreLoc -Force
    }
    Copy-Item -Path HKLM:/Software/Microsoft/SystemCertificates/My/Certificates/$thumbprint -Destination $certStoreLoc
    
    # Copy to Trusted Root store
    $rootStore = New-Object System.Security.Cryptography.X509Certificates.X509Store([System.Security.Cryptography.X509Certificates.StoreName]::Root, 'LocalMachine')
    $rootStore.Open('ReadWrite')
    $rootStore.Add($cert)
    $rootStore.Close()
    Restart-Service NTDS -force
    Get-ADUser -Identity <username> -Properties DistinguishedName
    New-SelfSignedCertificate -DnsName XYZ123.company.local,company.local,company, -CertStoreLocation cert:\LocalMachine\My
    [compute-user@host .ssh]$ cat authorized_keys
    ssh-rsa AAAAB3NzaC1...11xZrfOxYXG6RV84mCZ3uldesEyV/ghLxAb7Fcz gcpdemo
    ssh-rsa AAAAB3NzaC...un+frl9Q== keeper-security-computeuser
    ALLOW_ROTATE_CREDENTIALS
    ecdsa-sha2-nistp521 - ECDSA, 521 bits
  • ssh-ed2551

  • Connection Templates

    Keeper Connections can be authenticated using one of the following methods:

    • Launch Credential The session to the target is authenticated using the "Launch Credentials" configured directly on the PAM Machine, PAM Database, or PAM Directory record types. The user does not need access to the credentials in order to launch the connection.

    • Personal/Private Credential When "Allow users to select credentials from the vault" is enabled, users can choose to authenticate the session to the target using a personal/private credential stored securely in their own Keeper Vault.

    • Ephemeral Accounts When the ephemeral account feature is enabled on the PAM Machine or PAM database resources, a system-generated, time-limited privileged account is created specifically for the session. This account is deleted automatically after the session ends, eliminating standing privilege. This method is used for Just-In-Time access with no persistent account on the target system.

    List of Zero-Trust KeeperPAM features that should be enabled

    See this section for more info

    Default Rotation Schedule

    Specify frequency of Rotation

    Ex: Daily

    Port Mapping

    Define alternative default ports

    Ex: 3307=mysql See port mapping docs

    Region Names

    AWS region names used for discovery. Separate newline per region

    Ex: us-east-2 us-west-1

    Port Mapping

    Any non-standard ports referenced. Separate newline per entry

    Ex: 2222=ssh 3390=rdp

    Subscription ID

    The UUID of the subscription (i.e. Pay-As-You-GO).

    Required

    Tenant ID

    The UUID of the Azure Active Directory

    Required

    Resource Groups

    A list of resource groups to be checked. If left blank, all resource groups will be checked. Newlines should separate each resource group.

    Region Names

    AWS region names used for discovery. Separate newline per region

    Example: us-east4 us-south1

    Port Mapping

    Any non-standard ports referenced. Separate newline per entry

    Example: 2222=ssh 3390=rdp

    Scan Network

    Scan the CIDRs from the domain controller. Default to False.

    No

    Network CIDR

    Scan additional CIDRs from the field.

    No

    Port Mapping

    Define alternative default ports

    No

    Domain Controller
    docs
    this
    {
      "type": "service_account",
      "project_id": "<project-id>",
      "private_key_id": "<private-key-id>",
      "private_key": "<private-key>",
      "client_email": "<client-email>",
      "client_id": "<client-id>",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://oauth2.googleapis.com/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<app-identifier>.iam.gserviceaccount.com"
    }

    PAM Resource

    For General rotation type, specifies the PAM Resource record which can provide the necessary privilege. For IAM User rotation type, specifies the PAM Configuration utilizing cloud APIs.

    Required only for "General" and "IAM User" rotation types

    Rotation Schedule

    Rotation can be performed on-demand or on a specific schedule.

    For advanced scheduling, see the .

    Password Complexity

    Applies to password-based rotations, not PEM keys.

    Select "Show More" to control special characters and symbols.

    Rotation Type

    Keeper supports 3 different types of rotation:

    • General: Uses native protocols for performing the rotation, such as LDAP, Databases, SSH keys, etc.

    • IAM User: Uses the cloud-specific APIs for performing rotation, such as AWS IAM users, Azure managed resources, and Google Workspace principals. In this case, only the PAM Configuration is required since it contains the necessary credentials.

    • Run PAM scripts only: Skips the standard rotation and only executes the attached PAM Scripts.

    Password Rotation Settings

    The rotation schedule can be set on a specific interval, or using a cron spec.

    Custom Schedule
    Calendar Settings
    Cron Spec

    PAM Resource

    To complete the Rotation setup, you need to select a resource, which depends on the rotation type.

    For a "General" rotation, the Keeper Gateway uses a native protocol for performing the necessary rotation, and the rotation will be executed on the associated PAM Resource supplied. If necessary, the rotation will use the associated administrative credential on the PAM Resource.

    In the example below, a Windows service account password is going to be rotated on the associated Windows Server.

    Rotation Resource

    For an "IAM User" rotation type, the Keeper Gateway will use the referenced PAM Configuration to determine which APIs and methods are used to perform the rotation. In the example below, an IAM user in AWS will use the "AWS (US-WEST-1)" configuration.

    When using the IAM User rotation method, it is assumed that the Keeper Gateway either inherits its privilege from the instance role policy, or through explicit access keys that are provided on the PAM Configuration record.

    IAM User rotation type

    In Summary:

    • The PAM User record holds the credential that is being rotated.

    • The Rotation Settings of the PAM User record references a specific PAM Machine, PAM Database or PAM Directory resource. This is the target resource where the rotation is performed.

    • The Keeper Gateway uses the Admin Credential associated to the PAM Machine, PAM Database or PAM Directory resource to perform the rotation with native protocols.

    • For AWS, Azure and GCP managed resources, Keeper uses Instance Role permission of the Gateway, or specific PAM Configuration secrets to perform the rotation with APIs.

    • For Google Cloud managed resources, Keeper uses the Service Account permissions of the Gateway.

    Examples

    Below are some examples of PAM User records.

    • Windows Domain Admin

    Windows Domain Admin User
    • Windows Domain User with post-rotation scripts

    Windows Domain User with post-rotation scripts
    • AWS IAM User

    AWS IAM User
    • Database user

    Database user
    • Azure AD User

    Azure AD User

    Rotation Type

    Specifies which type of rotation is being performed (and which protocol is utilized).

    PAM User record editing

    Required "General", "IAM User" or "Run PAM Scripts Only". See below for details.

    PAM Resource

    For General rotation type, specifies the PAM Resource record which can provide the necessary privilege. For IAM User rotation type, specifies the PAM Configuration utilizing cloud APIs.

    Required only for "General" and "IAM User" rotation types

    Rotation Schedule

    Rotation can be performed on-demand or on a specific schedule.

    For advanced scheduling, see the .

    Password Complexity

    Applies to password-based rotations, not PEM keys.

    Select "Show More" to control special characters and symbols.

    Rotation Type

    Keeper supports 3 different types of rotation:

    • General: Uses native protocols for performing the rotation, such as LDAP, Databases, SSH keys, etc.

    • IAM User: Uses the cloud-specific APIs for performing rotation, such as AWS IAM users, Azure managed resources, and Google Workspace principals. In this case, only the PAM Configuration is required since it contains the necessary credentials.

    • Run PAM scripts only: Skips the standard rotation and only executes the attached PAM Scripts.

    Password Rotation Settings

    The rotation schedule can be set on a specific interval, or using a cron spec.

    Custom Schedule
    Calendar Settings
    Cron Spec

    PAM Resource

    To complete the Rotation setup, you need to select a resource, which depends on the rotation type.

    For a "General" rotation, the Keeper Gateway uses a native protocol for performing the necessary rotation, and the rotation will be executed on the associated PAM Resource supplied. If necessary, the rotation will use the associated administrative credential on the PAM Resource.

    In the example below, a Windows service account password is going to be rotated on the associated Windows Server.

    Rotation Resource

    For an "IAM User" rotation type, the Keeper Gateway will use the referenced PAM Configuration to determine which APIs and methods are used to perform the rotation. In the example below, an IAM user in AWS will use the "AWS (US-WEST-1)" configuration.

    When using the IAM User rotation method, it is assumed that the Keeper Gateway either inherits its privilege from the instance role policy, or through explicit access keys that are provided on the PAM Configuration record.

    IAM User rotation type

    In Summary:

    • The PAM User record holds the credential that is being rotated.

    • The Rotation Settings of the PAM User record references a specific PAM Machine, PAM Database or PAM Directory resource. This is the target resource where the rotation is performed.

    • The Keeper Gateway uses the Admin Credential associated to the PAM Machine, PAM Database or PAM Directory resource to perform the rotation with native protocols.

    • For AWS, Azure and GCP managed resources, Keeper uses Instance Role permission of the Gateway, or specific PAM Configuration secrets to perform the rotation with APIs.

    • For Google Cloud managed resources, Keeper uses the Service Account permissions of the Gateway.

    Examples

    Below are some examples of PAM User records.

    • Windows Domain Admin

    Windows Domain Admin User
    • Windows Domain User with post-rotation scripts

    Windows Domain User with post-rotation scripts
    • AWS IAM User

    AWS IAM User
    • Database user

    Database user
    • Azure AD User

    Azure AD User

    Rotation Type

    Specifies which type of rotation is being performed (and which protocol is utilized).

    PAM User record editing

    Required "General", "IAM User" or "Run PAM Scripts Only". See below for details.

    Keeper Router (connect.keepersecurity.[com|eu|com.au|jp|ca|us])

    TLS Port 443

    Communicates with Keeper Router to establish secure, real-time WebSocket connections

    Keeper KRelay Server (krelay.keepersecurity.[com|eu|com.au|jp|ca|us])

    TCP and UDP opened on Port 3478 Outbound access to TCP and UDP ports 49152 through 65535

    Facilitates secure and encrypted relay connections between end-user's vault and target systems via the Gateway

    Download File
    curl -O https://raw.githubusercontent.com/Keeper-Security/KeeperPAM/refs/heads/main/gateway/gateway-apparmor-profile
    sudo apparmor_parser -r gateway-apparmor-profile
    sudo cp gateway-apparmor-profile /etc/apparmor.d/
    cron spec
    cron spec

    Connecting to the Host Instance

    A very useful capability of the Keeper Gateway is being able to open connections and tunnels to the host machine. By adding the extra_hosts section to your docker compose file with a value of host.docker.internal:host-gateway, you can open sessions directly to the host.

    Example docker compose with the Gateway container:

    Enabling this option allows you to establish a Connection to the host. For example, to open an SSH connection:

    • Create a record with the SSH private key

    • Create a record with the hostname to host.docker.internal and port 22

    • Activate the in PAM settings referencing the PAM User

    Upgrading the Keeper Gateway service through the host

    If you use KeeperPAM to SSH over to the host service, you can upgrade the container by running the container update of the gateway in the background:

    services:
          keeper-gateway:
            platform: linux/amd64
            image: keeper/gateway:latest
            shm_size: 16g
            restart: always
            extra_hosts:
              - "host.docker.internal:host-gateway"
            security_opt:
              - seccomp:./docker-seccomp.json
              - apparmor=./gateway-apparmor-profile
            environment:
              ACCEPT_EULA: Y
              GATEWAY_CONFIG: xxxxxxxx
    PAM User
    PAM Machine
    SSH connection
    docker compose pull
    nohup docker compose up -d keeper-gateway &

    SaaS Plugins

    SaaS and REST-based rotation plugins

    KeeperPAM SaaS Rotation Plugins

    Overview

    KeeperPAM supports automated password rotation for various SaaS applications and services, including cloud infrastructure. This feature requires Keeper Gateway version 1.6 or newer. Currently, the configuration of SaaS rotations requires the use of Keeper Commander CLI. The front-end for managing these rotations will be included in an upcoming release of the Web Vault and Desktop App.

    SaaS rotations are available as built-in integrations, catalog integrations or custom integrations.

    Built-in SaaS Integrations

    KeeperPAM includes pre-built integrations for popular services:

    • Okta - Identity and access management

    • Snowflake - Cloud data platform

    • REST APIs - Generic REST endpoint integration

    • AWS Access Keys - Amazon Web Services credential rotation

    Catalog SaaS Integrations

    In Keeper's , several new rotation plugins have been created, including:

    • AWS Cognito

    • Cisco APIC

    • and

    As new catalog rotations are added, customers may use these rotations within their environments.

    Custom Integrations

    Following the examples in Keeper's , customers can create their own plugins that are private and only available to their Keeper Gateway. See the section for more information.


    Setting Up SaaS Password Rotation

    This is accomplished in 3 steps outlined below:

    Step 1: Create a SaaS Configuration Record

    SaaS rotation configurations are stored as records with custom fields that define the configuration parameters.

    Using Keeper Commander CLI

    The fastest way to create a SaaS configuration is using the Commander CLI pam action saas config command:

    The command will prompt you for the required configuration values specific to your chosen SaaS type. Each of the configuration values is documented in the section below, for built-in and catalog plugins.

    You can also just create a Login record with custom fields as defined below.


    Okta Configuration Record

    Custom Field Name
    Description
    Required?

    Snowflake Configuration Record

    Custom Field Name
    Description
    Required?

    REST Configuration Record

    Custom Field Name
    Description
    Required?

    AWS Access Key Configuration Record

    Custom Field Name
    Description
    Required?

    Note: The admin access key does NOT be set if you using an EC2 instance an attached IAM role or the using an AWS configuration. The plugin with get its credentials from the following in the specified order.

    1. SaaS Configuration Record - Ensure that the Access Key and Secret Key

    2. AWS PAM Configuration - See the for details

    Assigning Permissions

    Ensure that the roles assigned to your AWS PAM Configuration or to the specific administrative access key / secret key include the below policies required to rotate a target access key:


    Azure Client Secret Configuration Record

    Custom Field Name
    Description
    Required?

    Note: The administrative application ID and client secret does not be set if you using a PAM Configuration that already has necessary Azure permissions.

    The plugin with get its credentials from the following in the specified order.

    1. SaaS Configuration Record

    2. Azure PAM Configuration

    Assigning Permissions to Admin Application

    In order for the target secret to be rotated, the administrative application must have the necessary Azure role permissions.

    Required Microsoft Graph Permissions:

    • Application.ReadWrite.All

    How to Assign:

    • Go to Azure Portal > Azure Active Directory > App registrations

    • Select your Administrative app (the one that will rotate secrets)

    • Go to API permissions > Add a permission

      • Choose Microsoft Graph


    Cisco IOS EX Configuration Record

    Custom Field Name
    Description
    Required?

    Cisco Meraki Configuration Record

    Custom Field Name
    Description
    Required?

    API:


    Step 2: Associate SaaS Rotation with PAM Users

    Once your SaaS configuration record is created, associate that record with one or more PAM User records in the vault.

    • Create the PAM User record either in the vault, or using the Commander CLI

    • Using Commander, run the below commands to create the association:

    Step 3: Verify Configuration

    Check that your SaaS rotation is properly configured on the PAM User record:

    This will display all configured SaaS rotations for the specified PAM User, including their current settings.


    Performing SaaS Rotation

    To perform the rotation from the Commander CLI, use the pam action rotate command:


    Managing SaaS Rotations

    Remove SaaS Rotation

    To remove a SaaS rotation from a PAM User record:

    Activate/Deactivate Rotations

    You can control whether a SaaS rotation is active by setting the Active custom field:

    • Set to any value (e.g., "true", "yes", "1") to activate

    • Remove the field or set to empty/false to deactivate


    Custom and Community Plugins

    Available Custom Plugins

    In addition to built-in integrations, you can use custom plugins for additional services. Keeper maintains a repository of community-contributed plugins:

    GitHub Repository:

    Check the integrations/ folder for available plugins, which may include:

    • Additional cloud services

    • Database systems

    • Network equipment

    • Custom enterprise applications

    Using Custom Plugins

    To use custom plugins in your environment:

    1. Set Up Plugin Directory

    Configure your PAM Gateway to recognize custom plugins:

    2. Deploy Plugin Files

    Copy the plugin Python files to your configured directory:

    3. Docker Container Setup

    If using Docker, mount the plugin directory:

    Update the PAM configuration to use the container path:

    4. Configure Plugin Access (If Required)

    Some plugins may need access to your PAM configuration credentials (e.g., for AWS or Azure integration). Grant access by adding the plugin name to the allow list:


    Developing Custom Plugins

    If you need a plugin for a service not currently available, you can develop your own using the development environment provided in the repository. The repository includes:

    • Development and testing tools

    • Example plugins and templates

    • API documentation

    • Testing framework

    Visit the for detailed development instructions. To contribute to the community rotation plugin directory, submit a pull request.

    Best Practices

    Security Considerations

    • Use dedicated service accounts with minimal required permissions for SaaS integrations

    • Regularly rotate API keys and tokens used in SaaS configurations

    • Test rotations in a development environment before production deployment

    • Monitor rotation logs for failures or authentication issues

    Configuration Management

    • Store SaaS configurations in dedicated shared folders for better organization

    • Use descriptive names for configuration records (e.g., "Okta Production", "Snowflake Dev")

    • Document any custom field requirements for team members

    • Regularly review and update SaaS rotation assignments

    Troubleshooting

    • Check Gateway logs for detailed error messages during rotations

    • Verify API credentials and permissions in your SaaS applications

    • Ensure network connectivity between Gateway and target services

    • Test individual SaaS configurations before associating with multiple users

    Support and Resources

    • Built-in SaaS Types: Supported through standard Keeper support channels

    • Custom Plugins: Community support via GitHub repository issues

    • Development Questions: Refer to repository documentation and examples

    • Enterprise Support: Contact your Keeper representative for assistance with custom integrations

    For the most up-to-date list of available plugins and integration examples, regularly check the .

    Health Checks

    Monitoring the Keeper Gateway using health checks

    Overview

    This document describes the health check functionality implemented for the KeeperPAM Gateway. Health checks provide essential monitoring capabilities that solve several common operational challenges.

    Health Checks provide the following benefits:

    • Allow load balancers to automatically remove unhealthy instances from rotation and add them back when they recover.

    Azure Client Secrets - Microsoft Azure application secrets

  • Cisco IOS XE - Network device management

  • Cisco Meraki - Cloud-managed networking

  • Snowflake Account

    The account. It’s is the subdomain of the URL.

    Yes

    REST Method

    The HTTP Method to use. The default is POST. Valid values are: POST, PUT.

    No

    Region Name

    Region name. This can be left blank unless GovCloud. A value is required for GovCloud.

    No

    AWS Clean Keys

    Remove old Access Keys. If not set, will default to ‘All’

    • All - Will remove all the access keys.

    • Oldest - Will remove the oldest access key if both Access Key slots are filled.

    • Replace - Will replace the Access Key used in the Vault record. If there are two Access Keys, the other will not be removed.

    No

    Azure Tenant ID

    The Directory (tenant) ID of the Azure Entra ID. This for both the admin and target application.

    No

    Azure Admin Application ID

    The Application (client) ID for the Administrative app which is performing the rotation (NOT the target).

    No

    Azure Admin Client Secret

    This is the Secret value for the administrative application.

    No

    Azure Authority

    Special URL for MSAL to request tokens.

    No

    Azure Graph Endpoint

    Special URL for Azure Graph scope.

    No

    Azure Clean Keys

    Remove old Access Keys upon every rotation.

    • All - Will remove all the secrets.

    • Replace - Will replace the secret used in the Vault record.

    No

    Select Application permissions

  • Search and select:

    • Application.ReadWrite.All

  • Click Add permissions

  • Then click Grant admin consent for the tenant

  • Hostname

    Hostname or IP of the web service.

    Yes

    Verify SSL

    Verfiy server’s SSL certificate. Default is FALSE.

    No

    Network ID

    The Network ID.

    If blank, an attempt will be made to find the network id. If the customer has only one organization, and only one network in that organization, it will use that network id.

    No

    Verify SSL

    Verfiy server’s SSL certificate. Default is FALSE.

    No

    SaaS Type

    Okta

    Yes

    Active

    Activate/Deactivate a SaaS rotation. The default is active.

    No

    Okta URL

    The URL to customer login portal. Where users login in.

    Yes

    Okta Token

    The API token created on the Security → API → Tokens admin page.

    SaaS Type

    Snowflake

    Yes

    Active

    Activate/Deactivate a SaaS rotation. The default is active.

    No

    Snowflake Admin User

    An admin username

    Yes

    Snowflake Admin Password

    The password for the admin username.

    SaaS Type

    REST

    Yes

    Active

    Activate/Deactivate a SaaS rotation. The default is active.

    No

    REST Url

    URL to the web service.

    Yes

    REST Token

    A header Bearer token. This must be static. It cannot be generated.

    SaaS Type

    AWS Access Key

    Yes

    Active

    Activate/Deactivate a SaaS rotation. The default is active.

    No

    AWS Access Key ID for the Administrative role

    Admin Access Key ID

    No

    AWS Secret Access Key for the Administrative role

    Admin Secret Access Key

    SaaS Type

    Azure Client Secret

    Yes

    Active

    Activate/Deactivate a SaaS rotation. The default is active.

    No

    Azure Target Object ID

    The target Azure Entra ID application. This is the object ID of the application which is being rotated.

    Yes

    Expiry Days

    The number of days before the secret expires. Default if 365 days.

    SaaS Type

    Cisco IOS XE

    Yes

    Active

    Activate/Deactivate a SaaS rotation. The default is active.

    No

    Admin Username

    The administrator’s username.

    Yes

    Admin Password

    The administrator’s password.

    SaaS Type

    Cisco Meraki

    Yes

    Active

    Activate/Deactivate a SaaS rotation. The default is active.

    No

    Admin Email

    The administrator’s email address

    Yes

    API Key

    The API Key generated in the admin’s profile, in the API access section.

    SaaS Github Repository
    More
    SaaS Github Repository
    Using Custom Plugins
    Step 1: Create a SaaS Configuration Record
    Step 2: Associate SaaS Rotation with PAM Users
    Step 3: Verify Configuration
    AWS Environment Setup
    Cisco Meraki OpenAPI Document
    discovery-and-rotation-saas-dev
    repository README
    GitHub repository

    Yes

    Yes

    Yes

    No

    No

    Yes

    Yes

    # Login to your vault
    keeper shell
    
    # List available SaaS types for your gateway
    pam action saas config --gateway "My Gateway" --list
    
    # Create a new SaaS configuration (example for Okta)
    pam action saas config --gateway "My Gateway" --plugin "Okta" --shared-folder-uid FOLDER_UID --create
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:CreateAccessKey",
            "iam:ListAccessKeys",
            "iam:DeleteAccessKey"
          ],
          "Resource": "arn:aws:iam::YOUR_AWS_ACCOUNT_ID_HERE:user/*"
        }
      ]
    }
    # Add SaaS rotation to a user
    pam action saas add --user-uid USER_RECORD_UID --config-record-uid SAAS_CONFIG_UID
    
    # Optionally attach to a specific resource
    pam action saas add --user-uid USER_RECORD_UID --config-record-uid SAAS_CONFIG_UID --resource-uid RESOURCE_UID
    # View all SaaS rotations for the PAM User
    pam action saas user -u USER_RECORD_UID
    pam action rotate -r USER_RECORD_UID
    pam action saas remove --user-uid USER_RECORD_UID --config-record-uid SAAS_CONFIG_UID
    # Set the plugin directory path on your PAM Configuration record
    record-update -r PAM_CONFIG_RECORD_UID "text.SaaS Plugins Dir=/path/to/plugins"
    # Create plugin directory
    mkdir /opt/keeper/saas_plugins
    
    # Copy plugin files from the repository
    cp custom_plugin.py /opt/keeper/saas_plugins/
    # docker-compose.yml
    services:
      keeper-gateway:
        image: keeper/gateway:preview
        volumes:
          - ./saas_plugins:/opt/keeper/saas_plugins
        environment:
          GATEWAY_CONFIG: YOUR_GATEWAY_CONFIG_UID
    record-update -r PAM_CONFIG_RECORD_UID "text.SaaS Plugins Dir=/opt/keeper/saas_plugins"
    record-update -r PAM_CONFIG_RECORD_UID "multiline.Allow SaaS Access=Custom Plugin Name\nAnother Plugin"

    Integrate with monitoring systems (Prometheus, Nagios, Datadog, etc.) to provide automated alerting and dashboards showing gateway health across your infrastructure.

  • Enable automated monitoring scripts and orchestration tools to detect failures and trigger recovery procedures without human intervention.

  • The health check service is disabled by default. You must activate it as documented in the next sections.


    Simple Health Check Configuration

    The below configuration enables a basic health check service on the binary and Docker installation methods. More advanced configuration is also available as documented below.

    Activating Health Check - Binary Install method

    Start the gateway with health check enabled:

    Only after the gateway is running with health check enabled, you can check its health:

    If you get an error like "Could not connect to health check server", it means you haven't enabled the health check properly.

    If you see "Exception No such command 'keeper-gateway.exe'", you're using the wrong command syntax. Always use "gateway" as the command name.


    Activating Health Check - Docker Install method

    Modify the docker-compose.yml file to enable health checks:

    • Add KEEPER_GATEWAY_HEALTH_CHECK_ENABLED

    • Add the healthcheck section with the desired check intervals

    After changing the docker-compose file, pick up the changes and restart the container:

    If the container name is keeper-gateway, a one-line bash command to find the service status can be found like this:

    If you don't know the container name, this script will give it to you:

    Here's an example of checking the health with a bash command:

    The below complete bash script can be added to your watchdog services to check service status and automatically restart the container if it's unhealthy. Replace /path/to/ with the proper path.

    To schedule this health check on a Linux system, it can be added to the cron

    Add to the crontab to watch every minute...


    Advanced Healthcheck Configuration Examples

    The below section provides detailed configuration for customization of the health checks in different environments.

    Configuration
    Start Command
    CLI Health Check
    Curl Health Check

    Basic HTTP

    gateway start --health-check

    gateway health-check

    curl http://127.0.0.1:8099/health

    HTTP with Auth

    gateway start --health-check --health-check-auth-token mytoken

    gateway health-check --token mytoken

    curl -H "Authorization: Bearer mytoken" http://127.0.0.1:8099/health

    HTTPS (SSL)

    gateway start --health-check --health-check-ssl --health-check-ssl-cert /path/cert.pem --health-check-ssl-key /path/key.pem

    gateway health-check --ssl

    Output Format Examples

    Output Format
    CLI Command
    Description

    Simple Status

    gateway health-check --ssl --token mytoken

    Returns OK: Gateway is running and connected (exit code 0) or CRITICAL: ... (exit code 1)

    Detailed Info

    gateway health-check --ssl --token mytoken --info

    Key=value pairs suitable for monitoring scripts

    JSON Format

    gateway health-check --ssl --token mytoken --json

    Full JSON response matching HTTP endpoint

    Troubleshooting Commands

    Issue
    Test Command
    Expected Result

    Check if server is running

    curl http://127.0.0.1:8099/health

    Connection success or "Connection refused"

    Test SSL connectivity

    curl -k https://127.0.0.1:8099/health

    SSL handshake success or SSL error

    Test authentication

    curl -k -H "Authorization: Bearer wrongtoken" https://127.0.0.1:8099/health

    {"error": "Invalid authentication token"}

    Check server binding

    curl http://0.0.0.0:8099/health

    Error Messages and Troubleshooting

    The CLI health check provides detailed error messages to help diagnose issues:

    Authentication Errors (HTTP 401)

    Connection Errors

    SSL Certificate Errors

    Implementation

    The Gateway health check is implemented using Bottle, a lightweight WSGI micro web-framework for Python. Bottle was chosen for the following advantages:

    • Minimal dependency (single file, ~60KB in size)

    • Enhanced security over the built-in Python HTTP server

    • Proper request routing and handling

    • Better error management

    • Thread safety

    • Production-ready with minimal overhead

    CLI Health Check

    You can check the gateway's health from the command line:

    This command returns:

    • Exit code 0 if the gateway is healthy

    • Exit code 1 if the gateway is not running or not healthy

    • Text output indicating the status (OK/CRITICAL/WARNING)

    For detailed output in a machine-parsable format (one key=value pair per line):

    For JSON format output (matching the HTTP endpoint format):

    If your health check server is using SSL:

    If your health check server requires authentication:

    If your health check server is running on a non-default port:

    If your health check server is running on a different host:

    The detailed output includes:

    • Gateway version

    • Connection status

    • WebSocket metrics (when available)

    • Process information (in background mode)

    This makes it suitable for monitoring scripts and cron jobs.

    Note: The CLI health check command requires the HTTP health check server to be running. If the health check server is not running, the command will return an error message suggesting to enable the health check server.


    HTTP Health Check

    The gateway includes a secure HTTP health check endpoint that can be enabled with environment variables or command line arguments.

    Configuration

    The health check server can be configured using environment variables or command line arguments:

    Environment Variables

    Environment Variable
    Purpose
    Default

    KEEPER_GATEWAY_HEALTH_CHECK_ENABLED

    Enable HTTP health check (1, true, yes)

    Disabled

    KEEPER_GATEWAY_HEALTH_CHECK_PORT

    Port for HTTP server

    8099

    KEEPER_GATEWAY_HEALTH_CHECK_HOST

    Host address to bind to

    127.0.0.1

    KEEPER_GATEWAY_HEALTH_CHECK_AUTH_TOKEN

    Authentication token for requests

    Command Line Arguments

    When starting the gateway, you can also use these command line arguments:

    Command line arguments take precedence over environment variables when both are specified.

    Example Commands

    Basic health check with default settings:

    Custom port and authentication token:

    Bind to all interfaces (only in secure environments):

    Enable SSL with certificate and key:

    Complete example with all options:

    Usage

    When enabled, the HTTP health check endpoint will be available at:

    Or with SSL:

    Response Format

    The endpoint returns:

    • HTTP 200 if the gateway is healthy

    • HTTP 503 if the gateway is not healthy

    • JSON response with details:

    The response includes:

    • status: Overall health status ("healthy" or "unhealthy")

    • message: Human-readable description of the status

    • details: Detailed information about the gateway

      • timestamp: Current server timestamp

      • version: API version

      • connection_status: Current connection status ("connected", "disconnected", etc.)

      • websocket: WebSocket connection metrics

        • uptime_seconds: WebSocket connection uptime in seconds

        • uptime_human: Human-readable uptime (e.g., "1m 25s")

        • last_ping_received_seconds_ago: Seconds since the last ping was received

    Example Responses

    Healthy Gateway:

    Unhealthy Gateway:

    Note that some metrics like latency_ms, last_ping_sent_timestamp, and last_pong_received_timestamp may not always be present in the response. The availability of these metrics depends on the current state of the WebSocket connection and the timing of ping/pong messages.

    Status Update Delays

    The health check reflects the current state of the WebSocket connection, but there may be a delay in status updates.

    Delayed Status Updates

    When connectivity is lost, it may take up to 2 minutes for the health check to report an "unhealthy" status, as the gateway attempts to reconnect. Similarly, when connectivity is restored, it may take up to 2 minutes for the health check to reflect a "healthy" status.

    This latency is intentional and allows the gateway to attempt reconnection without immediately reporting failures for transient connectivity issues.

    Security

    The HTTP health check includes the following security features:

    1. Authentication: When KEEPER_GATEWAY_HEALTH_CHECK_AUTH_TOKEN is set, requests must include the token in the Authorization header:

    2. SSL/TLS: When SSL is enabled, all communication is encrypted. You must provide a valid certificate and private key.

    3. Localhost binding: The server binds to localhost only by default, not exposing the endpoint over the network.

    4. Security Headers: The health check server adds the following security headers to responses:

      • X-Content-Type-Options: nosniff

      • X-Frame-Options: DENY

      • Content-Security-Policy: default-src 'none'

    5. Rate Limiting: Automatic rate limiting is applied to non-localhost connections (60 requests per minute per IP).

    6. Information Protection: When the server is bound to a non-localhost address, sensitive information is automatically redacted from the response.

    7. Forced SSL: SSL is automatically enforced when binding to non-localhost interfaces.

    TLS Compatibility

    The health check server is configured to support a wide range of clients by:

    • Using secure TLS defaults (TLS 1.2+ minimum) for maximum security

    • Supporting modern cipher suites for strong encryption

    • Automatically handling protocol negotiation for HTTP and HTTPS

    For clients that support modern TLS versions, use standard curl commands:


    Docker-Specific Configuration Requirements

    When running Keeper Gateway inside Docker, special configuration may be required to expose the health check to the host or external systems:

    Binding to 0.0.0.0

    • The health check server must bind to 0.0.0.0 to be reachable outside the container.

    • 127.0.0.1 restricts access to within the container only.

    SSL Enforcement

    • When using 0.0.0.0, Keeper Gateway forces SSL to protect health check data.

    • You must provide a valid certificate and key or the server will not start.

    Authentication Requirement

    • If binding to 0.0.0.0, you must also specify an AUTH_TOKEN to secure the endpoint.

    Docker Compose Example

    Generate a Self-Signed Certificate

    Test the Endpoint from the Host


    Example Linux Configuration

    Or using command line arguments:

    Self-Signed SSL Certificates

    For testing or internal use, you can generate self-signed certificates to enable SSL/TLS encryption:

    Or using command line arguments:

    When using self-signed certificates, your HTTP client will need to be configured to trust the certificate or ignore SSL verification (not recommended for production).

    Monitoring Integration

    This endpoint can be used with monitoring systems like:

    • Prometheus with blackbox exporter

    • Nagios/Icinga

    • Zabbix

    • Datadog

    • AWS CloudWatch

    • Any monitoring system that can perform HTTP checks

    Authorization: Bearer <token>
    gateway start --health-check
    gateway health-check
    keeper-gateway:
        ...
        environment:
          ...
          KEEPER_GATEWAY_HEALTH_CHECK_ENABLED: 'true'
        healthcheck:
          test:
          - CMD
          - /usr/local/bin/keeper-gateway
          - health-check
          interval: 30s
          timeout: 10s
          retries: 3
          start_period: 60s
        ...
        restart: unless-stopped
    docker compose up -d
    docker inspect --format='{{.State.Health.Status}}' keeper-gateway
    docker ps --filter "status=running" --format "{{.Names}} {{.Image}}" | grep keeper-gateway | awk '{print $1}'
    $ docker inspect --format='{{.State.Health.Status}}' my-gateway-container
    healthy
    watchdog.sh
    #!/bin/bash
    
    LOGFILE="/path/to/keeper-watchdog.log"
    
    # Find running container matching keeper-gateway
    CONTAINER_NAME=$(docker ps --filter "status=running" --format "{{.Names}} {{.Image}}" | grep keeper-gateway | awk '{print $1}')
    
    if [ -z "$CONTAINER_NAME" ]; then
      echo "$(date): No running keeper-gateway container found." >> "$LOGFILE"
    else
      # Get health status
      HEALTH=$(docker inspect --format='{{.State.Health.Status}}' "$CONTAINER_NAME")
    
      if [ "$HEALTH" != "healthy" ]; then
        echo "$(date): $CONTAINER_NAME is $HEALTH. Restarting..." >> "$LOGFILE"
        docker restart "$CONTAINER_NAME"
      else
        echo "$(date): $CONTAINER_NAME is healthy." >> "$LOGFILE"
      fi
    fi
    
    # Trim log file to last 100 lines
    tail -n 100 "$LOGFILE" > "$LOGFILE.tmp" && mv "$LOGFILE.tmp" "$LOGFILE"
    crontab -e
    * * * * * /path/to/watchdog.sh
    CRITICAL: Authentication failed when connecting to https://127.0.0.1:8099/health
    ERROR: Invalid or missing authentication token.
    
    Possible fixes:
    1. Check if auth token is required:
       curl -k https://127.0.0.1:8099/health
    2. Provide the correct auth token:
       gateway health-check --ssl --token YOUR_TOKEN
    3. Check gateway startup logs for the configured token
    CRITICAL: Could not connect to health check server at http://127.0.0.1:8099/health
    ERROR: Connection failed.
    
    Possible causes:
    1. Health check server is not running
    2. Wrong host/port combination
    3. Network connectivity issues
    4. SSL/non-SSL mismatch
    
    Troubleshooting steps:
    1. Verify gateway is running with health check enabled:
       gateway start --health-check
    2. Check if server is using SSL:
       gateway health-check --ssl
    3. Verify host and port:
       Current: 127.0.0.1:8099
    4. Test with curl:
       curl http://127.0.0.1:8099/health
    CRITICAL: SSL error connecting to health check server at https://127.0.0.1:8099/health
    ERROR: SSL certificate validation failed.
    
    Possible causes:
    - Self-signed certificate (try curl with -k flag)
    - Invalid certificate path
    - Certificate expired
    gateway health-check
    gateway health-check -i
    gateway health-check -j
    gateway health-check --ssl
    gateway health-check --ssl --token your_auth_token
    gateway health-check --port 8123
    gateway health-check --host 10.0.0.5
    --health-check               Enable the health check server
    --health-check-port INT      Port for the health check server (default: 8099)
    --health-check-host STRING   Host address to bind to (default: 127.0.0.1)
    --health-check-auth-token    Auth token for the health check server
    --health-check-ssl           Enable SSL for the health check server
    --health-check-ssl-cert      Path to SSL certificate
    --health-check-ssl-key       Path to SSL private key
    gateway start --health-check
    gateway start --health-check --health-check-port 9000 --health-check-auth-token mysecrettoken
    gateway start --health-check --health-check-host 0.0.0.0
    gateway start --health-check --health-check-ssl --health-check-ssl-cert /path/to/cert.pem --health-check-ssl-key /path/to/key.pem
    gateway start --health-check --health-check-port 8443 --health-check-host 10.0.0.5 --health-check-auth-token mysecrettoken --health-check-ssl --health-check-ssl-cert /path/to/cert.pem --health-check-ssl-key /path/to/key.pem
    http://localhost:8099/health
    https://localhost:8099/health
    {
      "status": "healthy",
      "message": "Gateway is running and connected",
      "details": {
        "timestamp": 1742849941,
        "version": 1,
        "connection_status": "connected",
        "websocket": {
          "uptime_seconds": 85,
          "uptime_human": "1m 25s",
          "last_ping_received_seconds_ago": 10,
          "latency_ms": 75,
          "last_ping_sent_timestamp": 1742850455,
          "last_pong_received_timestamp": 1742850455
        }
      }
    }
    {
      "status": "healthy",
      "message": "Gateway is running and connected",
      "details": {
        "timestamp": 1742849941,
        "version": 1,
        "connection_status": "connected",
        "websocket": {
          "uptime_seconds": 85,
          "uptime_human": "1m 25s",
          "last_ping_received_seconds_ago": 10,
          "latency_ms": 75,
          "last_ping_sent_timestamp": 1742850455,
          "last_pong_received_timestamp": 1742850455
        }
      }
    }
    {
      "status": "unhealthy",
      "message": "Gateway is not properly connected (status: reconnecting)",
      "details": {
        "timestamp": 1742850874,
        "version": 1,
        "connection_status": "reconnecting",
        "websocket": {
          "uptime_seconds": 1018,
          "uptime_human": "16m 58s",
          "last_ping_received_seconds_ago": 324,
          "latency_ms": 77
        }
      }
    }
    curl -k -H "Authorization: Bearer your_token" https://localhost:8099/health
    services:
      keeper-gateway:
        image: keeper/gateway:latest
        ports:
          - "8099:8099"
        volumes:
          - ./certs:/certs:ro
        environment:
          KEEPER_GATEWAY_HEALTH_CHECK_ENABLED: true
          KEEPER_GATEWAY_HEALTH_CHECK_HOST: "0.0.0.0"
          KEEPER_GATEWAY_HEALTH_CHECK_PORT: 8099
          KEEPER_GATEWAY_HEALTH_CHECK_USE_SSL: true
          KEEPER_GATEWAY_HEALTH_CHECK_SSL_CERT: /certs/healthcheck.crt
          KEEPER_GATEWAY_HEALTH_CHECK_SSL_KEY: /certs/healthcheck.key
          KEEPER_GATEWAY_HEALTH_CHECK_AUTH_TOKEN: mysecrettoken
    mkdir -p certs
    openssl req -x509 -nodes -days 365 \
      -newkey rsa:2048 \
      -keyout certs/healthcheck.key \
      -out certs/healthcheck.crt \
      -subj "/CN=localhost"
    curl -k -H "Authorization: Bearer mysecrettoken" https://localhost:8099/health
    # Enable HTTP health check
    export KEEPER_GATEWAY_HEALTH_CHECK_ENABLED=true
    export KEEPER_GATEWAY_HEALTH_CHECK_PORT=8099
    export KEEPER_GATEWAY_HEALTH_CHECK_AUTH_TOKEN=mysecrettoken
    
    # Start the gateway
    gateway start
    gateway start --health-check --health-check-port 8099 --health-check-auth-token mysecrettoken
    # Generate a private key
    openssl genrsa -out healthcheck.key 2048
    
    # Generate a certificate signing request (CSR)
    openssl req -new -key healthcheck.key -out healthcheck.csr -subj "/CN=localhost"
    
    # Generate a self-signed certificate (valid for 365 days)
    openssl x509 -req -days 365 -in healthcheck.csr -signkey healthcheck.key -out healthcheck.crt
    
    # Set the environment variables
    export KEEPER_GATEWAY_HEALTH_CHECK_ENABLED=true
    export KEEPER_GATEWAY_HEALTH_CHECK_USE_SSL=true
    export KEEPER_GATEWAY_HEALTH_CHECK_SSL_CERT=/path/to/healthcheck.crt
    export KEEPER_GATEWAY_HEALTH_CHECK_SSL_KEY=/path/to/healthcheck.key
    export KEEPER_GATEWAY_HEALTH_CHECK_PORT=8443  # Typical HTTPS port
    export KEEPER_GATEWAY_HEALTH_CHECK_AUTH_TOKEN=mysecrettoken
    
    # Start the gateway
    gateway start
    gateway --health-check --health-check-port 8443 --health-check-ssl --health-check-ssl-cert /path/to/healthcheck.crt --health-check-ssl-key /path/to/healthcheck.key --health-check-auth-token mysecrettoken start

    latency_ms: Round-trip latency of the last ping-pong in milliseconds

  • last_ping_sent_timestamp: Unix timestamp when the last ping was sent

  • last_pong_received_timestamp: Unix timestamp when the last pong was received

  • curl -k https://127.0.0.1:8099/health

    HTTPS with Auth

    gateway start --health-check --health-check-ssl --health-check-ssl-cert /path/cert.pem --health-check-ssl-key /path/key.pem --health-check-auth-token mytoken

    gateway health-check --ssl --token mytoken

    curl -k -H "Authorization: Bearer mytoken" https://127.0.0.1:8099/health

    Custom Port

    gateway start --health-check --health-check-port 8443

    gateway health-check --port 8443

    curl http://127.0.0.1:8443/health

    Custom Host

    gateway start --health-check --health-check-host 0.0.0.0

    gateway health-check --host 0.0.0.0

    curl http://0.0.0.0:8099/health

    Production Setup

    gateway start --health-check --health-check-host 0.0.0.0 --health-check-port 8443 --health-check-ssl --health-check-ssl-cert /etc/ssl/cert.pem --health-check-ssl-key /etc/ssl/key.pem --health-check-auth-token $(cat /etc/secrets/token)

    gateway health-check --host 0.0.0.0 --port 8443 --ssl --token $(cat /etc/secrets/token)

    curl -k -H "Authorization: Bearer $(cat /etc/secrets/token)" https://0.0.0.0:8443/health

    Success if bound to 0.0.0.0, failure if bound to 127.0.0.1

    None

    KEEPER_GATEWAY_HEALTH_CHECK_USE_SSL

    Enable SSL (1, true, yes)

    Disabled

    KEEPER_GATEWAY_HEALTH_CHECK_SSL_CERT

    Path to SSL certificate

    None

    KEEPER_GATEWAY_HEALTH_CHECK_SSL_KEY

    Path to SSL private key

    None

    Reporting, Alerts & SIEM integration
    MSP Consumption Model
    Secure Add-On
    Time-Limited Access
    End-User Guides