AWS CLI-style profiles close it before anyone steps through. Short-lived, scoped, human-readable. No hardcoded secrets. No static tokens rotting in repos. Just clean, isolated profiles that map directly to what a pipeline needs—nothing more, nothing less.
Here’s why it works. Each profile defines its own keys, region, and session. Pipelines use them briefly, then drop them. They don’t linger in environment variables or config files once the job ends. This slashes the blast radius of any breach. If someone sniffs credentials, they expire before they are useful.
The syntax is familiar:
[profile ci-build]
role_arn = arn:aws:iam::123456789012:role/build-role
source_profile = ci-bootstrap
region = us-east-1
Switching profiles is instant. Running builds with --profile keeps commands scoped. Auditing is straightforward—CloudTrail logs show exactly which profile acted. No vague overlap, no messy credential sharing.