[英]An error occurred (InvalidClientTokenId) when calling the AssumeRole operation: The security token included in the request is invalid
[英]An error occurred (UnrecognizedClientException) when calling the GetSecretValue operation: The security token included in the request is invalid
请检查下面是它有问题的截图。 Aws 凭据配置正确,当我们在 boto3 中单独使用时它工作正常,但在 SAM lambda function 中触发它收到此错误。 在此处输入图像描述
尝试了所有解决方案,例如检查“aws configure”和取消设置AWS_SECURITY_TOKEN
以及其他来源中提到的其他解决方案也尝试过但没有用。
在代码中我正在尝试做
session = boto3.session.Session()
secretsmanager = session.client('secretsmanager')
try:
get_secret_value_response = secretsmanager.get_secret_value(
SecretId=secret_name
)
secret = json.loads(get_secret_value_response['SecretString'])
except ClientError as e:
print(e)
# print(sys.exc_info(),traceback.print_exc(file=sys.stdout))
except Exception as e:
print(sys.exc_info(),traceback.print_exc(file=sys.stdout))
print(e)
通过删除此文件~/.aws/credentials
来删除 AWS 凭证。 然后重新运行aws configure
并传递有效的安全凭证。 这应该可以解决您遇到的问题。
如果您配置了多个配置文件,然后编辑~/.aws/credentials
并删除与此代码一起使用的配置文件。例如,如果您在配置凭据时使用了 user1,那么您的文件将包含类似于以下内容:
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
要解决此问题,只需从~/.aws/credentials
中删除 [user1] 部分,然后重新运行aws configure
。
也许是一个有点不同的问题,但我在本地得到了完全相同的错误,因为我在获取 session 之前设置了默认配置文件。
所以,如果我运行脚本:
boto3.setup_default_session(profile_name='myprofile')
session = boto3.session.Session()
secretsmanager = session.client('secretsmanager')
我得到了与问题相同的错误,可能是因为它们一起使用时效果不佳。
要解决,您可以删除 session 部分:
boto3.setup_default_session(profile_name='myprofile')
secretsmanager = boto3.client('secretsmanager')
就我而言,它不起作用,因为我缺少 session 令牌。 我在 boto3 Session 中添加了令牌,它起作用了:
session = boto3.session.Session(
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
aws_session_token=AWS_SESSION_TOKEN,
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.