You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scar version = 4.3.0
Python version = 3.9.6
Boto3 version = 1.26.53
System MAC OS Ventura 13.1, CHIP = APPLE M1 PRO
The AWS account I need to implement SCAR with does NOT allow access with just an IAM user with a key and secret. Because of this I use a login method that creates temporary credentials (creates a temporary token in addition to a temporary key and secret). This adds an entry (profile) in the ~/.aws/credentials file as below
When running ‘scar ls’ is run I get the error below
% scar ls
There was an exception in get_user_info
Must specify userName when calling with non-User credentials
Here are the contents of ~/.scar/scar.log after the command is run
2023-02-07 14:32:30,055 - root - INFO - ----------------------------------------------------
2023-02-07 14:32:30,055 - root - INFO - SCAR execution started
2023-02-07 14:32:33,052 - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials
2023-02-07 14:32:37,112 - root - ERROR - An error occurred (ValidationError) when calling the GetUser operation: Must specify userName when calling with non-User credentials
Traceback (most recent call last):
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/scar/exceptions.py", line 32, in wrapper
return func(*args, **kwargs)
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/scar/providers/aws/clients/iam.py", line 47, in get_user_info
raise cerr
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/scar/providers/aws/clients/iam.py", line 38, in get_user_info
return self.client.get_user()
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/botocore/client.py", line 530, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/botocore/client.py", line 960, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationError) when calling the GetUser operation: Must specify userName when calling with non-User credentials
I also get this error, and the same log contents when I run ‘scar init -f basic-cow.yaml’ after I have added the basic-com.yaml file from the documentation (Basic Usage — scar documentation) onto my laptop. (scar –help or scar –version DO NOT throw this error).
Additionally, I have tried the below AWS CLI commands and found that the ‘aws iam get-user' returns a similar error:
aws --profile learn iam get-user
An error occurred (ValidationError) when calling the GetUser operation: Must specify userName when calling with non-User credentials
This seems to suggest that when using AWS temporary credentials, a different API call needs to be used to obtain the needed user information. See this post: sergiocorreia/quipucamayoc#3
NOTE: I have also successfully tested ‘scar ls’ using the same laptop and same software implementation (scar, python, boto3) but using an IAM User with only key and secret and accessing a DIFFERENT ACCOUNT (an account that allows access with just a key and secret, but also an account I cannot use for the project I’m working on). In this case ‘scar ls’ lists my lambda functions as it should.
Any help solving this problem would be appreciated.
The text was updated successfully, but these errors were encountered:
Scar version = 4.3.0
Python version = 3.9.6
Boto3 version = 1.26.53
System MAC OS Ventura 13.1, CHIP = APPLE M1 PRO
The AWS account I need to implement SCAR with does NOT allow access with just an IAM user with a key and secret. Because of this I use a login method that creates temporary credentials (creates a temporary token in addition to a temporary key and secret). This adds an entry (profile) in the ~/.aws/credentials file as below
% cat credentials
[learn]
aws_access_key_id = ASJUST-AN-EXAMPLEXZS
aws_secret_access_key = V7L7 JUST-AN-EXAMPLENrJUST-AN-EXAMPLE@!NY
aws_session_token = FwoGA_N_EXAMPLE_OF_A_VERT_LONG_SESSION_TOKENhoiYstV3VwNTAhxU=
note = Credential for 'exampleaccountname examplerole'; expires at '2023-02-08 03:56:18+00:00'
When running ‘scar ls’ is run I get the error below
% scar ls
There was an exception in get_user_info
Must specify userName when calling with non-User credentials
Here are the contents of ~/.scar/scar.log after the command is run
2023-02-07 14:32:30,055 - root - INFO - ----------------------------------------------------
2023-02-07 14:32:30,055 - root - INFO - SCAR execution started
2023-02-07 14:32:33,052 - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials
2023-02-07 14:32:37,112 - root - ERROR - An error occurred (ValidationError) when calling the GetUser operation: Must specify userName when calling with non-User credentials
Traceback (most recent call last):
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/scar/exceptions.py", line 32, in wrapper
return func(*args, **kwargs)
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/scar/providers/aws/clients/iam.py", line 47, in get_user_info
raise cerr
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/scar/providers/aws/clients/iam.py", line 38, in get_user_info
return self.client.get_user()
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/botocore/client.py", line 530, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/L045503/environments/SCAR/lib/python3.9/site-packages/botocore/client.py", line 960, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationError) when calling the GetUser operation: Must specify userName when calling with non-User credentials
I also get this error, and the same log contents when I run ‘scar init -f basic-cow.yaml’ after I have added the basic-com.yaml file from the documentation (Basic Usage — scar documentation) onto my laptop. (scar –help or scar –version DO NOT throw this error).
Additionally, I have tried the below AWS CLI commands and found that the ‘aws iam get-user' returns a similar error:
aws --profile learn iam get-user
An error occurred (ValidationError) when calling the GetUser operation: Must specify userName when calling with non-User credentials
However using aws sts get-caller-identity as suggested here (https://stackoverflow.com/questions/33332050/getting-the-current-user-account-id-in-boto3/37723278#37723278) does not return an error.
% aws --profile learn sts get-caller-identity
{
"UserId": "AROAxxxxxxxxxxxD3USI:XXXXXXX",
"Account": "XXXXXXXXXXXX",
"Arn": "arn:aws:sts::7 XXXXXXXXXXXX:assumed-role/user_role_in_aws/XXXXXX"
}
This seems to suggest that when using AWS temporary credentials, a different API call needs to be used to obtain the needed user information. See this post: sergiocorreia/quipucamayoc#3
NOTE: I have also successfully tested ‘scar ls’ using the same laptop and same software implementation (scar, python, boto3) but using an IAM User with only key and secret and accessing a DIFFERENT ACCOUNT (an account that allows access with just a key and secret, but also an account I cannot use for the project I’m working on). In this case ‘scar ls’ lists my lambda functions as it should.
Any help solving this problem would be appreciated.
The text was updated successfully, but these errors were encountered: