Serverless安全

如果您的业务部署在阿里云Serverless资产(例如通过ACK Serverless集群创建的弹性容器实例 ECI(Elastic Container Instance)Serverless 应用引擎 SAE(Serverless App Engine)等云产品实例)中,为了更好地保障Serverless架构下资产的安全,您可以使用云安全中心的Serverless安全检测功能,对Serverless资产进行常见的威胁告警检测、漏洞扫描、基线检查。本文将介绍云安全中心如何接入Serverless资产和为Serverless资产提供的安全防护功能。

计费说明

北京时间2024年07月31日及之后,Serverless安全防护功能停止公测,不再支持免费试用Serverless安全防护功能。如果用户需要使用Serverless安全防护功能,需要通过控制台开通Serverless资产按量付费。具体操作,请参见本文步骤一:开通按量计费并完成授权

开始计费

开通Serverless资产并完成授权后,Serverless防护采用按量计费模式,按照已授权绑定且客户端在线的资产每秒的计算核数计费:0.00002元/核/秒。系统会根据已授权绑定资产每天的计算核数总量,在次日生成账单。更多信息,请参见计费概述

停止计费

在以下场景中,阿里云会立即停止对绑定授权的Serverless资产的安全检测,同时停止计费。

  • 停止所有Serverless资产的计费:

    • 在云安全中心控制台的总览页面的按量付费服务区域,关闭Serverless资产对应的开关。

    • 在云安全中心控制台的资产中心 > Serverless资产页面上方,单击停止使用

    • 当前阿里云账号欠费且延停额度已使用完具体说明,请参见延期免停权益

  • 停止指定Serverless资产的计费:

    在云安全中心控制台的资产中心 > Serverless资产页面,解绑指定资产的绑定授权。具体操作,请参见本文步骤三:绑定或解绑授权资产

资产接入说明

支持接入的Serverless资产

通过托管版与专有版容器集群ACK、ACK Serverless集群和人工智能平台 PAI创建的弹性容器实例 ECI(Elastic Container Instance)以及Serverless 应用引擎 SAE(Serverless App Engine)的ECI实例资产,支持接入云安全中心进行防护。

接入方式

开通Serverless安全防护服务后,云安全中心会自动将当前阿里云账号下状态为运行中的Serverless资产(ECI实例和SAE应用)接入云安全中心并展示在Serverless资产列表中,完成绑定授权后,即可使用云安全中心Serverless防护能力。

重要

对于开通Serverless安全防护服务前已创建的资产实例,开通Serverless安全防护服务后,需要重启对应资产实例。重启客户端状态为正常状态后,即可对Serverless资产开启安全扫描能力。

绑定授权逻辑

  • 用户首次开通云安全中心按量付费功能且开通Serverless资产功能时,支持自定义绑定需防护的serverless资产。如果未进行自定义绑定,则默认全量绑定,且开启新增资产自动绑定。具体内容,请参见本文步骤一:开通按量计费并完成授权新购开通Serverless资产防护

  • 用户在付费版服务基础上新增开通Serverless资产功能时:

    • 如果是首次开通,则默认全量绑定,且开启新增资产自动绑定。

    • 如果不是首次开通,则默认自动绑定授权给上一次开通该功能已绑定授权的Serverless资产。如果上一次开通该功能绑定授权的ECI实例和SAE应用为0,则默认全量绑定,且开启新增资产自动绑定。

    具体内容,请参见本文步骤一:开通按量计费并完成授权新增开通Serverless资产防护

  • 如果当前账号已欠费,且欠费前已开通Serverless资产功能,用户结清当前账号欠费账单后,默认绑定之前已绑定授权的Serverless资产。

安装并启动ECI实例客户端

对于托管版与专有版容器集群ACK、ACK Serverless集群创建的ECI资产,必须在创建时完成安装并启动云安全中心客户端,才能使用云安全中心提供的安全检测能力。您需要通过以下方式安装并启动ECI Pod的云安全中心客户端。

ACK Serverless集群的ECI Pod启动客户端

容器服务管理控制台的集群管理页面左侧导航栏,选择工作负载 > 容器组,单击使用YAML创建资源,在YAML模板的spec > template > metadata下增加annotations参数配置,并将其设置为k8s.aliyun.com/eci-aliyundun-enabled: "true"。具体内容,请参见ECI Pod

新建的YAML模板示例:

apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment-basic
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      annotations:
        k8s.aliyun.com/eci-aliyundun-enabled: 'true'
      labels:
        app: nginx
    spec:
    #  nodeSelector:
    #    env: test-team
      containers:
      - name: nginx
        image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: "500m"

如果使用镜像创建资源,可在高级配置中添加Pod注解:k8s.aliyun.com/eci-aliyundun-enabled=true。资源创建的具体操作,请参见使用镜像创建无状态应用

image

托管版与专有版容器集群ACK的ECI Pod启动客户端

托管版与专有版容器集群ACK的ECI Pod启动客户端

  1. 登录容器服务管理控制台,进入对应版本的集群管理页面,部署ack-virtual-node组件,将Pod调度到ECI上运行。具体操作,请参见通过虚拟节点将Pod调度到ECI上运行

  2. 容器服务管理控制台的集群管理页面左侧导航栏,选择工作负载 > 容器组,然后单击使用YAML创建资源,在YAML模板的metadata下增加annotations参数配置,并将其设置为k8s.aliyun.com/eci-aliyundun-enabled: "true",在spec > containers下配置环境变量env,设置容器类型为ECI_CONTAINER_TYPE = sidecar

    新建的YAML模板示例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-aegis-alinux2-lifsea-x86
      labels:
        eci: "true"
      annotations:
        k8s.aliyun.com/eci-aliyundun-enabled: "true"
    spec:
      containers:
      - name: sidecar
        image: registry-vpc.cn-shanghai.aliyuncs.com/eci_open/centos:7
        command:
        - /bin/sh
        - -c
        args:
        - sleep inf
        env:
        - name: ECI_CONTAINER_TYPE
          value: sidecar
      - name: nginx
        image: registry-vpc.cn-shanghai.aliyuncs.com/eci_open/centos:7
        command:
        - /bin/sh
        - -c
        args:
        - sleep inf

安全能力说明

云安全中心为Serverless资产提供以下安全能力。

  • 威胁告警检测:支持检测并处理Serverless资产中存在的常见安全威胁,例如发现后门(WebShell)文件、异常网络连接、进程异常行为等。支持的具体检查项,请参见适用于容器环境的告警

  • 漏洞扫描:您可以在风险治理 > 漏洞管理页面,单击已支持漏洞下的数字,前往支持检测的漏洞列表面板,查看支持检测的漏洞列表。

    对于应用漏洞,仅支持扫描,不支持修复。应用漏洞是针对您服务器上安装的软件进行扫描后发现的风险,需要您根据漏洞详情中的修复建议,手动对软件应用升级或进行配置修改,排除安全隐患。

    image.png

  • 基线检查:支持检测并处理Serverless资产的存在的基线检查风险项,例如Kubernetes(ECI) Pod 国际通用安全最佳实践基线检查的限制以root运行容器禁止配置具有内核功能的容器等。支持的具体基线检查内容,请参见基线检查内容

云安全中心对于接入的Serverless资产根据容器运行时状态划分为不同的实例类型,对应支持的安全能力有如下区别。

实例类型

支持的安全能力

弹性容器实例

  • 威胁告警检测

  • 漏洞扫描

  • 基线检查

RunD容器实例

威胁告警检测

步骤一:开通按量计费并完成授权

新购开通Serverless资产防护

免费版申请试用的用户,可以通过购买云安全中心服务方式,开通Serverless资产防护能力。

  1. 访问云安全中心购买页并使用您的阿里云账号登录。

  2. 在购买页面,选择购买方式按量付费,单击Serverless资产

  3. 单击自定义按需绑定,在授权管理对话框中,您可选择全量绑定自定义绑定,配置Serverless资产的防护授权。

    如果不配置防护授权,则云安全中心会自动绑定授权已接入所有Serverless资产,且后续新增的Serverless资产也会自动接入并绑定授权。您可以在开通Serverless资产防护服务后,手动对Serverless资产进行绑定或解绑授权。具体操作,请参见下文步骤三:绑定或解绑授权资产

    image

  4. 仔细阅读并选中云安全中心服务协议,单击立即下单

云安全中心会自动接入当前账号下的所有Serverless资产,并根据防护授权配置,绑定授权目标Serverless资产。

新增开通Serverless资产防护

已购买云安全中心服务的付费版(防病毒版、高级版、企业版和旗舰版)的用户,可以新增开通Serverless资产防护能力。

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择资产中心 > Serverless 资产

  3. Serverless资产页面,单击立即开通

    您也可以在总览页面右侧的按量付费服务区域,打开Serverless资产开关。

  4. 在确认对话框中,选中我已阅读并同意云安全中心(按量付费)用户协议,然后单击立即开通

完成新增开通后,按照以下逻辑绑定授权Serverless资产:

  • 如果是首次开通,则云安全中心会自动接入并绑定授权当前账号下的所有Serverless资产,且后续新增的Serverless资产也会自动接入并绑定授权。

  • 如果不是首次开通,则默认自动绑定授权给上一次开通该功能已绑定授权的Serverless的ECI实例。如果上一次开通该功能绑定授权的ECI实例和SAE应用为0,则默认全量绑定,且开启新增资产自动绑定。

步骤二:同步最新资产

如果新创建了Serverless资产,您可以单击同步最新资产,手动将最新Serverless资产列表同步到云安全中心控制台。

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择资产中心 > Serverless 资产

  3. Serverless资产页面,单击同步最新资产

    云安全中心会拉取最新的Serverless资产信息,刷新资产列表。

    说明

    同步最新资产信息需要1分钟时间,请您耐心等待。

步骤三:绑定或解绑授权资产

只有授权绑定的Serverless资产,才能使用云安全中心提供的Serverless安全防护能力,进行安全风险检测。

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择资产中心 > Serverless 资产

  3. Serverless资产页面的资产列表中找到目标Serverless资产,查看客户端列图标颜色。

    • 绿色表示客户端在线运行中,支持绑定和解绑授权。

    • 灰色表示客户端因未安装或网络不稳定等其他因素不在线。此时,Serverless资产仍支持绑定和解绑授权,但绑定后不支持使用安全防护能力且不会计费。您可以参考上文的资产接入说明,安装并检查对应资产的客户端进行启动。

    绑定授权的Serverless资产客户端在线运行,才能开始使用云安全中心提供的安全防护能力并开始按量计费。

    image

  4. 单击资产列表上方未绑定的实例下的授权管理

  5. 授权管理对话框中,选择操作类型(绑定解绑),根据页面提示选择目标Serverless资产,然后单击确定

    如需自动绑定新增的Serverless资产,可选中新增资产自动绑定

    image

步骤四:查看并处理安全风险

Serverless资产接入云安全中心并完成绑定授权后,云安全中心会为该实例实时开启安全威胁告警检测,漏洞扫描和基线检查会按照漏洞或基线的扫描周期执行检查。您可以前往漏洞管理基线检查页面,查看最新检查时间。

以下介绍查看Serverless资产安全风险状态的具体步骤。

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择资产中心 > Serverless 资产

  3. Serverless资产页面的资产列表中,找到目标资产,如果对应风险状况列显示存在风险,表示该资产中检测出了告警、漏洞或基线风险。

  4. 单击目标资产名称或该资产对应操作列的查看,可查看该资产的详细风险信息。

    单击安全告警数漏洞风险数基线风险数卡片,可以查看对应的风险检查项列表。

    image.png

  5. 处理安全告警。

    单击目标告警对应操作列的详情,查看告警的详细信息,判断告警是否为真实存在的风险。

    判断完成后,单击目标告警操作列的处理,如果为真实存在的风险,选择隔离处理方式;如果无需处理或需忽略本次告警,选择加白名单、忽略或我已手工处理等处理方式。

  6. 处理漏洞风险。

    单击漏洞风险数卡片,查看该资产中检测出的漏洞。

    漏洞为可被黑客利用的薄弱点,建议您及时处理已检测出的漏洞。应用漏洞不支持一键修复,建议您根据漏洞详情中的说明自行修复漏洞。具体操作,请参见开通漏洞修复能力

  7. 处理基线风险。

    单击基线风险数卡片,查看该资产中检测出的基线风险。单击目标风险操作列的详情,查看风险详情和加固建议,并判断是否需要处理该基线风险,并根据判断结果处理该风险,或对该风险加白名单。

    云安全中心仅支持修复部分基线检查项风险问题,如果风险详情页面的风险处理列表显示修复按钮,表示该风险项支持在云安全中心修复,您可以在云安全中心直接修复基线风险问题。