Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用IAM:PassRole凭据调用boto.ec2.connect\u to\u region()?_Python_Amazon Web Services_Boto_Aws Sdk_Amazon Iam - Fatal编程技术网

Python 如何使用IAM:PassRole凭据调用boto.ec2.connect\u to\u region()?

Python 如何使用IAM:PassRole凭据调用boto.ec2.connect\u to\u region()?,python,amazon-web-services,boto,aws-sdk,amazon-iam,Python,Amazon Web Services,Boto,Aws Sdk,Amazon Iam,我想在EC2实例上运行boto(2.38.0)。我希望在不指定凭据的情况下进行连接——boto可用的权限是通过IAM:PassRole定义定义的 我已经在实例上使用了aws CLI命令(例如,aws s3 cp)。我的问题是调用boto.ec2.connect\u to\u region('eu-west-1')失败,原因如下: 回溯(最近一次呼叫最后一次): 文件“/usr/local/bin/get attached volume”,第5行,在 c=boto.ec2.将_连接到_地区(“eu

我想在EC2实例上运行boto(2.38.0)。我希望在不指定凭据的情况下进行连接——boto可用的权限是通过IAM:PassRole定义定义的

我已经在实例上使用了aws CLI命令(例如,
aws s3 cp
)。我的问题是调用
boto.ec2.connect\u to\u region('eu-west-1')
失败,原因如下:

回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/get attached volume”,第5行,在
c=boto.ec2.将_连接到_地区(“eu-west-1”)
文件“/usr/local/lib/python2.7/dist-packages/boto-2.38.0-py2.7.egg/boto/ec2/_-init___;.py”,第66行,位于connect_-to_u区域
返回区域连接(**kw_参数)
文件“/usr/local/lib/python2.7/dist packages/boto-2.38.0-py2.7.egg/boto/regioninfo.py”,第187行,在connect中
返回自连接(区域=自,**kw\u参数)
文件“/usr/local/lib/python2.7/dist packages/boto-2.38.0-py2.7.egg/boto/ec2/connection.py”,第103行,在__
配置文件\名称=配置文件\名称)
文件“/usr/local/lib/python2.7/dist-packages/boto-2.38.0-py2.7.egg/boto/connection.py”,第1100行,在__
提供者=提供者)
文件“/usr/local/lib/python2.7/dist-packages/boto-2.38.0-py2.7.egg/boto/connection.py”,第569行,在__
主机,配置,self.provider,self.\u必需\u身份验证功能()
文件“/usr/local/lib/python2.7/dist packages/boto-2.38.0-py2.7.egg/boto/auth.py”,第987行,在get\u auth\u处理程序中
'检查您的凭据“%”(len(名称),str(名称)))
boto.exception.NoAuthHandlerFound:没有处理程序准备好进行身份验证。检查了1个处理器。['HmacAuthV4Handler']检查您的凭据

似乎有答案,但从命令行运行会给我同样的失败


答案提到没有“在环境变量或boto配置文件中找不到其他凭据”。我找不到任何这样的配置。

您能发布与该用户关联的策略吗?我猜用户可以通过S3角色,但不能通过EC2角色。这就解释了CLI和boto/ec2的工作原理。或者尝试此CLI命令并查看其是否有效:

aws ec2 list-regions