UiPath Documentation
automation-suite
2.2510
true

Automation Suite on EKS/AKS installation guide

Last updated May 15, 2026

Configuring AWS Secrets Manager as a secretstore

You can configure AWS Secrets Manager as a secretstore using either of the following auth methods:

  • Node IAM Role - uses the IAM role attached to the EC2 instance where the ESO pod runs
  • Access Keys (Static Credentials)

AWS Secrets Manager stores secrets as key-value pairs or plaintext strings.

By default, all sensitive data is defined in input.json. You can separate this data into two parts:

  • input.json - contains only configuration data.
  • AWS Secrets Manager - stores credentials securely.
Note:

You cannot store certificate paths or certificate-related credentials as part of the secretstore.

Using Node IAM Role

The pod inherits permissions from the node's instance profile via the default AWS credential chain. No Kubernetes secret or additional configuration is needed.

Prerequisites

  • IAM role attached to the EKS/EC2 node with secretsmanager:GetSecretValue and secretsmanager:ListSecrets permissions
  • IAM role assigned to the instance profile of the nodes running the ESO pod

Configuring input.json

To configure AWS Secrets Manager as a secretstore using Node IAM Role, add the following section to input.json:

{
  "secret_store": {
    "enabled": true,
    "provider_configs": [
      {
        "name": "aws-prod",
        "type": "aws",
        "aws_kv": {
          "region": "us-east-1"
        }
      }
    ]
  }
}
{
  "secret_store": {
    "enabled": true,
    "provider_configs": [
      {
        "name": "aws-prod",
        "type": "aws",
        "aws_kv": {
          "region": "us-east-1"
        }
      }
    ]
  }
}

Configuring the required IAM policy

  1. Create the IAM policy using the following definition:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"],
          "Resource": "arn:aws:secretsmanager:<region>:<account-id>:secret:*"
        },
        {
          "Effect": "Allow",
          "Action": ["secretsmanager:ListSecrets"],
          "Resource": "*"
        }
      ]
    }
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"],
          "Resource": "arn:aws:secretsmanager:<region>:<account-id>:secret:*"
        },
        {
          "Effect": "Allow",
          "Action": ["secretsmanager:ListSecrets"],
          "Resource": "*"
        }
      ]
    }
    
  2. Run the following command to create the policy:

    aws iam create-policy \
        --policy-name ESOSecretsManagerPolicy \
        --policy-document file://secrets-manager-policy.json
    aws iam create-policy \
        --policy-name ESOSecretsManagerPolicy \
        --policy-document file://secrets-manager-policy.json
    
  3. Attach the policy to the IAM role associated with the node instance profile:

    aws iam attach-role-policy \
        --role-name <your-role-attached-to-node> \
        --policy-arn arn:aws:iam::<your-account-id>:policy/ESOSecretsManagerPolicy
    aws iam attach-role-policy \
        --role-name <your-role-attached-to-node> \
        --policy-arn arn:aws:iam::<your-account-id>:policy/ESOSecretsManagerPolicy
    

Using Access Keys

Access Keys uses explicit AWS access key ID and secret access key stored in a Kubernetes secret. This method is suitable for non-EKS environments or when node IAM roles are not available.

Prerequisites

  • AWS IAM user with secretsmanager:GetSecretValue permissions
  • Kubernetes secret pre-created with access key credentials

Configuring input.json

To configure AWS Secrets Manager as a secretstore using Access Keys, take the following steps:

  1. Create the Kubernetes secret that stores the AWS credentials:

    kubectl create secret generic aws-credentials \
      --namespace uipath \
      --from-literal=access-key-id=<your-access-key-id> \
      --from-literal=secret-access-key=<your-secret-access-key>
    kubectl create secret generic aws-credentials \
      --namespace uipath \
      --from-literal=access-key-id=<your-access-key-id> \
      --from-literal=secret-access-key=<your-secret-access-key>
    

    The secret must contain the following keys:

    • access-key-id - AWS Access Key ID
    • secret-access-key - AWS Secret Access Key
  2. Add the following section to input.json:

    {
      "secret_store": {
        "enabled": true,
        "provider_configs": [
          {
            "name": "aws-prod",
            "type": "aws",
            "credentials_secret_name": "aws-credentials",
            "aws_kv": {
              "region": "us-east-1"
            }
          }
        ]
      }
    }
    {
      "secret_store": {
        "enabled": true,
        "provider_configs": [
          {
            "name": "aws-prod",
            "type": "aws",
            "credentials_secret_name": "aws-credentials",
            "aws_kv": {
              "region": "us-east-1"
            }
          }
        ]
      }
    }
    

Configuration fields

The following table describes the available configuration fields.

FieldRequiredDescription
aws_kv.regionYesAWS region where secrets are stored (for example, us-east-1)
credentials_secret_nameNoKubernetes secret containing access key credentials. If not set, the node IAM role is used.

Referencing secrets in input.json

To reference a credential stored in AWS Secrets Manager, use one of the following formats in input.json:

  • Plain string: vault/aws-prod/secret-name
  • JSON property extraction: vault/aws-prod/secret-name?key=password

Using AWS GovCloud

If you are using AWS GovCloud, set the region field to an AWS GovCloud region (for example, us-gov-west-1 or us-gov-east-1). No other configuration changes are required - the region value determines the AWS partition and endpoints used.

{
  "secret_store": {
    "enabled": true,
    "provider_configs": [
      {
        "name": "aws-gov",
        "type": "aws",
        "credentials_secret_name": "aws-credentials",
        "aws_kv": {
          "region": "us-gov-west-1"
        }
      }
    ]
  }
}
{
  "secret_store": {
    "enabled": true,
    "provider_configs": [
      {
        "name": "aws-gov",
        "type": "aws",
        "credentials_secret_name": "aws-credentials",
        "aws_kv": {
          "region": "us-gov-west-1"
        }
      }
    ]
  }
}

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated