在createSecurityGroup
的回调中,我尝试向新安全组添加一些规则。对authorizeSecurityGroupIngress
的调用不会失败(即err
为空),但是当我在AWS控制台中签入时,规则不会出现在安全组的“入站”选项卡中。
这是我的代码的简化版本:
var createSecurityGroupParams = {
GroupName : "webserver-default",
VpcId : Vpc.VpcId, // a valid vpc id
Description : "..."
};
ec2.createSecurityGroup(createSecurityGroupParams, function(err, data) {
if (err) { /* error handling */}
var authorizeSecurityGroupIngressParams = {
GroupId : data.GroupId,
IpProtocol : "tcp",
ToPort : 22,
CidrIp : "0.0.0.0/0"
};
ec2.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressParams, function(err, data) {
if (err) { /* error handling... never called */ }
});
});
提前了解你的时间。
答案 0 :(得分:0)
看起来我使用了错误的请求参数组合。像这样改变authorizeSecurityGroupIngressParams
解决了这个问题:
var authorizeSecurityGroupIngressParams = {
GroupId: data.GroupId,
IpPermissions: [{
IpProtocol: "tcp",
FromPort: 22,
ToPort: 22,
IpRanges: [{
CidrIp: "0.0.0.0/0"
}]
}]
};
仍然不知道为什么最后一个版本没有因错误而失败。