Python boto3 - 在安全组下添加规则描述
Python boto3 - adding rule description under Security Group
我正在尝试创建带有描述的规则,但 Boto3 似乎不支持它。请检查以下语法:
securityGroup.authorize_ingress(IpProtocol='tcp', FromPort=22, ToPort=22, CidrIp='0.0.0.0/0', Description='SSH Access')
这是错误:
botocore.exceptions.ParamValidationError: Parameter validation failed:
Unknown parameter in input: "Description", must be one of: CidrIp, FromPort, GroupId, GroupName, IpPermissions, IpProtocol, SourceSecurityGroupName, SourceSecurityGroupOwnerId, ToPort, DryRun
我可以将描述添加到安全组中,但不能添加到规则中。有什么建议么?
要添加规则说明,您可以使用 IpRanges 块。
IpRanges - A set of IP permissions to specify multiple rules and a description for the rule.
'IpRanges': [
{
'CidrIp': '0.0.0.0/0',
'Description': 'SSH Access'
}
]
检查 documentation 以获取详细示例。顶层没有 Description
键,但您可以从 IpPermissions
和 IpRanges
.
的值中找到它
response = security_group.authorize_ingress(
CidrIp='string',
FromPort=123,
GroupName='string',
IpPermissions=[
{
'FromPort': 123,
'IpProtocol': 'string',
'IpRanges': [
{
'CidrIp': 'string',
'Description': 'string'
},
],
'Ipv6Ranges': [
{
'CidrIpv6': 'string',
'Description': 'string'
},
],
'PrefixListIds': [
{
'Description': 'string',
'PrefixListId': 'string'
},
],
'ToPort': 123,
'UserIdGroupPairs': [
{
'Description': 'string',
'GroupId': 'string',
'GroupName': 'string',
'PeeringStatus': 'string',
'UserId': 'string',
'VpcId': 'string',
'VpcPeeringConnectionId': 'string'
},
]
},
],
IpProtocol='string',
SourceSecurityGroupName='string',
SourceSecurityGroupOwnerId='string',
ToPort=123,
DryRun=True|False
)
因此,在您的情况下,它应该如下所示。
response = security_group.authorize_ingress(
IpPermissions=[
{
'FromPort': 22,
'IpProtocol': 'tcp',
'IpRanges': [
{
'CidrIp': '0.0.0.0/0',
'Description': 'SSH Access'
},
],
'ToPort': 22,
]
},
]
)
我正在尝试创建带有描述的规则,但 Boto3 似乎不支持它。请检查以下语法:
securityGroup.authorize_ingress(IpProtocol='tcp', FromPort=22, ToPort=22, CidrIp='0.0.0.0/0', Description='SSH Access')
这是错误:
botocore.exceptions.ParamValidationError: Parameter validation failed: Unknown parameter in input: "Description", must be one of: CidrIp, FromPort, GroupId, GroupName, IpPermissions, IpProtocol, SourceSecurityGroupName, SourceSecurityGroupOwnerId, ToPort, DryRun
我可以将描述添加到安全组中,但不能添加到规则中。有什么建议么?
要添加规则说明,您可以使用 IpRanges 块。
IpRanges - A set of IP permissions to specify multiple rules and a description for the rule.
'IpRanges': [
{
'CidrIp': '0.0.0.0/0',
'Description': 'SSH Access'
}
]
检查 documentation 以获取详细示例。顶层没有 Description
键,但您可以从 IpPermissions
和 IpRanges
.
response = security_group.authorize_ingress(
CidrIp='string',
FromPort=123,
GroupName='string',
IpPermissions=[
{
'FromPort': 123,
'IpProtocol': 'string',
'IpRanges': [
{
'CidrIp': 'string',
'Description': 'string'
},
],
'Ipv6Ranges': [
{
'CidrIpv6': 'string',
'Description': 'string'
},
],
'PrefixListIds': [
{
'Description': 'string',
'PrefixListId': 'string'
},
],
'ToPort': 123,
'UserIdGroupPairs': [
{
'Description': 'string',
'GroupId': 'string',
'GroupName': 'string',
'PeeringStatus': 'string',
'UserId': 'string',
'VpcId': 'string',
'VpcPeeringConnectionId': 'string'
},
]
},
],
IpProtocol='string',
SourceSecurityGroupName='string',
SourceSecurityGroupOwnerId='string',
ToPort=123,
DryRun=True|False
)
因此,在您的情况下,它应该如下所示。
response = security_group.authorize_ingress(
IpPermissions=[
{
'FromPort': 22,
'IpProtocol': 'tcp',
'IpRanges': [
{
'CidrIp': '0.0.0.0/0',
'Description': 'SSH Access'
},
],
'ToPort': 22,
]
},
]
)