创建和管理 VPC 安全组

虚拟私有云 4.15 及更高版本

在集群创建期间添加安全组

创建 VPC 集群时,将自动创建名为 kube-<clusterID> 的缺省工作程序安全组,并将其应用于集群中的所有工作程序。 您还可以在缺省工作程序安全组旁边附加其他安全组。 应用于集群中工作程序的安全组是在创建集群和创建工作程序池时应用的安全组的组合。 您的集群最多可应用五个安全组。

一旦创建了集群,就无法更改应用于集群的安全组。 您可以更改应用于集群的安全组的规则,但不能在集群级别添加或除去安全组。 如果在集群创建时应用了不正确的安全组,那么必须删除该集群并创建新的安全组。

如果只需要缺省安全组

创建集群时,请勿指定任何其他安全组。

 ibmcloud oc cluster create vpc-gen2 --name CLUSTER-NAME --zone ZONE --vpc-id VPC-ID --subnet-id SUBNET-ID

查看安全组

执行以下步骤以查看有关 VPC 安全组的详细信息。

  1. 列出集群并记下您正在其中工作的集群的 标识

    要检查集群中的 VPC,请运行 ibmcloud oc cluster get --cluster <cluster_name_or_id> 并检查输出中的 VPC 标识

    ibmcloud oc cluster ls --provider vpc-gen2
    
  2. 列出连接到集群所在的 VPC 的安全组。 将为 VPC 安全组分配随机生成的名称,例如 trench-hexagon-matriarch-flower。 集群安全组以 kube-<cluster-ID> 格式命名。

    ibmcloud is sgs | grep <vpc_name>
    

    示例输出

    ID                                          Name                                             Rules   Network interfaces   VPC                          Resource group   
    r006-111aa1aa-1a1a-1a11-1111-a111aaa1a11a   trench-hexagon-matriarch-flower                    4       0                    my-vpc                      default   
    r006-222aa2aa-2a2a-2a22-2222-a222aaa2a22a   kube-a111a11a11aa1aa11a11                          4       0                    my-vpc                      default   
    r006-333aa3aa-3a3a-3a33-3333-a333aaa3a33a   kube-r006-111a11aa-aaa1-1a1a-aa11-1a1a111aa11      4       0                    my-vpc                      default   
    
  3. 获取安全组的详细信息。 在输出中找到 规则 部分,以查看附加到安全组的入站和出站规则。

    ibmcloud is sg GROUP
    

    示例输出

    ...
    Rules      
    ID                                          Direction   IP version   Protocol                  Remote   
    r006-111bb1bb-1b1b-1b11-1111-b111bbb1b11b   outbound    ipv4         all                       0.0.0.0/0   
    r006-222bb2bb-2b2b-2b22-2222-b222bbb2b22b   inbound     ipv4         all                       behind-unbuilt-guidable-anthill   
    r006-333bb3bb-3b3b-3b33-3333-b333bbb3b33b   inbound     ipv4         icmp Type=8               0.0.0.0/0   
    r006-444bb4bb-4b4b-4b44-4444-b444bbb4b44b   inbound     ipv4         tcp Ports:Min=22,Max=22   0.0.0.0/0
    

在控制台中查看安全组

  1. VPC 仪表板的安全组中,查找附加到集群所在的 VPC 的安全组。

  2. 点击安全组。

    要按附加到的 VPC 对安全组进行排序,请单击表中的 虚拟私有云 列标题。

  3. 要查看附加到安全组的入站和出站规则,请单击 规则 选项卡。

在控制台中创建安全组规则

  1. 虚拟私有云仪表板中,单击集群所在 VPC 的 缺省安全组 的名称。

  2. 单击 “规则”选项卡。

    • 要创建新的入站规则以控制到工作程序节点的入站流量,请在“入站规则”部分中单击 创建
    • 要创建新规则来控制到工作节点的出站流量,请在“出站规则”部分单击“创建”。

    添加规则后,不要删除允许控制台所有出站流量的默认设置。 相反,从 CLI 运行 ibmcloud is security-group-rule-delete 命令来删除规则。

在命令行中创建安全组规则

使用 IBM Cloud 命令行界面(CLI)为集群的默认安全组添加入站和出站规则。

  1. 安装 infrastructure-service 插件。 用于运行命令的前缀是 ibmcloud is
    ibmcloud plugin install infrastructure-service
    
  2. 请选择您的 VPC 所在的区域。
    ibmcloud target -r REGION
    
  3. 获取您的集群 ID
    ibmcloud oc cluster get -c CLUSTER
    
  4. 列出您的安全组并注明 ID
    ibmcloud is sgs
    
    具有随机生成的名称 chamomile-dislodge-showier-unfilled 的 VPC 的缺省安全组的示例输出。
    ID                                          Name                                       Rules   Network interfaces   VPC          Resource group
    1a111a1a-a111-11a1-a111-111111111111        chamomile-dislodge-showier-unfilled        5       2                    events-vpc   default
    2b222b2b-b222-22b2-b222-222222222222        kube-df253b6025d64744ab99ed63bb4567b6      5       3                    gen2-vpn     default
    
  5. 将安全组标识存储为环境变量。
    sg=GROUP
    
  6. 查看安全组的缺省规则。
    ibmcloud is sg $sg
    
        ibmcloud is sg-rulec $sg inbound <protocol> [--remote <remote_address> | <CIDR_block> | <security_group_ID>] [--icmp-type <icmp_type> [--icmp-code <icmp_code>]] [--port-min <port_min>] [--port-max <port_max>]
        ```
    
    * 要创建出站流量规则,请使用 [`ibmcloud is sg-rulec <sg> outbound` 命令](/docs/vpc?topic=vpc-creating-vpc-resources-with-cli-and-api&interface=cli#add-rules-to-default-security-group)。
    
    ```sh {: pre}
        ibmcloud is sg-rulec $sg outbound <protocol> [--remote <remote_address> | <CIDR_block> | <security_group_ID>] [--icmp-type <icmp_type> [--icmp-code <icmp_code>]] [--port-min <port_min>] [--port-max <port_max>]
        ```
        1. 创建定制出站规则后,获取允许所有出站流量的缺省规则的标识。
    
            ```sh {: pre}
            ibmcloud is sg $sg
            ```
            示例输出
            ```sh {: screen}
            Rules
            ID                                          Direction   IP version   Protocol                        Remote
            r010-e3a34cbb-d5e8-4713-a57e-3e35a7458272   inbound     ipv4         all                             freeload-flavored-surging-repaying
            r010-036c3a13-1c16-4425-9667-a4ec34b1702b   inbound     ipv4         icmp Type=8                     0.0.0.0/0
            r010-15591636-6976-493f-a94f-70721702860a   inbound     ipv4         tcp Ports:Min=22,Max=22         0.0.0.0/0
            ```
        1. 删除允许所有出站流量的缺省规则。
    
            ```sh {: pre}
            ibmcloud is security-group-rule-delete $sg <rule_ID>
            ```