如何解决 Systems Manager 中的快速设置功能补丁策略错误?

1 分钟阅读
0

当我使用快速设置功能(AWS Systems Manager 的一项功能)来修补我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例时,我收到了错误。

简短描述

当您使用快速设置功能创建补丁策略来更新 Amazon EC2 实例时,您可能会收到以下错误消息之一。

Linux 实例:

“无法从 S3 下载文件:s3://aws-quicksetup-patchpolicy-5433xxxxx141-xxxxx/baseline_overrides.json。
botocore.exceptions.ClientError: 调用 HeadObject 操作时出现错误 (403): 禁止访问
在实例上找不到 IMDS 凭证。无法运行命令:退出状态代码为 156”

Windows 实例,在补丁任务的错误部分中:

“Invoke-PatchBaselineOperation: 用户 arn:aws:sts::5433xxxxx141:assumed-role/<IAM-Role>/i-xxxxxxxxxxxxxxxxx 未获授权,无法对以下资源执行 s3:GetObject 操作:
“arn:aws:s3:::aws-quicksetup-patchpolicy-5433xxxxx141-xxxxx/baseline_overrides.json”,因为基于资源的策略中存在显式拒绝”

当 Amazon EC2 实例由于权限问题而无法从文件下载基准覆盖时,将会出现此问题。当在 AWS Systems Manager 中创建补丁策略时,快速设置功能会自动创建 Amazon Simple Storage Service (Amazon S3) 存储桶。快速设置功能还会在存储桶内生成补丁基准文件,例如 aws-quicksetup-patchpolicy-123456789012-abcde

Systems Manager 会使用该文件来确定要应用哪些补丁,以及如何在 EC2 实例中管理修补操作。

解决方法

验证访问 S3 存储桶的权限

要应用补丁策略任务,您必须在实例上添加访问 Amazon S3 存储桶所需的权限。

要提供权限,请执行以下操作之一:

查看 QuickSetup 在您的实例上应用的关联

验证您是否在实例上应用了正确的关联。

在 AWS Systems Manager 控制台上,检查您是否应用了以下状态管理器(Systems Manager 的一项功能)关联:

  • 对于 Amazon EC2 实例: AWS-QuickSetup-PatchPolicy-AttachIAMToEc2Instance-[quick-setup-configuration-id]
  • 对于混合实例: AWS-QuickSetup-PatchPolicy-AttachIAMToHybridInstance-[quick-setup-configuration-id]

完成以下步骤:

  1. 打开 Systems Manager 控制台
  2. 在导航窗格中,选择 State Manager(状态管理器)。
  3. State Manager(状态管理器)页面上,选择您的关联。
  4. Association details(关联详细信息)页面的 Execution history(执行历史记录)下,选择最新的执行 ID。
  5. 查看关联执行目标,以验证关联是否在实例上运行。如果关联执行未运行,则必须使用立即应用关联功能手动将关联应用于实例。
  6. 要重试补丁策略执行,请运行 AWS-QuickSetup-PatchPolicy-ScanForPatches-[quick-setup-configuration-id] 状态管理器关联。如果执行不成功,请查看输出以确定执行失败的原因。然后,对补丁管理器进行故障排除

相关信息

问题: baseline_overrides.json 出现“Invoke-PatchBaselineOperation: 拒绝访问”错误或“无法从 S3 下载文件”错误

创建补丁策略

AWS 官方
AWS 官方已更新 3 个月前