Requirements
To use data export, you need:- Data export enabled on your account. Contact the support team to request it.
- Working knowledge of a few AWS services — S3, IAM, and the AWS CLI. If you’re not familiar with them, make sure your technical team is on hand to help.
- An AWS account.
No AWS account? You can still receive your data, through a different setup. Talk to your Cloud Humans support team to explore the alternatives.
What you receive
You will receive read-only access, meaning you cannot write, overwrite, or delete anything.
Granting access
To get access to your bucket: we don’t issue credentials to you. There’s no Cloud Humans access key for you to store, rotate, or explain in an audit. Instead, you tell us the ARN of an IAM principal in your own account, and we authorize that ARN on the bucket. An ARN is an Amazon Resource Name, the unique identifier AWS gives every resource — a role, a user, a bucket. See Amazon Resource Names (ARNs) in the AWS documentation for the full format. In practice: the credential is yours, the control is yours, and revoking access on your side is one line in your own policy. Nothing on our end needs to be undone.Send us your ARN
We accept any of these formats::root and not a user with a static key. A role lets you change who assumes it without talking to us and without generating a long-lived credential.
What we apply on our side
As soon as we have the ARN, this is the exact policy we attach to the bucket:s3:RestoreObject is there because files older than 180 days are archived; see file age and storage class.What you need to configure on your side
Attach this to the role you gave us — or, if you use IAM Identity Center, to the permission set that provisions that role:Don’t know your bucket name? Ask the Cloud Humans support team — the bucket is in our account, so the name comes from us.
Local profile
The policies above say which ARN may read the bucket. The local profile is how your machine becomes that ARN when you run a command — without it, the AWS CLI acts as a different identity and you getAccessDenied even with both policies correct.
If your ingestion runs on AWS compute, you can skip this section. Send us the ARN of the role that compute already runs as — an EC2 instance profile, an ECS task role, a Lambda or Glue execution role — and attach the identity-based policy to that role. The SDK picks the credentials up on its own, with nothing for you to store or rotate: boto3.Session(), no profile_name.
Otherwise, which of the three setups below fits depends on who runs the command:
- A person at a terminal — IAM Identity Center. Nothing long-lived stays on the machine.
- A scheduled ingestion job — a role assumed from a base profile. IAM Identity Center cannot serve this:
aws sso loginneeds a browser, and the session expires within hours. - Static keys — only when neither of the above is available to you.
- IAM Identity Center (SSO)
- Assume a role from a base profile
- IAM user with static keys
This setup uses two blocks: the profile’s Before your first command, authenticate the session:
sso_session is only a reference, and without the matching [sso-session] block, the CLI responds with The specified sso-session does not exist.~/.aws/config
Smoke test
A smoke test is a minimal command that confirms the access you just configured works. Before you pull 40 GB, spend three seconds confirming the door opens:s3:ListBucket. If it works and the download fails later, the problem is s3:GetObject in your policy — not the network, not the credential. That already rules out half the possible causes.