【发布时间】:2014-06-10 04:36:03
【问题描述】:
我正在尝试将入口规则添加到我的一个安全组。
我要做的就是将我的 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
【问题讨论】:
标签: java amazon-web-services amazon-ec2 amazon-s3 amazon