Skip to content

Support AWS SSO profiles #385

@iainelder

Description

@iainelder

I set up my environment variables and check that the session is valid using the AWS CLI.

$ export AWS_PROFILE=sandbox-logging
$ export AWS_DEFAULT_REGION=eu-west-1
$ aws sts get-caller-identity
{
    "UserId": "AROAXXXXXXXXXXXXXXXXX:iain",
    "Account": "111111111111",
    "Arn": "arn:aws:sts::111111111111:assumed-role/AWSReservedSSO_AdministratorAccess_aaaaaaaaaaaaaaaa/iain"
}

s5cmd seems to ignore my environment variables and instead tries to query the EC2 metadata service.

$ s5cmd --log debug ls
DEBUG retryable error: RequestError: send request failed
caused by: Put "http://169.254.169.254/latest/api/token": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
DEBUG retryable error: RequestError: send request failed
caused by: Put "http://169.254.169.254/latest/api/token": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
DEBUG retryable error: RequestError: send request failed
caused by: Put "http://169.254.169.254/latest/api/token": dial tcp 169.254.169.254:80: connect: no route to host

I was expecting output like this:

$ aws s3 ls
2021-11-23 15:29:46 aws-sam-cli-managed-default-samclisourcebucket-xxxxxxxxxxxx
2021-11-16 17:47:47 cf-templates-xxxxxxxxxxxxx-eu-west-1
2021-11-30 20:11:58 org-trail-xxxxxxxx
2021-12-01 12:36:42 org-trail-yyyyyyyy
...

I'm using an SSO profile. Does that matter?

[profile sandbox-logging]
sso_start_url = https://d-1111111111.awsapps.com/start
sso_region = eu-west-1
sso_account_id = 111111111111
sso_role_name = AdministratorAccess
region = eu-west-1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions