在将镜像上传到 Azure 市场 之前,先更新镜像以满足若干安全配置要求。 这些要求有助于在整个 Azure 市场中维护合作伙伴解决方案映像的高级安全性。
在提交到Azure 市场之前,先对你的图片进行安全漏洞检测。 如果您在发布的镜像中检测到安全漏洞,请告知客户漏洞详情及当前部署中如何修复。
Linux 和开源操作系统镜像
| 类别 | 勾选 |
|---|---|
| 安全性 | 安装最新的 Linux 发行版安全补丁。 |
| 安全性 | 请遵循行业准则,以保护特定 Linux 发行版的 VM 映像。 |
| 安全性 | 通过仅保留必要的服务、包和网络端口,限制攻击面。 |
| 安全性 | 对源代码和生成的 VM 映像进行恶意软件扫描。 |
| 安全性 | VHD 映像仅包含必要的已锁定账户,这些账户没有会允许进行交互式登录的默认密码。 不要留后门。 |
| 安全性 | 除非应用程序(例如防火墙设备)依赖这些防火墙规则才能正常运行,否则请禁用这些规则。 |
| 安全性 | 删除 VHD 映像中的所有敏感信息,例如测试 SSH 密钥、已知 hosts 文件、日志文件和不必要的证书。 |
| 安全性 | 不要用LVM。 LVM容易受到虚拟机管理程序写缓存问题的影响,同时还会增加该镜像用户进行数据恢复的复杂性。 |
| 安全性 | 包含支持的必要库版本: - OpenSSL 1.0及更高级 版本 - Python 3.x,除非你的工作负载需要Python 2.x支持 - python-pyasn1模块(如果还没安装的话) |
| 安全性 | 清除 Bash 和 shell 历史条目。 这些条目可能包括私人信息或其他系统的明文凭证。 |
| 网络 | 默认情况下包括 SSH 服务器。 在 sshd 配置中使用以下选项配置 SSH keepalive:ClientAliveInterval 180。 |
| 网络 | 从映像中删除任何自定义网络配置。 删除 /etc/resolv.conf: rm /etc/resolv.conf。 |
| 部署 | 安装最新的 Azure Linux 代理。
- 通过使用 .rpm or .deb 包安装代理。
- 你也可以使用手动安装流程,但Microsoft推荐安装包。 - 如果你从GitHub仓库手动安装代理,首先将文件复制 waagent到/usr/sbin。 然后以root方式执行以下命令:# chmod 755 /usr/sbin/waagent# /usr/sbin/waagent -install安装将代理配置文件 /etc/waagent.conf放置在 。 |
| 部署 | 配置镜像,使 Azure 支持能够在需要时为合作伙伴提供串行控制台输出,并为从云存储挂载操作系统磁盘提供足够的超时。 在镜像核启动行中添加以下参数: console=ttyS0 earlyprintk=ttyS0 rootdelay=300。 |
| 部署 | 不要在操作系统磁盘上创建交换分区。 通过使用 Azure Linux 代理请求在本地资源磁盘上创建交换。 |
| 部署 | 为操作系统磁盘创建单个根分区。 |
| 部署 | 仅支持 64 位 操作系统。 |
Windows Server 映像
| 类别 | 勾选 |
|---|---|
| 安全性 | 使用安全 OS 的基础映像。 对于 Windows Server 映像,请使用 Azure 提供的 Windows Server 操作系统映像中的源 VHD。 |
| 安全性 | 安装最新的安全更新。 |
| 安全性 | 应用程序不应依赖于受限用户名,如管理员、root或管理员。 |
| 安全性 | 为 OS 硬盘驱动器和数据硬盘驱动器启用 BitLocker 驱动器加密。 |
| 安全性 | 通过保持最小的覆盖面积,只启用必要的 Windows Server 角色、功能、服务和网络端口,限制攻击面。 |
| 安全性 | 扫描源代码和生成的 VM 镜像,以检测恶意软件。 |
| 安全性 | 将 Windows Server 镜像安全更新设置为自动安装。 |
| 安全性 | VHD 映像仅包含必要的已锁定账户,这些账户没有会允许进行交互式登录的默认密码。 不要留后门。 |
| 安全性 | 除非应用程序(例如防火墙设备)依赖这些防火墙规则才能正常运行,否则请禁用这些规则。 |
| 安全性 | 删除 VHD 映像中的所有敏感信息,包括 HOSTS 文件、日志文件和不必要的证书。 |
| 部署 | 仅支持 64 位 操作系统。 |
即使贵组织在 Azure 市场 中没有映像,也建议参照这些建议检查 Windows 和 Linux 映像配置。