Skip to content

Conversation

@lovesegfault
Copy link
Member

Motivation

  • libstore: add AWS SSO support for S3 authentication
  • refactor(libstore/aws-creds): improve error handling and logging
  • chore(libstore/aws-creds): remove unused includes
  • test(s3-binary-cache-store): add profile support for setup_for_s3
  • test(s3-binary-cache-store): clear credential cache between tests
  • test(s3-binary-cache-store): test profiles and provider chain

Context

Fixes: #14476


Add 👍 to pull requests you find important.

The Nix maintainer team uses a GitHub project board to schedule and track reviews.

Mic92 and others added 7 commits November 25, 2025 17:34
This enables seamless AWS SSO authentication for S3 binary caches
without requiring users to manually export credentials.

This adds SSO support by calling aws_credentials_provider_new_sso() from
the C library directly. It builds a custom credential chain: Env → SSO →
Profile → IMDS

The SSO provider requires a TLS context for HTTPS connections to SSO
endpoints, which is created once and shared across all providers.
Add validation for TLS context and client bootstrap initialization,
with appropriate error messages when these fail. The TLS context failure
is now a warning that gracefully disables SSO, while bootstrap failure
throws since it's required for all providers.
The default (empty) profile case was using CreateCredentialsProviderChainDefault
which didn't properly support role_arn/source_profile based role assumption via
STS because TLS context wasn't being passed to the Profile provider.

This change unifies the credential chain for all profiles (default and named),
ensuring:
- Consistent behavior between default and named profiles
- Proper TLS context is passed for STS operations
- SSO support works for both cases
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Re-add support for STS credential provider for S3

3 participants