You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2安全组IP权限规则如何通过PHP SDK v3设置名称?

你在控制台看到的安全组规则“名称”,本质是绑定在安全组规则资源上的Name标签,你之前的代码只设置了规则的描述字段,没有给规则绑定标签,所以名称列是空的。

方案1:创建规则时直接指定标签(推荐)

AWS PHP SDK v3的新版本已经支持在调用authorizeSecurityGroupIngress接口时直接传入TagSpecifications参数配置安全组规则的标签,你只需要在原有参数基础上新增对应配置即可,示例代码如下:

$ip_permissions = [
    'GroupName' => 'my_security_group',
    'FromPort' => 0, 
    'ToPort' => 65535, 
    'IpProtocol' => 'tcp', 
    'IpRanges' => [['CidrIp' => 'xx.xxx.xx.xxxx/32', 'Description' => 'Main Office']],
    // 新增安全组规则标签配置
    'TagSpecifications' => [
        [
            'ResourceType' => 'security-group-rule',
            'Tags' => [
                ['Key' => 'Name', 'Value' => '你需要设置的规则名称']
            ]
        ]
    ]
];

$Ec2Client->authorizeSecurityGroupIngress($ip_permissions);

方案2:创建规则后单独打标签

如果你当前使用的SDK版本较低,不支持在创建规则时直接传标签,可以先创建规则拿到规则ID,再调用createTags接口单独给规则绑定Name标签,示例代码如下:

// 原有创建安全组规则的逻辑
$ip_permissions = [
    'GroupName' => 'my_security_group',
    'FromPort' => 0, 
    'ToPort' => 65535, 
    'IpProtocol' => 'tcp', 
    'IpRanges' => [['CidrIp' => 'xx.xxx.xx.xxxx/32', 'Description' => 'Main Office']],
];
$result = $Ec2Client->authorizeSecurityGroupIngress($ip_permissions);

// 获取新创建的安全组规则ID
$securityGroupRuleId = $result['SecurityGroupRules'][0]['SecurityGroupRuleId'];

// 给规则绑定Name标签
$Ec2Client->createTags([
    'Resources' => [$securityGroupRuleId],
    'Tags' => [
        ['Key' => 'Name', 'Value' => '你需要设置的规则名称']
    ]
]);

注意事项

  • 你之前代码中IpRanges里设置的Description是规则的描述属性,和名称是两个独立字段,不会自动同步到名称列
  • 安全组规则标签功能仅在2016-11-15及之后版本的EC2 API中支持,如果以上方案无法生效建议先升级AWS PHP SDK到最新版本

内容的提问来源于stack exchange,提问作者EastsideDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:00:01