Skip to main content

AWS cloud connection

AWS connections use cross-account IAM role assumption. Ductape's integrations service calls sts:AssumeRole on your customer role using credentials configured on the server.

Setup checklist​

  1. Create IAM user credentials on the Ductape integrations server (not in client SDK scripts).
  2. Grant that user sts:AssumeRole on your customer role ARN.
  3. Create IAM role DuctapeAccess (name must match Workbench docs) with trust policy allowing Ductape's AWS account + your external ID (shown in Workbench after create).
  4. Attach managed policies for features you use: S3, SQS, RDS, Neptune, OpenSearch.
  5. Workbench → Cloud → Add AWS connection with tag e.g. prod_aws.

SDK lifecycle​

await ductape.cloud.connections.create({
provider: 'aws',
name: 'prod_aws',
scopes: ['storage', 'database', 'broker'],
});

await ductape.cloud.connections.complete('prod_aws', {
role_arn: 'arn:aws:iam::480358138685:role/DuctapeAccess',
});

await ductape.cloud.connections.validate('prod_aws');

Go

_, _ = client.Cloud.Connections.Create(ctx, map[string]any{
"provider": "aws", "name": "prod_aws", "scopes": []string{"storage", "database"},
})
_, _ = client.Cloud.Connections.Complete(ctx, "prod_aws", map[string]any{
"role_arn": "arn:aws:iam::480358138685:role/DuctapeAccess",
})
_, _ = client.Cloud.Connections.Validate(ctx, "prod_aws")

Networking (RDS / Neptune)​

RDS and Neptune require VPC security group access. See AWS networking.

Linked services​

serviceComponent type
s3Storage
sqsMessage brokers
rdsDatabases (PostgreSQL)
neptuneGraphs
opensearchVectors