限制使用指定范围镜像创建实例

创建实例时应使用指定范围内的镜像,可以帮助用户收敛攻击面,防止因使用未经授权或存在风险的镜像而引发安全问题,并确保计算环境的一致性与合规性。

安全风险

如果允许所有用户或账户随意使用任何镜像,可能会导致以下安全隐患:

  • 恶意镜像: 来源不明的第三方公开镜像可能被植入了恶意软件、挖矿程序或后门,一旦使用,攻击者就可能获得您实例的控制权。

  • 漏洞镜像: 企业内部构建的镜像如果缺乏持续的安全维护(过时或未打补丁),会因包含未修复的系统或软件漏洞(如Log4j、Heartbleed)而成为攻击入口。

  • 配置不当的镜像: 镜像在制作过程中可能留下不安全配置,例如开放了不必要的端口、使用了弱密码等。

最佳实践

建立并使用“黄金镜像 (Golden Image)”,由企业安全和运维团队共同维护的一套标准化、经过硬化处理、定期扫描和更新的基准镜像。在阿里云环境中,我们建议使用标签 (Tag) 来标记和管理您的黄金镜像。例如,可以为所有通过审核的镜像统一打上status: approvedsecurity-level: trusted等标签。

控制台

  1. 在镜像列表中,使用标签筛选功能查询指定标签的镜像。

    image

  2. 使用指定标签的镜像创建实例。

    image.png

API

  1. 使用DescribeImages接口通过Tag.KeyTag.Value查询指定标签的镜像ImageId

  2. 通过RunInstances或者CreateInstance接口创建实例时,指定ImageId参数。

合规能力

拦截:限制创建Linux实例等操作中使用指定标签的镜像

在组织或账户层面通过RAM Policy策略,主动拦截未使用指定标签的镜像创建实例的行为。

  • 针对企业用户:

    1. 使用阿里云主账号登录资源目录控制台,单击左侧菜单栏的管控策略创建自定义权限策略,粘贴以下JSON内容。

      限制在创建实例、更换系统盘等操作中必须使用绑定"environment": "production"标签的镜像。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "ecs:CreateInstance",
              "ecs:RunInstances",
              "ecs:ReplaceSystemDisk"
            ],
            "Resource": "*",
            "Condition": {
              "StringEquals": {
                "acs:ResourceTag/environment": "production"
              }
            }
          },
          {
            "Effect": "Deny",
            "Action": [
              "ecs:DeleteTags",
              "ecs:UntagResources",
              "ecs:CreateTags",
              "ecs:TagResources"
            ],
            “Resource”: "acs:ecs:*:*:image/*"
          }
        ]
      }
    2. 在资源目录中选择合适的节点绑定策略,策略将对目录下的账号产生拦截效果。

  • 针对非企业用户:

    1. 使用阿里云主账号登录RAM控制台,单击左侧菜单栏的权限策略,创建一条与上述内容相同的自定义策略。

    2. 通过管理权限策略授权将该条权限策略授权给RAM用户、RAM用户组或RAM角色。

修复:修复未使用指定标签镜像创建的实例

ECS实例关联的镜像手动设置标签,清理或替换不符合标签要求镜像关联的ECS实例。