Integration Training Guide

Secret Server ร—
AWS Key Manager

A comprehensive technical integration guide for hybrid organizations deploying Delinea Secret Server alongside AWS Key Management Service. Covers full lifecycle secret synchronization, template mapping, conflict resolution, and cross-platform security architecture.

โ— Bidirectional Sync โ— AES-256 Encrypted โ— IAM Role-Based โš  Restricted
6sec
Default Sync Interval
โˆž
Secret Templates
99.9%
Conflict Resolution Rate
0
Plaintext In Transit
01

Architecture Overview

The hybrid integration positions Secret Server as the authoritative source of record for privileged credentials, while AWS Key Manager provides cryptographic key material, envelope encryption, and native AWS-service secret delivery. The sync connector bridges these systems with a configurable, conflict-aware replication engine.

๐Ÿข Secret Server
Delinea PAM ยท On-prem / SaaS
Authoritative Source of Record
โ–ถ
TLS 1.3
Encrypted
โšก Sync Connector
Key Manager Sync Engine
Conflict Resolver ยท Audit Logger
โ–ถ
Envelope
Encrypted
โ˜ AWS Key Manager
AWS KMS + Secrets Manager
Native Cloud Delivery
Bidirectional sync ยท Configurable conflict resolution ยท Zero-trust IAM boundaries

The architecture respects a zero-trust boundary between on-premises and cloud environments. Secret Server manages access policy, rotation schedules, and dependency tracking. AWS KMS handles cryptographic operations and native AWS service delivery. The connector handles protocol translation, field mapping, and sync-state bookkeeping.

โ„น๏ธ
CONNECTOR VERSIONING

This guide applies to Key Manager Sync Connector v2.4+. Connector version can be verified at Admin โ†’ Sync Connectors โ†’ About. Versions below 2.0 do not support bidirectional sync or conflict resolution.

02

Prerequisites

Before configuring the connector, ensure all prerequisites are met in both environments. Incomplete prerequisites are the leading cause of failed initial syncs.

Secret Server
AWS Environment
Network
  • Secret Server 11.0+ with Professional or Platinum license
  • Key Manager Sync Connector add-on installed (v2.4+)
  • Service account with Administer Sync Connectors role permission
  • TLS certificate for HTTPS connector endpoint (not self-signed)
  • Audit logging enabled for all secret access events
  • AWS account with Secrets Manager and KMS enabled in target region
  • IAM role SecretServerSyncRole created with least-privilege policy
  • KMS customer managed key (CMK) created for envelope encryption
  • SCP allows secretsmanager:* and kms:Decrypt in target OU
  • CloudTrail enabled with log delivery to S3 for audit correlation
  • VPC endpoint for Secrets Manager (optional but recommended)
  • Outbound HTTPS (443) from Secret Server engine to secretsmanager.<region>.amazonaws.com
  • Outbound HTTPS (443) from Secret Server engine to kms.<region>.amazonaws.com
  • Firewall rules allow STS endpoint for AssumeRole: sts.amazonaws.com
  • DNS resolution confirmed for all AWS service endpoints
  • If using PrivateLink: VPC endpoint DNS enabled with private hosted zones
03

Configuring the Key Manager Sync Connector

The sync connector is configured in two phases: IAM trust relationship setup in AWS, followed by connector registration and endpoint configuration in Secret Server.

Phase 1 โ€” IAM Trust Relationship

Create an IAM role that the connector will assume using STS. This role follows least-privilege and trusts the Secret Server engine's instance profile or static credentials.

JSON โ€” IAM Trust Policy
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT_ID:role/SecretServerEngine"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "SS_CONNECTOR_EXTERNAL_ID"  // set in SS UI
        }
      }
    }
  ]
}
JSON โ€” Connector Permissions Policy
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue",
        "secretsmanager:PutSecretValue",
        "secretsmanager:CreateSecret",
        "secretsmanager:UpdateSecret",
        "secretsmanager:DescribeSecret",
        "secretsmanager:ListSecrets",
        "secretsmanager:TagResource"
      ],
      "Resource": "arn:aws:secretsmanager:REGION:ACCOUNT:secret:ss-sync/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:REGION:ACCOUNT:key/CMK_KEY_ID"
    }
  ]
}

Phase 2 โ€” Connector Registration in Secret Server

  1. 1
    Navigate to Sync Connector Settings
    Go to Admin โ†’ Configuration โ†’ Sync Connectors โ†’ New Connector. Select AWS Key Manager from the connector type dropdown.
  2. 2
    Enter IAM Credentials
    Input the ARN of the SecretServerSyncRole and the External ID you defined in the trust policy. For EC2-hosted engines, prefer instance profile โ€” leave the Access Key fields empty.
  3. 3
    Configure Region & KMS Key
    Set the target AWS region and paste the CMK ARN or alias. This key will be used for all envelope encryption operations during sync. The connector validates key access on save.
  4. 4
    Set Sync Mode & Interval
    Choose between Push-Only, Pull-Only, or Bidirectional. Set the polling interval (minimum 60 seconds recommended for production; 300s default). Enable Incremental Sync to reduce API call volume.
  5. 5
    Test & Activate
    Click Test Connection. The system performs an STS AssumeRole call, a KMS DescribeKey, and a Secrets Manager list operation. All three must succeed. Click Activate Connector to begin syncing.
โš ๏ธ
CREDENTIAL STORAGE

Never store static IAM access keys in the connector configuration if the Secret Server engine runs on EC2 or ECS. Use instance profiles or task roles. Static keys stored here are encrypted at rest but represent a credential sprawl risk.

04

Mapping Secret Templates to Key Vault Secret Types

Secret Server's template system uses structured field definitions. AWS Secrets Manager stores secrets as JSON key-value documents (or plaintext strings). The mapping layer handles serialization, field aliasing, and type coercion between these two data models.

Default Template Mappings

Secret Server Template
โ†’
AWS Secrets Manager Type
Active Directory Account SS
โ‡„
JSON โ€” username/password/domain BIDI
Unix Account (SSH) SS
โ‡„
JSON โ€” username/password/private_key BIDI
AWS Access Key SS
โ†’
JSON โ€” aws_access_key_id/aws_secret_access_key PUSH
SQL Server Account SS
โ‡„
JSON โ€” engine/host/port/username/password BIDI
Certificate (PEM) SS
โ†’
Binary / Base64 Plaintext PUSH
Generic (custom fields) SS
โ‡„
Freeform JSON object BIDI

Mappings tagged BIDI support bidirectional sync. Mappings tagged PUSH are push-only because Secret Server maintains canonical metadata (rotation history, expiry) that has no AWS equivalent.

Custom Template Mapping Configuration

YAML โ€” Custom Template Mapping Definition
template_mappings:
  - ss_template_name: "Oracle Service Account"
    aws_secret_prefix: "oracle/"
    direction: bidirectional
    kms_key_override: "arn:aws:kms:us-east-1:123:key/oracle-cmk"
    field_map:
      - ss_field: "Username"
        aws_key: "username"
      - ss_field: "Password"
        aws_key: "password"
        sensitive: true
      - ss_field: "Server"
        aws_key: "host"
      - ss_field: "Port"
        aws_key: "port"
        type_coerce: integer
    tags:
      environment: "production"
      managed_by: "secret-server-sync"
      template: "oracle-service-account"
๐Ÿ’ก
NAMING CONVENTION

Use the aws_secret_prefix to organize secrets in AWS by type. This simplifies IAM resource-based policies and helps teams locate secrets without Secret Server access. Recommended pattern: <env>/<type>/<name> e.g. prod/oracle/app-svc-01.

05

Bidirectional Synchronization Rules

The sync engine applies a deterministic rule set to decide when, what, and how to synchronize secrets between platforms. Understanding these rules is critical for predicting system behavior during edge cases.

Push Rules (SS โ†’ AWS)
Pull Rules (AWS โ†’ SS)
Throttling

Push events are triggered when:

  • A secret is created or edited in Secret Server (webhook event)
  • Password rotation completes successfully
  • A field included in the mapping is modified
  • A secret is moved to a folder covered by a sync rule
  • A scheduled full-sync interval fires (default: every 5 minutes)
Push โ€” What Gets Synced
# Mapped fields only โ€” unmapped SS fields are NEVER pushed
# Metadata synced as AWS secret tags:
Tags:
  ss_secret_id:      "<secret_id>"
  ss_folder_path:    "<folder>/<subfolder>"
  ss_last_modified:  "<ISO8601 timestamp>"
  ss_template:       "<template_name>"
  ss_sync_version:   "<sync_sequence_number>"

Pull events are triggered when:

  • AWS EventBridge event received for PutSecretValue (near real-time)
  • Scheduled poll detects LastChangedDate newer than last sync timestamp
  • Manual sync triggered by operator from SS admin panel
๐Ÿ“Œ
PULL FILTER RULES

Only secrets with the tag managed_by: secret-server-sync are eligible for pull. Secrets without this tag are ignored. This prevents the connector from accidentally importing unrelated AWS secrets into Secret Server.

Throttling configuration prevents API rate limit exhaustion:

INI โ€” Throttling Configuration
# /etc/ss-connector/throttle.ini
[aws_api_limits]
max_requests_per_second = 50       # AWS SM default quota
burst_multiplier        = 1.5      # burst headroom
retry_backoff_base      = 2        # exponential base (seconds)
retry_max_attempts      = 5
batch_size              = 20       # secrets per sync batch
batch_delay_ms          = 500      # ms pause between batches

[kms_limits]
max_decrypt_per_second  = 5000     # default KMS CryptographicOperations quota
cache_data_key_ttl_secs = 300      # reuse envelope data key for 5 min
06

Handling Sync Conflicts

Conflicts occur when a secret is modified in both Secret Server and AWS Secrets Manager between sync cycles. The connector detects conflicts via version vector comparison using ss_sync_version tags and Secret Manager's VersionStages.

HIGH Concurrent Password Rotation Conflict
โ–พ

Scenario: Secret Server's rotation heartbeat rotates a password while an AWS Lambda function independently updates the same secret in Secrets Manager.

Detection: Connector sees ss_sync_version mismatch AND diverged timestamps.

Default Resolution: Secret Server wins. The SS version is pushed to AWS, and the conflicting AWS version is archived with the tag ss_conflict_archive: true and version stage AWSPREVIOUS.

โš ๏ธ
DEPENDENCY RISK

Any Lambda or ECS task that fetched the overwritten AWS secret between the conflict window and resolution may be holding a stale credential. Implement short TTL caching (โ‰ค60s) in consumers.

MED Field-Level Conflict (Partial Update)
โ–พ

Scenario: AWS consumer updates the host field (server moved) while Secret Server updates the password field (rotation). Both changes are legitimate.

Detection: Field-level diff shows non-overlapping modified fields.

Resolution: Connector merges fields: SS wins on sensitive fields (password, private_key); AWS wins on non-sensitive fields (host, port). Merged result is written to both systems.

Resolution Config
conflict_resolution:
  default_winner: secret_server
  field_override_rules:
    - fields: ["password", "private_key", "api_key"]
      winner: secret_server
    - fields: ["host", "port", "database"]
      winner: aws
  on_unresolvable: quarantine_and_alert
MED Secret Deleted on One Side
โ–พ

Scenario: Secret is deleted in AWS Secrets Manager (e.g., by a resource cleanup script) while it remains active in Secret Server.

Resolution: Secret Server's existence wins. The connector recreates the secret in AWS with the current SS value and logs a SYNC_CONFLICT_RECREATE event. An alert is sent to the configured SNS topic.

Reverse scenario (deleted in SS, exists in AWS): Connector marks the AWS secret with ss_deleted: true tag and places it in quarantine. It is NOT deleted from AWS automatically โ€” operators must confirm deletion.

LOW Tag Metadata Conflict
โ–พ

Scenario: AWS tags on the secret are modified externally (e.g., compliance team adds a data_classification tag).

Resolution: Non-ss_-prefixed tags are owned by AWS and are preserved through sync operations. The connector never overwrites tags that don't begin with ss_. This allows parallel tag governance from both systems.

Quarantine Queue

Secrets that cannot be automatically resolved are placed in the quarantine queue, visible at Admin โ†’ Sync Connectors โ†’ Conflicts. Operators must manually resolve or dismiss each item. Quarantined secrets are not synced until resolved.

07

Security Model for Cross-Platform Credential Sharing

The integration's security model is built on layered encryption, zero standing access, and auditable data flows. No plaintext credential material ever crosses system boundaries unencrypted.

๐Ÿ”’
Envelope Encryption
All secret values are envelope-encrypted using a Data Encryption Key (DEK) generated per-secret. The DEK is encrypted by the AWS CMK via kms:GenerateDataKey. Neither the connector nor Secret Server ever holds a plaintext DEK at rest.
๐ŸŽญ
Identity Federation
The connector assumes an IAM role via STS with a mandatory ExternalId condition. Session tokens have a 1-hour TTL and are not persisted. The role uses resource-level policies scoped to the ss-sync/ prefix only.
๐Ÿ“‹
Dual Audit Trail
Every sync operation generates events in both Secret Server's audit log and AWS CloudTrail. Events are correlated via a shared ss_correlation_id field injected into CloudTrail's userAgent string.
๐Ÿšซ
Access Minimization
The sync service account has no access to Secret Server secrets directly โ€” it only reads mapped field values via the sync pipeline API. All access is mediated through role-based policies, never direct database queries.
๐Ÿ”„
Rotation Integrity
When Secret Server rotates a credential, the rotation is committed locally before any push to AWS. If the AWS write fails, the rotation is still valid in SS and will be retried. AWS consumers are never given a credential before SS rotation succeeds.
๐Ÿงฑ
Network Segmentation
Recommend deploying the connector engine in a dedicated subnet with VPC endpoints for Secrets Manager and KMS. This ensures all traffic to AWS services stays on the AWS backbone with no traversal over the public internet.

Shared Responsibility Model

Responsibility Boundaries
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Responsibility               โ”‚ Secret Server          โ”‚ AWS KMS / SM           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Credential lifecycle mgmt   โ”‚ โœ“ Owner                โ”‚ Replication            โ”‚
โ”‚ Access policy enforcement   โ”‚ โœ“ Owner                โ”‚ IAM complement         โ”‚
โ”‚ Cryptographic key custody   โ”‚ AES-256 at-rest        โ”‚ โœ“ Owner (CMK)          โ”‚
โ”‚ Native AWS service delivery โ”‚ Via sync only          โ”‚ โœ“ Owner                โ”‚
โ”‚ Rotation scheduling         โ”‚ โœ“ Owner                โ”‚ Triggered by push      โ”‚
โ”‚ Compliance audit trail      โ”‚ SS Audit Log           โ”‚ CloudTrail             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
08

Knowledge Check

Test your understanding of key integration concepts before deploying.

1. When a concurrent password rotation conflict occurs, what is the default conflict resolution behavior?
A AWS Secrets Manager version is preserved; Secret Server is overwritten
B Secret Server version wins; the AWS version is archived with ss_conflict_archive: true
C Both versions are deleted and the secret is quarantined
D The most recently modified version wins regardless of system
โœ“ Correct! Secret Server is the authoritative source. The AWS version is archived as AWSPREVIOUS and tagged for audit purposes.
2. Which tag is required on an AWS secret for the connector to include it in pull synchronization?
A ss_secret_id
B ss_sync_enabled: true
C managed_by: secret-server-sync
D sync_direction: pull
โœ“ Correct! Only secrets tagged with managed_by: secret-server-sync are eligible for pull. This prevents accidental import of unrelated AWS secrets.
3. A field-level conflict is detected: AWS updated the host field; Secret Server updated the password field simultaneously. What is the default merge outcome?
A The entire secret is quarantined pending manual review
B Secret Server wins both fields
C Fields are merged: SS wins password, AWS wins host
D The older timestamp loses all fields
โœ“ Correct! Field-level merge rules apply: SS owns sensitive fields (passwords, keys), AWS owns infrastructure fields (host, port, database). Both changes are preserved.
4. Which of the following is TRUE about the envelope encryption model used during sync?
A The connector holds the plaintext DEK in memory permanently for performance
B Secret Server's database key is shared with AWS KMS for joint custody
C A per-secret DEK is generated and encrypted by the CMK; neither system holds a plaintext DEK at rest
D TLS encryption alone is sufficient; no additional envelope encryption is needed
โœ“ Correct! Envelope encryption isolates key custody: AWS KMS owns the CMK, the connector generates ephemeral DEKs, and neither stores plaintext key material at rest.
09

Deployment Checklist

Complete all items before going live. This checklist is tracked per session โ€” check items off as you verify them.

Security Hardening

  • ExternalId set on IAM trust policy and matches SS connector configuration
  • IAM role permissions scoped to ss-sync/* resource prefix only
  • CMK key policy restricts kms:Decrypt to sync role ARN exclusively
  • SCP in place to prevent unauthorized Secrets Manager access from other accounts
  • VPC endpoint deployed for Secrets Manager and KMS (no public egress)
  • CloudTrail and SS audit logs shipped to immutable S3 bucket with Object Lock

Operational Readiness

  • Template mappings tested with sample secrets in non-production environment
  • Conflict resolution policy documented and approved by security team
  • SNS alerts configured for quarantine queue events
  • Runbook created for manual conflict resolution procedures
  • Rollback procedure documented (disable connector, clear sync state)
  • AWS API quotas validated for expected secret volume and sync frequency
  • Monitoring dashboard created for sync latency, error rates, and conflict counts