Skip to content

This guide walks you through creating a Server Workload: Server Workloads represent target services, APIs, databases, or applications that receive and respond to access requests from Client Workloads.Learn more in Aembit to securely access AWS services without storing static AWS credentials.

Use this Server Workload to enable your applications to authenticate to AWS services such as S3, Lambda, EC2, DynamoDB, SQS, and other AWS API endpoints.

Aembit authenticates to AWS using the AWS Security Token Service (STS) Credential Provider: Credential Providers obtain the specific access credentials—such as API keys, OAuth tokens, or temporary cloud credentials—that Client Workloads need to authenticate to Server Workloads.Learn more with SigV4 and SigV4a request signing.

Before you begin, ensure you have the following:

Account access

  • Access to your Aembit Tenant: Aembit Tenants serve as isolated, dedicated environments within Aembit that provide complete separation of administrative domains and security configurations.Learn more (role: Workload Administrator or higher)
  • Access to AWS Console with permissions to create IAM Roles and Identity Providers

Infrastructure

  • Aembit Edge: Aembit Edge represents components deployed within your operational environments that enforce Access Policies by intercepting traffic, verifying identities, and injecting credentials just-in-time.Learn more Components deployed in your environment:
  • TLS Decrypt configured on your Agent Proxy. AWS API requests require TLS Decrypt because Agent Proxy must inspect HTTPS traffic to inject SigV4 signatures. TLS decryption occurs only on the Agent Proxy running alongside your workload.
  • Network connectivity from your workload to AWS service endpoints (outbound HTTPS to *.amazonaws.com)

AWS configuration

  • An IAM Role configured in AWS with the necessary permissions to access the desired AWS services

Aembit uses AWS STS federation to obtain temporary credentials, then signs requests using AWS SigV4 or SigV4a.

Diagram

Aembit automatically selects the appropriate signing protocol:

  • SigV4 for regional AWS services (when the hostname includes a region like us-east-1)
  • SigV4a for global or multi-region services (when the hostname doesn’t include a region)

For details on how Aembit handles AWS request signing, see How Aembit uses AWS SigV4 and SigV4a.

Select the tab for the AWS service you want to configure:

Use this configuration for most AWS services that follow the standard regional endpoint pattern, such as Lambda, SQS, DynamoDB, and Key Management Service (KMS).

  1. Log in to your Aembit Tenant.

  2. Go to Server Workloads, and click + New.

  3. Configure the following fields:

    • Name: Enter a descriptive name (for example, aws-generic)
    • Host: *.amazonaws.com
    • Application Protocol: HTTP
    • Port: 443
    • Forward to Port: 443 with TLS enabled
    • Authentication method: HTTP Authentication
    • Authentication scheme: AWS Signature v4
  4. Click Save.

  1. Create an AWS IAM Role in AWS with the necessary permissions to access the desired AWS services. Then, create an AWS IAM Role Integration in your Aembit Tenant. See Create an AWS IAM Role Integration.

  2. Create an AWS Security Token Service (STS) Credential Provider. See Configure an AWS STS Federation Credential Provider.

Create an Access Policy: Access Policies define, enforce, and audit access between Client and Server Workloads by cryptographically verifying workload identity and contextual factors rather than relying on static secrets.Learn more linking your Client Workload: Client Workloads represent software applications, scripts, or automated processes that initiate access requests to Server Workloads, operating autonomously without direct user interaction.Learn more, the AWS STS Credential Provider, and the Server Workload. See Access Policies for details.

Aembit handles the credentials required to access AWS services, eliminating the need for you to manage them directly. Remove any previously used AWS credentials (access keys, secret keys) from your Client Workload.

If you access AWS through an SDK or library, the SDK may still require credentials to be present for initialization purposes. In this scenario, provide placeholder credentials. Aembit replaces these placeholder credentials with real temporary credentials during the access request. For more information, see Understanding placeholder credentials.

Terminal window
# Placeholder credentials for SDK initialization
export AWS_ACCESS_KEY_ID=placeholder
export AWS_SECRET_ACCESS_KEY=placeholder

If you’re using the AWS CLI, set the AWS_CA_BUNDLE environment variable to point to your Aembit Tenant Root CA certificate:

Terminal window
export AWS_CA_BUNDLE=/path/to/aembit-root-ca.pem

After completing the full configuration (Server Workload, Credential Provider, Client Workload, and Access Policy), verify access using the AWS CLI.

Terminal window
# Verify credentials are working
aws sts get-caller-identity
# List KMS keys
aws kms list-keys
# Describe a specific key
aws kms describe-key --key-id <your-key-id>

AWS IAM policies require different Resource ARN formats depending on the operation:

Operation TypeResource ARN FormatExample
Bucket-level (ListBucket)arn:aws:s3:::bucket-namearn:aws:s3:::my-bucket
Object-level (GetObject, PutObject)arn:aws:s3:::bucket-name/*arn:aws:s3:::my-bucket/*
Example IAM policy for S3 access
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": "arn:aws:s3:::my-bucket"
},
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}

For more on AWS IAM policies, see Policies and permissions in Amazon S3.

AWS services use different endpoint patterns:

Service TypeEndpoint PatternExample
Regional servicesservice.region.amazonaws.comkms.us-east-1.amazonaws.com
Global servicesservice.amazonaws.comiam.amazonaws.com
S3 (virtual-hosted)bucket.s3.region.amazonaws.commy-bucket.s3.us-east-1.amazonaws.com

For the complete list of AWS service endpoints, see AWS service endpoints.

Aembit dynamically generates short-lived AWS STS credentials, eliminating manual credential rotation. For details on credential rotation, compromise response, and audit logging, see Credential Lifecycle Management.

For common issues like Agent Proxy connectivity, network problems, or TLS configuration, see the Troubleshooting Guide.

AccessDenied errors -

If you receive AccessDenied errors when accessing AWS services:

  1. Verify your IAM Role has the correct permissions for the operation
  2. Check that bucket-level and object-level permissions use the correct ARN format
  3. Confirm the IAM Role trust policy allows the Aembit OIDC provider

Signature mismatch errors -

If you receive signature mismatch errors:

  1. Verify you configured TLS Decrypt
  2. Check the AWS_CA_BUNDLE environment variable points to the Aembit Root CA certificate
  3. If using request compression, turn it off with AWS_DISABLE_REQUEST_COMPRESSION=true
Remove the AWS Server Workload

If you no longer need this integration, remove components in this order:

  1. Deactivate associated Access Policies -

    • Go to Access Policies
    • Find policies that use this Server Workload or Credential Provider
    • Deactivate the policy (toggle off)
  2. Delete the Server Workload in Aembit -

    • Go to Server Workloads
    • Select your AWS workload and click Delete
  3. Delete the Credential Provider in Aembit -

    • Go to Credential Providers
    • Select the associated AWS STS Credential Provider and click Delete
  4. Delete the AWS IAM Role Integration in Aembit -

    • Go to Integrations
    • Select the AWS IAM Role Integration and click Delete
  5. Delete AWS resources (optional) -

    • AWS Console: IAM -> Identity providers -> Select the Aembit OIDC provider -> Delete
    • AWS Console: IAM -> Roles -> Select the IAM Role -> Delete

Deleting the Server Workload immediately stops credential provisioning. Ensure no applications are actively using this workload before deletion.