2016-12-13 115 views
0

我是一个完整的noob与Python和boto,并试图建立一个基本连接到ec2服务。 我运行下面的代码:无法连接到EC2使用Python boto

ec2Conn = boto.connect_ec2('username','password') 
group_name = 'python_central' 
description = 'Python Central: Test Security Group.' 
group = ec2Conn.create_security_group(group_name, description) 
group.authorize('tcp', 8888,8888, '<a href="http://0.0.0.0/0">0.0.0.0/0</a>') 

,并得到以下错误: AWS无法验证所提供的访问凭据

我读过一些帖子,这可能是由于我的机器和EC2服务器,但根据日志之间的时间差,它们是相同的:

host:ec2.us-east-1.amazonaws.com x-amz-date:20161213T192005Z

host;x-amz-date 515db222f793e7f96aa93818abf3891c7fd858f6b1b9596f20551dcddd5ca1be 2016-12-13 19:20:05,132 boto [DEBUG]:StringToSign:

任何想法如何得到这个连接上运行?

谢谢!

+1

您使用'boto'推出的情况下,无法连接到实例。你想'ssh'到你创建的实例吗? – helloV

+2

你从哪里得到'username'和'password'? AWS API不接受用户名/密码,它需要访问密钥和密钥。您似乎混淆了AWS API访问和EC2 SSH访问。 –

+0

@helloV我尝试启动实例。示例代码取自:http://pythoncentral.io/introduction-to-python-on-aws-with-boto/ – Urik

回答

1

对AWS API的调用需要通过验证密钥密钥。这些可以从身份和访问管理(IAM)控制台,在用户的安全证书选项卡下获得。

请参见:Getting Your Access Key ID and Secret Access Key

如果您不熟悉使用Python,你可能会发现它更容易使用AWS Command-Line Interface (CLI)调用AWS服务。例如,该单行命令可以启动Amazon EC2实例:

aws ec2 run-instances --image-id ami-c2d687ad --key-name joe --security-group-id sg-23cb34f6 --instance-type t1.micro 

参见:AWS CLI run-instances documentation