您可以使用以下代码示例来设置安全组的出站规则,仅允许来自 ECR 的请求通过:
import boto3
def update_security_group_outbound_rules(security_group_id):
ec2_client = boto3.client('ec2')
# 获取 ECR 的 IP 范围
response = ec2_client.describe_security_groups(
Filters=[
{
'Name': 'group-name',
'Values': ['default']
}
]
)
ecr_ip_range = response['SecurityGroups'][0]['IpPermissionsEgress'][0]['IpRanges'][0]['CidrIp']
# 更新安全组的出站规则
ec2 = boto3.resource('ec2')
security_group = ec2.SecurityGroup(security_group_id)
security_group.revoke_egress(
IpPermissions=[
{
'FromPort': 0,
'ToPort': 65535,
'IpProtocol': '-1',
'IpRanges': [
{
'CidrIp': '0.0.0.0/0'
},
],
},
],
)
security_group.authorize_egress(
IpPermissions=[
{
'FromPort': 0,
'ToPort': 65535,
'IpProtocol': '-1',
'IpRanges': [
{
'CidrIp': ecr_ip_range
},
],
},
],
)
# 使用示例
security_group_id = 'your_security_group_id'
update_security_group_outbound_rules(security_group_id)
请确保您已经安装了 AWS SDK for Python(Boto3)并且已经配置了适当的 AWS 访问凭证。