> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/help-center/help-topics/billing-account/data-payloads-and-destinations/s3-destination-iam-connection-test.md).

# Why does my S3 destination show AccessDenied?

Grant the IAM role **`s3:GetObject`, `s3:PutObject`, and `s3:DeleteObject`** on the bucket for your [S3 destination](https://docs.tryterra.co/health-and-fitness-api/integration-setup/setting-up-data-destinations/cloud-storage-s3-gcp).

With only `s3:PutObject`, uploads succeed but the dashboard connection test reports `AccessDenied`, so setup looks like it's failing even though data is still landing. Adding `s3:GetObject` and `s3:DeleteObject` makes the connection test pass.
