更新时间:2024-01-26 GMT+08:00

安全组策略(SecurityGroup)

云原生网络2.0网络模式下,Pod使用的是VPC的弹性网卡/辅助弹性网卡,可直接绑定安全组,绑定弹性公网IP。为方便用户在CCE内直接为Pod关联安全组,CCE新增了一个名为SecurityGroup的自定义资源对象。通过SecurityGroup资源对象,用户可对工作负载实现自定义的安全隔离诉求。

约束与限制

  • 1个工作负载最多可绑定5个安全组。

通过界面创建

  1. 登录CCE控制台,单击集群名称,进入集群。
  2. 在左侧选择“工作负载”,单击工作负载名称。
  3. “安全组策略”页签下,单击“创建”

  4. 根据界面提示,配置参数, 具体如表1所示。

    表1 配置参数

    参数名称

    描述

    示例

    安全组策略名称

    输入安全组策略名称。

    请输入1-63个字符,以小写字母开头,由小写字母、数字、连接符(-)组成,且不能以连接符(-)结尾。

    security-group

    关联安全组

    选中的安全组将绑定到选中的工作负载的弹性网卡/辅助弹性网卡上,在下拉框中最多可以选择5条,安全组必选,不可缺省。

    如将绑定的安全组未创建,可单击“创建安全组”,完成创建后单击刷新按钮。

    须知:
    • 最多可选择5个安全组。
    • 鼠标悬浮在安全组名称旁的图标上,可查看安全组的详细信息。

    64566556-bd6f-48fb-b2c6-df8f44617953

    5451f1b0-bd6f-48fb-b2c6-df8f44617953

  5. 参数配置后,单击“确定”。

    创建完成后页面将自动返回到安全组策略列表页,可以看到新添加的安全组策略已在列表中。

通过kubectl命令行创建

  1. 请参见通过kubectl连接集群,使用kubectl连接集群。
  2. 创建一个名为securitygroup-demo.yaml的描述文件。

    vi securitygroup-demo.yaml

    例如,用户创建如下的SecurityGroup资源对象,给所有的app:nginx工作负载绑定上提前已经创建的64566556-bd6f-48fb-b2c6-df8f44617953,5451f1b0-bd6f-48fb-b2c6-df8f44617953的两个安全组。示例如下:

    apiVersion: crd.yangtse.cni/v1
    kind: SecurityGroup
    metadata:
      name: demo
      namespace: default
    spec:
      podSelector:
        matchLabels:
          app: nginx    
      securityGroups:
      - id: 64566556-bd6f-48fb-b2c6-df8f44617953
      - id: 5451f1b0-bd6f-48fb-b2c6-df8f44617953
    以上yaml参数说明如表2
    表2 参数说明

    字段名称

    字段说明

    必选/可选

    apiVersion

    表示API的版本号,版本号为crd.yangtse.cni/v1。

    必选

    kind

    创建的对象类别。

    必选

    metadata

    资源对象的元数据定义。

    必选

    name

    SecurityGroup的名称。

    必选

    namespace

    工作空间名称。

    必选

    spec

    用户对SecurityGroup的详细描述的主体部分都在spec中给出。

    必选

    podSelector

    定义SecurityGroup中需要关联安全组的工作负载。

    必选

    securityGroups

    id为安全组的ID。

    必选

  3. 执行以下命令,创建SecurityGroup。

    kubectl create -f securitygroup-demo.yaml

    回显如下表示已开始创建SecurityGroup

    securitygroup.crd.yangtse.cni/demo created

  4. 执行以下命令,查看SecurityGroup。

    kubectl get sg

    回显信息中有创建的SecurityGroup名称为demo,表示SecurityGroup已创建成功。

    NAME                       POD-SELECTOR                      AGE
    all-no                     map[matchLabels:map[app:nginx]]   4h1m
    s001test                   map[matchLabels:map[app:nginx]]   19m
    demo                       map[matchLabels:map[app:nginx]]   2m9s