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
Java 错误:没有类似版本的Amazon EC2_Java_Amazon Web Services_Amazon Ec2_Amazon S3_Amazon - Fatal编程技术网

Java 错误:没有类似版本的Amazon EC2

Java 错误:没有类似版本的Amazon EC2,java,amazon-web-services,amazon-ec2,amazon-s3,amazon,Java,Amazon Web Services,Amazon Ec2,Amazon S3,Amazon,我正在尝试将入口规则添加到我的一个安全组中。 我所要做的就是将我的Ip地址192.88.137.28添加到我的EC2安全组sg fakegrpid中 那么,我应该将端点设置为ec2.eu-west-1.amazonaws.com/而不是ec2.amazonaws.com/ 这是一个已签名的请求&也已编码 https://ec2.amazonaws.com/?AWSAccessKeyId=THISISFAKEAWSDRACULA &Action=AuthorizeSecurityGroup

我正在尝试将入口规则添加到我的一个安全组中。 我所要做的就是将我的Ip地址192.88.137.28添加到我的EC2安全组sg fakegrpid中

那么,我应该将端点设置为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=
我使用JavaSDK创建签名。这是它的链接

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版本的服务&可能是,它不存在

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