AWS:在 VPC 中撤销 SecurityGroupIngress
AWS: revokeSecurityGroupIngress within a VPC
我正在使用 javascript SDK 根据 IP 地址(cidr 块)撤销非默认 vpc 安全组的入口,但出现错误 Source Group ID missing.
-
(node:8514) UnhandledPromiseRejectionWarning: MissingParameter: Source group ID missing.
我可以将相同的安全组 ID 设置为 'SourceSecurityGroupOwnerId',但这不起作用(而且这并不是我真正想要的)。
请注意,actualIpPermissions
是从 ec2sdk.describeSecurityGroups.SecurityGroups[0].IpPermissions 中检索的,不是硬编码的。
我的代码:
const actualIpPermissions = [{
FromPort:22,
IpProtocol:"tcp",
IpRanges:[
{CidrIp:"2.123.116.234/32",Description:"SSH some place"},
{CidrIp:"203.44.22.112/32",Description:"SSH from somewhere else"}
],
Ipv6Ranges:[],
PrefixListIds:[],
ToPort:22,
UserIdGroupPairs:[]
}]
const params = {
GroupId: 'sg-111111',
IpPermissions: actualIpPermissions
}
await ec2Sdk.revokeSecurityGroupIngress(params).promise()
我使用的是 aws-sdk-js 版本 2.275.1
运行 aws-cli 中的等效命令可以正常工作:
aws ec2 revoke-security-group-ingress --group-id sg-111111 --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 22, "ToPort": 22, "IpRanges": [{"CidrIp": "2.123.116.234/32", "Description": "SSH some place"},{"CidrIp":"203.44.22.112/32", "Description":"SSH from somewhere else"}]}]'
尽管提供给 revokeSecurityGroupIngress
的 Ipv6Ranges
|PrefixListIds
|UserIdGroupPairs
属性是空数组,AWS SDK 仍在验证这些。
Source group ID missing.
错误似乎来自 UserIdGroupPairs
。
为了安全起见,如果不是严格要求,最好删除任何空数组/对象。
我不确定这是否适用于所有 SDK 函数,但它也适用于 authorizeSecurityGroupIngress
函数
我正在使用 javascript SDK 根据 IP 地址(cidr 块)撤销非默认 vpc 安全组的入口,但出现错误 Source Group ID missing.
-
(node:8514) UnhandledPromiseRejectionWarning: MissingParameter: Source group ID missing.
我可以将相同的安全组 ID 设置为 'SourceSecurityGroupOwnerId',但这不起作用(而且这并不是我真正想要的)。
请注意,actualIpPermissions
是从 ec2sdk.describeSecurityGroups.SecurityGroups[0].IpPermissions 中检索的,不是硬编码的。
我的代码:
const actualIpPermissions = [{
FromPort:22,
IpProtocol:"tcp",
IpRanges:[
{CidrIp:"2.123.116.234/32",Description:"SSH some place"},
{CidrIp:"203.44.22.112/32",Description:"SSH from somewhere else"}
],
Ipv6Ranges:[],
PrefixListIds:[],
ToPort:22,
UserIdGroupPairs:[]
}]
const params = {
GroupId: 'sg-111111',
IpPermissions: actualIpPermissions
}
await ec2Sdk.revokeSecurityGroupIngress(params).promise()
我使用的是 aws-sdk-js 版本 2.275.1
运行 aws-cli 中的等效命令可以正常工作:
aws ec2 revoke-security-group-ingress --group-id sg-111111 --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 22, "ToPort": 22, "IpRanges": [{"CidrIp": "2.123.116.234/32", "Description": "SSH some place"},{"CidrIp":"203.44.22.112/32", "Description":"SSH from somewhere else"}]}]'
尽管提供给 revokeSecurityGroupIngress
的 Ipv6Ranges
|PrefixListIds
|UserIdGroupPairs
属性是空数组,AWS SDK 仍在验证这些。
Source group ID missing.
错误似乎来自 UserIdGroupPairs
。
为了安全起见,如果不是严格要求,最好删除任何空数组/对象。
我不确定这是否适用于所有 SDK 函数,但它也适用于 authorizeSecurityGroupIngress
函数