

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理 Linux 安全更新
<a name="workingsecurity-updates"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

## 安全更新
<a name="bestpractice-secupdates"></a>

Linux 操作系统提供程序提供定期更新，大部分更新是操作系统安全修补，但也可能包括对已安装程序包的更新。您应确保您的实例操作系统是最新的操作系统并具有最新的安全修补。

默认情况下，在实例完成启动后， OpsWorks Stacks 会在安装过程中自动安装最新的更新。 OpsWorks 为了避免诸如重启应用程序服务器之类的中断，Stacks 不会在实例联机后自动安装更新。由您自行管理联机实例的更新，因此可最大程度地减少中断。

我们建议您使用下列方法之一来更新您的联机实例。
+ 创建并启动新实例来替换您当前的联机实例。然后，删除当前实例。

  新实例将具有在设置过程中安装的最新安全修补集。
+ 在 Chef 11.10 或更早版本的堆栈中的基于 Linux 的实例上，运行 [Update Dependencies 堆栈命令](workingstacks-commands.md)，以在指定实例上安装最新的安全修补集和其他更新。

对于这两种方法， OpsWorks Stacks都通过在亚马逊Linux和红帽企业Linux（RHEL）或 `apt-get update` Ubuntu上运行`yum update`来执行更新。每次分发处理更新的方式略有不同，因此您应检查相关链接中的信息以准确了解更新将如何影响您的实例：
+ **Amazon Linux**- Amazon Linux 更新将安装安全补丁并且还可能安装功能更新（包括程序包更新）。

  有关更多信息，请参阅 [Amazon Linux AMI FAQs](https://aws.amazon.com/amazon-linux-ami/faqs/#lock)。
+ **Ubuntu** -更新主要限于安装安全修补，但可能还会针对数量有限的关键修复安装程序包更新。

  有关更多信息，请参阅 [LTS - Ubuntu Wiki](https://wiki.ubuntu.com/LTS)。
+ **CentOS** - CentOS 更新通常会保留与早期版本的二进制兼容性。
+ **RHEL** - RHEL 更新通常会保留与早期版本的二进制兼容性。

  有关更多信息，请参阅 [Red Hat Enterprise Linux 生命周期](https://access.redhat.com/support/policy/updates/errata/)。

如果您想更好地控制更新，例如指定特定的软件包版本，则可以使用、、或[UpdateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateLayer.html)操作（或等效的 AWS [开发工具包方法或 AWS](https://aws.amazon.com/tools/) [CLI](https://aws.amazon.com/documentation/cli/) 命令）来禁用自动更新，将参数设置为。[CreateInstance[UpdateInstance[CreateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateLayer.html)](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateInstance.html)](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateInstance.html)`InstallUpdatesOnBoot``false`以下示例演示了如何使用 AWS CLI 来禁用作为现有层默认设置的 `InstallUpdatesOnBoot`。

```
aws opsworks update-layer --layer-id layer ID --no-install-updates-on-boot
```

之后，您必须自行管理更新。例如，您可使用下列策略之一：
+ 实现一个自定义配方以[运行适当 shell 命令](cookbooks-101-basics-commands.md#cookbooks-101-basics-commands-script)来安装您的首选更新。

  由于系统更新不会自然地映射到[生命周期事件](workingcookbook-events.md)，因此应在您的自定义说明书中包含该配方，但[手动执行](workingcookbook-manual.md)。有关程序包更新，您还可使用 [yum\$1package](https://docs.chef.io/chef/resources.html#yum-package) (Amazon Linux) 或 [apt\$1package](https://docs.chef.io/chef/resources.html#apt-package) (Ubuntu) 资源来代替 shell 命令。
+ [使用 SSH 登录每个实例](workinginstances-ssh.md)并手动运行适当的命令。