Special cases
Amazon S3 special cases - multi-million-object buckets, multiple AWS accounts, Atlan-hosted bucket flows, External ID limitations, and the region field.
Multi-million-object buckets, multiple AWS accounts, the flows where traffic reverses onto Atlan-hosted buckets, External ID limitations, and the hidden region field.
Very large buckets - use inventory ingestion
Direct crawling lists objects live and is recommended for fewer than 1 million objects; above that, use inventory-based ingestion (see Crawl S3). Multi-million-object direct crawls can run for days and die on heartbeat timeouts - inventory mode reads nightly S3-generated reports instead of listing objects one by one.
- One dedicated destination bucket (optionally with a single shared prefix) collects reports from all source buckets - the crawler supports exactly one (see Inventory report structure).
- Format CSV or Apache Parquet only; select all metadata fields; current version only; encryption disabled (see Set up inventory reports for S3).
- Your role additionally needs
s3:ListBucket,s3:GetObject,s3:SelectObjectContenton the destination bucket - and the destination bucket's policy must not explicitly deny the role. - First report takes up to 48 hours to appear after enabling inventory in AWS - schedule the first crawl after that.
Buckets across multiple AWS accounts
An IAM role lives in one account, so the clean pattern is one role per bucket-owning account, one Atlan connection per role. For each account: run the full role guide (each role needs its own trust policy and its own Atlan-side allowlist entry - put all of them in one support ticket, clearly labeled per account). Alternative for a few stray buckets: keep one role and grant it cross-account access via each foreign bucket's bucket policy - but remember the KMS key in the foreign account needs a grant too.
Atlan-hosted buckets - when direction reverses
Some features work the other way around: you read or write a bucket that Atlan hosts. This applies to query mining through S3 (uploading query-history files for warehouse miners), some asset export flows, and downloading lineage outputs.
- The bucket name and the access grant live on Atlan's side - both come from support. Ask in one ticket: "Please share the mining/export bucket name for my tenant and grant role
arn:aws:iam::111122223333:role/example-uploader-roleread+write on it." - Send a role ARN, not an instance-profile ARN - instance profiles wrap a role, and the wrapper won't work in the bucket policy.
- If writes fail with
PutObject ... Access Deniedafter the grant, the grant is likely read-only - ask support to confirms3:PutObjectis included.
External ID limitations across workflows
The S3 crawler form supports an External ID. But if you reuse the same role for package workflows, know these gaps:
- Asset Import cannot send an External ID today - a trust policy requiring one makes it fail at AssumeRole.
- Platform migrations have regressed role-ARN/External-ID handling on existing connections before. If a long-stable connection suddenly fails at AssumeRole after a platform update, ask support to verify the connection still carries your role ARN and External ID before touching AWS.
- Pragmatic pattern: use your External-ID-protected role for the crawler, and a separate role without the condition (scoped to the minimum prefix) for package workflows that need one.
Region field - including where it's invisible
Every S3 bucket is addressed in its home region; a mismatch fails with PermanentRedirect. Two flavors:
- S3 crawler: the region dropdown simply must match your buckets' region.
- Offline/S3 extraction for other connectors (PostgreSQL, Microsoft SQL Server, … reading extract files from your bucket): if the S3-region field is hidden or mislabeled in the UI, it silently defaults to
us-east-1and any bucket elsewhere fails withPermanentRedirect. If you hit this and see no region field to fix, it's not you - raise a ticket describing the missing field.
Other environments
- AWS GovCloud / China partitions: ARNs use different prefixes (
arn:aws-us-gov:…) and cross-partition role assumption doesn't exist - ask your account team about supportability before planning. - S3-compatible storage (MinIO, Ceph, on-prem gateways): not the same connector; check the docs for your product or ask support.