Azure to AWS S3 integration is simple when you control both sides. But when your Azure workloads only need read-only access to an AWS S3 bucket, things get trickier. You must secure it, automate it, and keep it audit-friendly. You want no write access, no policy drift, and no room for privilege creep.
The core is assigning an AWS IAM Role with a trust relationship pointing to your Azure workload’s identity provider. In AWS, create an IAM Role with the AmazonS3ReadOnlyAccess policy or a custom, resource-scoped read policy tied to the bucket ARN. Then configure the role’s trust to allow Azure’s OpenID Connect (OIDC) endpoint or another supported federation method to assume it. This removes the need for static keys and supports secure short-lived credentials.
In Azure, register the AWS OIDC endpoint as an enterprise application or federated identity credentials in your target Azure resource (for example, an Azure Function or App Service). The identity will request temporary credentials by calling AWS Security Token Service (STS) with the role ARN. This avoids long-term secrets stored in configuration and aligns with zero-trust best practices.