我在这里为一个客户工作,他为我设置了一个 EC2 实例以供配置。我已经安装了所需的软件,现在我需要做的就是打开一些端口。我目前已通过 SSH 连接到该机器,它运行的是 Ubuntu 10.04。
我已经安装了ec2-ami-tools
和ec2-api-tools
软件包,并尝试运行以下命令,正如其他地方所建议的那样:
ec2-authorize -p 1024 default
不幸的是,这只是失败了,并给我留下了这个令人讨厌的错误信息:
Required option '-K, --private-key KEY' missing (-h for usage).'
显然我需要一个密钥来执行此操作,因此我将随实例收到的 PEM 密钥复制到服务器,然后使用该密钥再次运行它:
ec2-authorize -p 1024 -K mykey.pem default
现在它要求提供证书:
Reqired option `-C, --cert CERT' missing (-h for usage).`
呃。我实际上没有证书,那么它到底要我做什么?我无法访问 EC2 Web 界面,那么如何从 Ubuntu 服务器本身打开端口?
答案1
AWS 颁发 X.509 证书来验证这些请求...您必须让客户端进入 AWS 并为您生成一个- 如果没有适当的身份验证,就无法完成您所要求的操作。
答案2
要使用,ec2-api-tools
您需要有一个 X.509 证书:http://docs.amazonwebservices.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#EC2Credentials
要获取证书,您需要转到帐户 > 安全凭证 > 访问凭证 > X.509 证书。更多详细信息请访问:http://docs.amazonwebservices.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#X509Credentials
您可能仅使用访问密钥就可以向 REST API 发出请求AuthorizeSecurityGroupIngress
: http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-AuthorizeSecurityGroupIngress.html
答案3
简单的方法 :
从您的亚马逊帐户(网络)进入亚马逊 EC2 控制台并编辑安全组默认值
更复杂的方式:
您已要求具有网络访问权限的人员生成新证书。
抱歉,由于安全原因,如果没有访问权限(证书),我无法更改安全设置;)您需要密钥和证书。
阅读本文