boto3 AWS客户端忽略参数?

时间:2017-03-14 10:44:31

标签: amazon-web-services credentials iot boto3

我的库需要连接到任意AWS-IoT帐户,因此我在实例化AWS客户端时传递了所需的凭据:

HWND parent = ::GetWindow(m_hWnd, GW_OWNER);

根据boto3 docs (摘录如下),以这种方式传递的凭据应覆盖所有其他凭据。但是,此调用会从Boto3生成以下日志消息:

client = boto3.client('iot',
                      aws_access_key_id=ACCESS_KEY,
                      aws_secret_access_key=SECRET_KEY,...)

真的不希望boto3获取用户可能在他们的系统上配置的任何凭据 - 我希望它只使用我传递给boto3.client的那些凭据()。任何想法如何确保这一点?

boto3 docs摘录:

 "Found credentials in shared credentials file: ~/.aws/credentials"

1 个答案:

答案 0 :(得分:1)

从我的测试开始,aws_access_key_id& aws_secret_access_key的{​​{1}}参数,即使它们不正确也不接受来自文件的任何其他凭据。 发送API调用时,它会返回boto3.client(..)个异常。

但是,如果未传递上述参数,即NoCredentialsError AND ,系统中存在默认配置文件,我可以看到“在共享凭据文件中找到凭据:〜/ .aws / credentials”

意思是,只要您明确提供凭据参数,就应该保护您免受在错误帐户上执行的调用。