AWS
Islo can give a sandbox access to your AWS account without ever putting long-lived credentials inside the sandbox. You register an IAM role you own, and the sandbox assumes it via STS.
Any tool that uses the AWS SDK default credential chain — AWS CLI, boto3, the Go/JS SDKs, mount-s3, Terraform — works out of the box. No env vars, no ~/.aws/credentials, no per-tool configuration.
How it works
- You create an IAM role in your AWS account with a trust policy that allows Islo to assume it.
- You register that role with Islo as a cloud role, which returns an External ID you paste into the trust policy.
- You attach the cloud role to a gateway profile.
- Any sandbox attached to that gateway can call AWS APIs as that role, with no credentials in the sandbox.
Prerequisites
- An Islo account and API key — see Authentication.
- Permission to create IAM roles in the target AWS account.
1. Create the IAM role in AWS
Create a role in your AWS account with whatever permissions the sandbox should have. The example below scopes to a single S3 bucket; substitute any other AWS service.
Permissions policy (example — read/write a bucket):
Trust policy — leave <ISLO_PRINCIPAL_ARN> and <EXTERNAL_ID> as placeholders for now; you’ll fill them in after step 2.
The Islo Principal ARN is shown in the dashboard under Integrations → AWS.
2. Register the role with Islo
Copy role.external_id and paste it into the trust policy you wrote in step 1, then save the IAM role.
You can also register cloud roles from the dashboard at Integrations → AWS → Add role. The dashboard generates the External ID and shows the trust policy snippet you need to paste into AWS.
3. Attach the role to a gateway profile
You can attach the same cloud role to multiple gateway profiles, or scope different gateways to different roles for least-privilege access.
4. Attach the gateway to a sandbox
That’s it. Inside the sandbox, any AWS SDK will discover credentials automatically.
Using AWS from inside the sandbox
Any AWS CLI or SDK call just works:
Example: mount an S3 bucket with mount-s3
Mountpoint for Amazon S3 (mount-s3) is AWS’s official FUSE client. It uses the default credential chain, so once the gateway is attached, it works without any extra configuration.
Install it via a setup script when the sandbox is created:
Then mount the bucket once the sandbox is up:
/mnt/s3 is now the bucket. The --uid/--gid flags map file ownership to the islo user, and --allow-other lets islo read/write through the root-owned mount.
Troubleshooting
No signing credentials available / no creds discovered — the gateway isn’t attached to the sandbox, or you’re calling AWS too early (e.g. from a setup script, before the sandbox is fully up). Make the call after sandbox creation via exec_in_sandbox.
AccessDenied from S3 / DynamoDB / etc. — the IAM role’s permissions policy doesn’t grant the action you’re attempting. Check CloudTrail in the target AWS account for the exact denied action.
AccessDenied from STS during gateway provisioning — Islo couldn’t assume your role. Verify the trust policy: the Principal must match the Islo principal shown in the dashboard, and the ExternalId condition must match the value create_cloud_role returned.