2016-12-13 64 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