

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# Systems Manager 的安全最佳实践
<a name="security-best-practices"></a>

Amazon Systems Manager 提供了在您开发和实施自己的安全策略时需要考虑的大量安全功能。以下最佳实践是一般指导原则，并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求，请将其视为有用的考虑因素而不是惯例。

**Topics**
+ [Systems Manager 预防性安全最佳实践](#security-best-practices-prevent)
+ [SSM Agent 安装最佳实践](#security-best-practices-ssm-agent)
+ [Systems Manager 监控和审计最佳实践](#security-best-practices-detect)

## Systems Manager 预防性安全最佳实践
<a name="security-best-practices-prevent"></a>

Systems Manager 的以下最佳实践可以帮助防止安全事故。

**实施最低权限访问**  
在授予权限时，您可以决定谁获得哪些 Systems Manager 资源的哪些权限。您可以允许对这些资源启用希望允许的特定操作。因此，您应仅授予执行任务所需的权限。实施最低权限访问对于减小安全风险以及可能由错误或恶意意图造成的影响至关重要。  
为实现最低权限访问，可以使用以下工具：  
+ [IAM 策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_controlling.html)和 [IAM 实体的权限边界](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_boundaries.html)
+ [服务控制策略](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_manage_policies_scps.html)

**配置为使用代理时，请使用 SSM Agent 的建议设置**  
如果将 SSM Agent 配置为使用代理，请将 `no_proxy` 变量与 Systems Manager 实例元数据服务的 IP 地址配合使用，以确保对 Systems Manager 的调用不会采用代理服务的标识。  
有关更多信息，请参阅 [配置 SSM Agent 以在 Linux 节点上使用代理](configure-proxy-ssm-agent.md) 和 [配置 SSM Agent以使用 Windows Server 实例的代理](configure-proxy-ssm-agent-windows.md)。

**使用 SecureString 参数加密和保护密钥数据**  
在 Parameter Store（Amazon Systems Manager 中的一项工具）中，`SecureString` 参数是需要以安全的方式存储和引用的任何敏感数据。如果您有不希望用户更改或以明文形式引用的数据（例如密码或许可证密钥），则应使用 `SecureString` 数据类型创建这些参数。Parameter Store 使用 Amazon Key Management Service（Amazon KMS）中的 Amazon KMS key 加密参数值。在加密参数值时，Amazon KMS 使用客户托管密钥或 Amazon 托管式密钥。为了获得最大的安全性，我们建议您使用自己的 KMS 密钥。如果您使用 Amazon 托管式密钥，则有权在您的账户中运行 [https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetParameter.html](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetParameter.html) 和 [https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetParameters.html](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetParameters.html) 操作的任何用户均有权查看或检索所有 `SecureString` 参数的内容。如果您使用客户托管密钥加密 `SecureString` 值，则可使用 IAM 策略和密钥策略来管理加密和解密参数的权限。  
使用 Amazon 托管式密钥 时，为这些操作建立访问控制策略更加困难。例如，如果您使用 Amazon 托管式密钥 来加密 `SecureString` 参数，并且不希望用户使用 `SecureString` 参数，那么用户的 IAM 策略必须明确拒绝对默认密钥的访问权限。  
有关更多信息，请参阅*《Amazon Key Management Service 开发人员指南》*中的 [使用 IAM 策略限制对 Parameter Store 参数的访问](sysman-paramstore-access.md) 和 [Amazon Systems ManagerParameter Store 如何使用 Amazon KMS](https://docs.amazonaws.cn/kms/latest/developerguide/services-parameter-store.html)。

**为文档参数定义 allowedValues 和 allowedPattern**  
您可以通过定义 `allowedValues` 和 `allowedPattern` 来验证用户在 Systems Manager 文档（SSM 文档）中的参数输入。对于 `allowedValues`，需要定义参数允许的值数组。如果用户输入了不允许的值，则执行将无法启动。对于 `allowedPattern`，需要定义一个正则表达式，用于验证用户输入是否与参数的定义模式匹配。如果用户输入与允许的模式不匹配，则执行无法启动。  
有关 `allowedValues` 和 `allowedPattern` 的更多信息，请参阅 [数据元素和参数](documents-syntax-data-elements-parameters.md)。

**阻止文档公开分享**  
除非您的应用场景需要允许公开共享，否则我们建议在 Systems Manager 文档控制台的**首选项**部分，为您的 SSM 文档启用阻止公开共享设置。

**使用 Amazon Virtual Private Cloud（Amazon VPC）和 VPC 端点**  
您可以使用 Amazon VPC 在已定义的虚拟网络内启动 Amazon 资源。这个虚拟网络与您在数据中心中运行的传统网络极其相似，并会为您提供使用 Amazon 的可扩展基础设施的优势。  
通过实施 VPC 端点，您可以通过私有方式将 VPC 连接到支持的 Amazon Web Services 服务 和 VPC 端点服务（由 Amazon PrivateLink 提供支持），而无需互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。VPC 中的实例无需公有 IP 地址便可与服务中的资源进行通信。VPC 和其他服务之间的流量不会脱离 Amazon 网络。  
有关 Amazon VPC 安全性的更多信息，请参阅*《Amazon VPC 用户指南》*中的[使用适用于 Systems Manager 的 VPC 端点提高 EC2 实例的安全性](setup-create-vpc.md)和 [Amazon VPC 中的互联网络流量隐私](https://docs.amazonaws.cn/vpc/latest/userguide/VPC_Security.html)。

**使用交互式命令和特定的 SSM 会话文档限制 Session Manager 用户访问会话**  
Session Manager（Amazon Systems Manager 中的一项工具）可向托管式节点提供[多种方法来启动会话](session-manager-working-with-sessions-start.md)。为了实现最安全的连接，您可以要求用户使用*交互式命令* 方法进行连接，以将用户的交互限制为特定命令或命令序列。这有助于管理用户可以执行的交互操作。有关更多信息，请参阅 [启动会话（交互式和非交互式命令）](session-manager-working-with-sessions-start.md#sessions-start-interactive-commands)。  
为了提高安全性，您可以限制 Session Manager 对特定 Amazon EC2 实例和特定 Session Manager 会话文档的访问权限。您可以使用 Amazon Identity and Access Management（IAM）policy 以这种方式授予或撤消 Session Manager 访问权限。有关更多信息，请参阅 [步骤 3：控制会话对托管式节点的访问](session-manager-getting-started-restrict-access.md)。

**为自动化工作流提供临时节点权限**  
在 Automation（Amazon Systems Manager 中的一项工具）中执行工作流期间，节点可能只需要执行该工作流所需的权限，而无需其他 Systems Manager 操作的权限。例如，Automation 工作流可能需要节点在工作流期间调用特定 API 操作或访问特定 Amazon 资源。如果您希望限制访问这些调用或资源，则可以在自动化运行手册本身中为您的节点提供临时补充权限，而不是将权限添加到您的 IAM 实例配置文件中。在自动化工作流结束时，临时权限将删除。有关更多信息，请参阅*《Amazon 管理和治理博客》*中的[为 Amazon Systems Manager 自动化提供临时实例权限](https://www.amazonaws.cn/blogs/mt/providing-temporary-instance-permissions-with-aws-systems-manager-automations/)。

**使 Amazon 和 Systems Manager 工具保持最新**  
Amazon 定期发布您可在 Amazon 和 Systems Manager 操作中使用的工具和插件的更新版本。将这些资源保持为最新，可确保您账户中的用户和节点能够访问这些工具中的最新功能和安全功能。  
+ SSM Agent – Amazon Systems Manager Agent（SSM Agent）是一个 Amazon 软件，可以在 Amazon Elastic Compute Cloud（Amazon EC2）实例、本地服务器或虚拟机（VM）上安装和配置。SSM Agent 让 Systems Manager 可以更新、管理和配置这些资源。我们建议至少每两周检查一次新版本，或者应用对代理的自动更新。有关信息，请参阅 [自动更新到 SSM Agent](ssm-agent-automatic-updates.md)。我们还建议在更新过程中验证 SSM Agent 的签名。有关信息，请参阅[验证 SSM Agent 签名](verify-agent-signature.md)。
+ Amazon CLI – Amazon Command Line Interface（Amazon CLI）是一种开源工具，让您能够在命令行 Shell 中使用命令与 Amazon Web Services 服务 进行交互。要更新 Amazon CLI，请运行安装 Amazon CLI 时使用的相同命令。我们建议您在本地计算机上创建计划任务，根据您的操作系统来相应运行命令，至少每两周一次。有关安装命令的信息，请参阅*《Amazon Command Line Interface 用户指南》*中的[安装 Amazon CLI 版本 2](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)。
+ Amazon Tools for Windows PowerShell – Tools for Windows PowerShell 是一组 PowerShell 模块，根据适用于 .NET 的 Amazon SDK 公开的功能构建。Amazon Tools for Windows PowerShell 使您可以从 PowerShell 命令行在 Amazon 资源上为操作编写脚本。随着 Tools for Windows PowerShell 的更新版本定期发布，您应更新在本地运行的版本。有关信息，请参阅*《IAM policy simulator 用户指南》*中的[在 Windows 上更新 Amazon Tools for Windows PowerShell](https://docs.amazonaws.cn/powershell/latest/userguide/pstools-getting-set-up-windows.html#pstools-updating) 或[在 Linux 或 macOS 上更新 Amazon Tools for Windows PowerShell](https://docs.amazonaws.cn/powershell/latest/userguide/pstools-getting-set-up-linux-mac.html#pstools-updating-linux)。
+ Session Manager 插件 – 如果贵企业中具有 Session Manager 使用权限的用户想要使用 Amazon CLI 连接到节点，则他们必须先在其本地计算机上安装 Session Manager 插件。若要更新插件，请运行安装插件时使用的相同命令。我们建议您在本地计算机上创建计划任务，根据您的操作系统来相应运行命令，至少每两周一次。有关信息，请参阅[为 Amazon CLI 安装 Session Manager 插件](session-manager-working-with-install-plugin.md)。
+ CloudWatch 代理 – 您可以配置和使用 CloudWatch 代理，从 EC2 实例、本地实例和虚拟机 (VM) 收集指标及日志。这些日志可以发送到 Amazon CloudWatch Logs 以进行监控和分析。我们建议至少每两周检查一次新版本，或者应用对代理的自动更新。对于最简单的更新，请使用 Amazon Systems Manager 快速设置。有关信息，请参阅[Amazon Systems Manager Quick Setup](systems-manager-quick-setup.md)。

## SSM Agent 安装最佳实践
<a name="security-best-practices-ssm-agent"></a>

安装 SSM Agent 时，请使用适合您的计算机类型的安装方法。特别是在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中，对于所有非 EC2 安装，请使用 `ssm-setup-cli` 工具。此工具为非 EC2 计算机提供额外的安全保护。

要在本地服务器和虚拟机上安装代理，请使用 `ssm-setup-cli` 工具，如以下主题中所述：
+ [在混合 Linux 节点上安装 SSM Agent](hybrid-multicloud-ssm-agent-install-linux.md)
+ [在混合 Windows Server 节点上安装 SSM Agent](hybrid-multicloud-ssm-agent-install-windows.md)

要在 EC2 实例上安装代理，请使用适合您的操作系统类型的安装过程：
+ [在适用于 Linux 的 EC2 实例上手动安装和卸载 SSM Agent](manually-install-ssm-agent-linux.md)
+ [在适用于 macOS 的 EC2 实例上手动安装和卸载 SSM Agent](manually-install-ssm-agent-macos.md)
+ [在适用于 Windows Server 的 EC2 实例上手动安装和卸载 SSM Agent](manually-install-ssm-agent-windows.md)

## Systems Manager 监控和审计最佳实践
<a name="security-best-practices-detect"></a>

Systems Manager 的以下实践可以帮助检测潜在的安全弱点和事故。

**识别和审计您的所有 Systems Manager 资源**  
确定您的 IT 资产是监管和安全性的一个至关重要的方面。您需要标识所有 Systems Manager 资源，以评估它们的安保状况并对潜在的薄弱领域采取措施。  
使用标签编辑器确定安全性敏感或审计敏感资源，然后在您需要搜索这些资源时使用这些标签。有关更多信息，请参阅*《Amazon Resource Groups 用户指南》*中的[查找要标记的资源](https://docs.amazonaws.cn/ARG/latest/userguide/find-resources-to-tag.html)。  
为您的 Systems Manager 资源创建资源组。有关更多信息，请参阅[什么是资源组？](https://docs.amazonaws.cn/ARG/latest/userguide/resource-groups.html) 

**使用 Amazon CloudWatch 监控工具实施监控**  
监控是保持 Systems Manager 和您的 Amazon 解决方案的可靠性、安全性、可用性和性能的重要环节。Amazon CloudWatch 提供了多种工具和服务来帮助您监控 Systems Manager 和其他 Amazon Web Services 服务。有关更多信息，请参阅[将节点日志发送到统一的 CloudWatch Logs（CloudWatch 代理）](monitoring-cloudwatch-agent.md)和[使用 Amazon EventBridge 监控 Systems Manager 事件](monitoring-eventbridge-events.md)。

**使用 CloudTrail**  
Amazon CloudTrail 提供了用户、角色或 Amazon Web Services 服务 在 Systems Manager 中所执行操作的记录。使用 CloudTrail 收集的信息，您可以确定向 Systems Manager 发出了什么请求、发出请求的 IP 地址、何人发出的请求、请求的发出时间以及其他详细信息。有关更多信息，请参阅 [使用 Amazon CloudTrail 记录 Amazon Systems Manager API 调用](monitoring-cloudtrail-logs.md)。

**启用 Amazon Config**  
使用 Amazon Config，您能够评测、审计和评估您的 Amazon 资源的配置。Amazon Config 监控资源配置，让您能够针对所需的安全配置评估所记录的配置。使用 Amazon Config，您可以查看配置更改以及 Amazon 资源之间的关系，调查详细的资源配置历史记录，并判断您的配置在整体上是否符合内部指南中所指定的配置要求。这可以帮助您简化合规性审核、安全性分析、变更管理和操作故障排除。有关更多信息，请参阅*《Amazon Config 开发人员指南》*中的[使用控制台设置 Amazon Config](https://docs.amazonaws.cn/config/latest/developerguide/gs-console.html)。当指定要记录的资源类型时，确保您包括了 Systems Manager 资源。

**监控 Amazon 安全公告**  
您应该经常为您的 Amazon Web Services 账户 检查在 Trusted Advisor 中发布的安全公告。您可以使用 [describe-trusted-advisor-checks](https://docs.amazonaws.cn/cli/latest/reference/support/describe-trusted-advisor-checks.html) 以编程方式完成此操作。  
此外，积极地监控向您的每一个 Amazon Web Services 账户 注册的原始邮件地址。Amazon 将使用该邮箱地址就可能影响您的紧急安全事件与您联系。  
具有广泛影响的 Amazon 操作性问题将在 [Amazon Service Health Dashboard](https://status.amazonaws.cn/) 上发布。操作性问题也会通过 Personal Health Dashboard 发布给个人账户。有关更多信息，请参阅 [Amazon Health 文档](https://docs.amazonaws.cn/health/)。

**更多信息**  
+ [安全性、身份和合规性最佳实践](https://www.amazonaws.cn/architecture/security-identity-compliance/)
+ [入门：在配置Amazon资源时遵循最佳实践](https://www.amazonaws.cn/blogs/security/getting-started-follow-security-best-practices-as-you-configure-your-aws-resources/)（Amazon安全博客）
+ [IAM 中的安全最佳实践](https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html)
+ [Amazon CloudTrail 中的安全最佳实践](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/best-practices-security.html)
+ [Simple Storage Service（Amazon S3）的安全最佳实践](https://docs.amazonaws.cn/AmazonS3/latest/userguide/security-best-practices.html)
+ [Amazon Key Management Service 的安全最佳实践](https://docs.amazonaws.cn/kms/latest/developerguide/best-practices.html)