diff --git a/config/shared_config.go b/config/shared_config.go index 5b251f54f576..ebf22dd883e3 100644 --- a/config/shared_config.go +++ b/config/shared_config.go @@ -1463,6 +1463,7 @@ func (c *SharedConfig) hasCredentials() bool { case len(c.CredentialSource) != 0: case len(c.CredentialProcess) != 0: case len(c.WebIdentityTokenFile) != 0: + case len(c.LoginSession) != 0: case c.hasSSOConfiguration(): case c.Credentials.HasKeys(): default: diff --git a/config/shared_config_test.go b/config/shared_config_test.go index 90a315bec25a..350b67ab68a4 100644 --- a/config/shared_config_test.go +++ b/config/shared_config_test.go @@ -134,6 +134,19 @@ func TestNewSharedConfig(t *testing.T) { RoleARN: "assume_role_wo_creds_role_arn", }, }, + "Assume role with login session source profile": { + ConfigFilenames: []string{testConfigFilename}, + Profile: "assume_role_w_login_session", + Expected: SharedConfig{ + Profile: "assume_role_w_login_session", + RoleARN: "assume_role_w_login_session_role_arn", + SourceProfileName: "login_session_creds", + Source: &SharedConfig{ + Profile: "login_session_creds", + LoginSession: "login_session_creds_session", + }, + }, + }, "Invalid INI file": { ConfigFilenames: []string{filepath.Join("testdata", "shared_config_invalid_ini")}, Profile: "profile_name", diff --git a/config/testdata/shared_config b/config/testdata/shared_config index cde58e5236bb..b2809c51158e 100644 --- a/config/testdata/shared_config +++ b/config/testdata/shared_config @@ -90,6 +90,13 @@ aws_secret_access_key = assume_role_w_creds_secret role_arn = assume_role_wo_creds_role_arn source_profile = assume_role_wo_creds +[profile login_session_creds] +login_session = login_session_creds_session + +[profile assume_role_w_login_session] +role_arn = assume_role_w_login_session_role_arn +source_profile = login_session_creds + [profile valid_arn_region] s3_use_arn_region=true