atmos icon indicating copy to clipboard operation
atmos copied to clipboard

Support for AWS `credential_process` as an identity

Open tlgDJPorv opened this issue 2 months ago • 4 comments

Describe the Feature

Lovin' the look of the atmos auth shell feature.
But at our organization, we source our temporary AWS credentials from an external process.
We make heavy use of the credential_process property in AWS' shared config file.

Expected Behavior

I expected that en external process could be specified as a source of temporary AWS credentials.

Use Case

Mostly what was mentioned here: https://atmos.tools/blog/introducing-atmos-auth-shell/#the-problem

Describe Ideal Solution

Add an aws/process kind for identity configuration in auth.identities.
Something like:

auth:
  identities:
    staging:
      kind: aws/process
      credentials:
        credential_process: '{{getenv "HOME"}}/.local/bin/external-process staging'
        region: eu-west-1

Alternatives Considered

No response

Additional Context

No response

tlgDJPorv avatar Oct 31 '25 13:10 tlgDJPorv

Oh interesting, I was thinking you wanted to use atmos auth it self as a credential helper in the AWS configs. This is slightly different though. Having atmos call the external process to get credentials for a provider. We can consider that. What does your external-process command return? Are you using for example the Okta CLI?

osterman avatar Oct 31 '25 14:10 osterman

I do want to use atmos auth as the credential / identity helper. But I guess it would be more like the AWS User (Break Glass) identity as the credential_process "method" is part of the AWS Tools and SDK standard credential providers the same way that access keys or role assuming are.
E.g. you can have a ~/.aws/config with an entry like:

[profile staging] 
credential_process = /home/myuser/.local/bin/external-process staging 
region = eu-west-1

The external process returns the credentials with the syntax:

{
    "Version": 1,
    "AccessKeyId": "an AWS access key",
    "SecretAccessKey": "your AWS secret access key",
    "SessionToken": "the AWS session token for temporary credentials", 
    "Expiration": "RFC3339 timestamp for when the credentials expire"
}

tlgDJPorv avatar Nov 03 '25 07:11 tlgDJPorv

@tlgDJPorv can you review this PRD and see if that meets your requirements:

  • #1795

osterman avatar Nov 15 '25 19:11 osterman

Awesome stuff. #1795 would cover my needs nicely.

tlgDJPorv avatar Nov 17 '25 07:11 tlgDJPorv