AWS Session Manager实际上不要求允许入站流量,因为它使用了AWS Systems Manager的自定义安全组规则来建立连接。下面是一个代码示例来解决这个问题:
import boto3
ec2_client = boto3.client('ec2')
# 创建一个安全组
response = ec2_client.create_security_group(
Description='Allow outbound traffic only',
GroupName='outbound-security-group',
VpcId='your-vpc-id'
)
security_group_id = response['GroupId']
# 添加出站规则
response = ec2_client.authorize_security_group_egress(
GroupId=security_group_id,
IpPermissions=[
{
'IpProtocol': '-1',
'FromPort': -1,
'ToPort': -1,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
}
]
)
print('Security group created with ID:', security_group_id)
import boto3
ec2_client = boto3.client('ec2')
# 将安全组与实例关联
response = ec2_client.modify_instance_attribute(
InstanceId='your-instance-id',
Groups=['your-security-group-id']
)
print('Security group associated with instance')
通过这种方式,您的实例将只允许出站流量,而禁止入站流量。这将确保AWS Session Manager正常工作,并保护您的实例免受不必要的入侵。