命名 AWS EC2 安全组 IP 权限规则

Eas*_*per 5 amazon-web-services aws-php-sdk aws-sdk

我使用的是 AWS PHP SDK 版本 3。我能够使用 API 创建安全组,以及创建 IP 权限规则。我不明白的是如何为 IP 权限规则命名。

这是我所拥有的:

$params = 
[
    'Description' => 'My Security Group',
    'GroupName' => 'my_security_group',
    'VpcId' => 'vpc-a9d2h3d7',
    'TagSpecifications' => [
        [
            'ResourceType' => 'security-group',
            'Tags' =>
            [
                ['Key' => 'Name', 'Value' => 'My Security Group']
            ]                
        ]
    ],
];

$Ec2Client->createSecurityGroup($params);
Run Code Online (Sandbox Code Playgroud)

至此群组就创建完成了

然后我创建一个 IP 权限规则:

$ip_permissions = [
    'GroupName' => 'my_security_group',
    'FromPort' => 0, 
    'ToPort' => 65535, 
    'IpProtocol' => 'tcp', 
    'IpRanges' => [['CidrIp' => 'xx.xxx.xx.xxxx/32', 'Description' => 'Main Office']],
];

$Ec2Client->authorizeSecurityGroupIngress($ip_permissions);
Run Code Online (Sandbox Code Playgroud)

通过AWS控制台,我可以看到规则已创建,但名称列为空。如何通过 API 创建名称?

Mar*_*cin 4

通过使用,情况会是一样的TagSpecifications。但security-group你需要security-group-rule

    'TagSpecifications' => [
        [
            'ResourceType' => 'security-group-rule',
            'Tags' =>
            [
                ['Key' => 'Name', 'Value' => 'My Security Group Rule']
            ]                
        ]
    ]
Run Code Online (Sandbox Code Playgroud)

AWS CLI 中的完整示例(没有 php):

aws ec2 authorize-security-group-ingress  --group-id sg-00102bde0b55e29fe --ip-permissions FromPort=0,IpProtocol=tcp,IpRanges='[{CidrIp=10.10.10.10/32,Description="Main Office"}]',ToPort=65535 --tag-specifications ResourceType=security-group-rule,Tags='[{Key=Name,Value=MyName}]'
Run Code Online (Sandbox Code Playgroud)