[英]Error: No Such Version of Amazon EC2
我正在尝试向我的一个安全组添加一个Ingress规则。 我要做的就是将我的IP地址192.88.137.28
添加到我的EC2安全组sg-fakegrpid
。
User Type: IAM
region: eu-west-1
所以,我应该将端点设置为ec2.eu-west-1.amazonaws.com/
而不是ec2.amazonaws.com/
吗?
这是一个签名的请求,也已编码。
https://ec2.amazonaws.com/?AWSAccessKeyId=THISISFAKEAWSDRACULA
&Action=AuthorizeSecurityGroupIngress
&GroupId=sg-fakegrpid
&IpPermissions.1.FromPort=3389
&IpPermissions.1.IpProtocol=tcp
&IpPermissions.1.IpRanges.1.CidrIp=192.88.137.28%2F32
&IpPermissions.1.ToPort=3389
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2014-06-09T10%3A57%3A31Z
&Signature=hIKzcwPDdYKw4HsxozCFzzzzl8LxzsdC6XlX83DV4NU=
我使用Java SDK创建签名。 这是它的链接。
http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html
当我在浏览器中运行上述给定的URL时,得到以下响应。
服务AmazonEC2的请求版本(2005-10-05)不存在
然后,我访问了该页面http://associates-amazon.s3.amazonaws.com/signed-requests/helper/index.html
我从那里生成了一个签名的URL。 但是签名与上述url的签名不同。
http://ec2.amazonaws.com/onca/xml?AWSAccessKeyId=THISISFAKEAWSDRACULA
&Action=AuthorizeSecurityGroupIngress
&GroupId=sg-fakegrpid
&IpPermissions.1.FromPort=3389
&IpPermissions.1.IpProtocol=tcp
&IpPermissions.1.IpRanges.1.CidrIp=192.88.137.28%2F32
&IpPermissions.1.ToPort=3389
&SignatureMethod=HmacSHA256&SignatureVersion=2
&Timestamp=2014-06-09T11%3A22%3A14.000Z
&Signature=hr%2FwZBMi3duJpOgud6Hzx2MIhd8QUuqzockqyysRQCY%3D
但是我得到和以前一样的错误。
这是要签名的字符串:
GET
ec2.amazonaws.com
AWSAccessKeyId=THISISFAKEAWSDRACULA
&Action=AuthorizeSecurityGroupIngress
&GroupId=sg-fakegrpid
&IpPermissions.1.FromPort=3389
&IpPermissions.1.IpProtocol=tcp
&IpPermissions.1.IpRanges.1.CidrIp=192.88.137.28%2F32
&IpPermissions.1.ToPort=3389
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2014-06-09T11%3A22%3A14.000Z
我添加了此“&Version = 2014-05-01”,一切正常。
此参数用于指定我们尝试使用的服务的版本。 这是EC2的最新版本。
当我没有提及特定版本时,aws会寻找此版本(2005-10-05)的服务,可能是,它不存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.