当我使用快速设置功能(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]
完成以下步骤:
- 打开 Systems Manager 控制台。
- 在导航窗格中,选择 State Manager(状态管理器)。
- 在 State Manager(状态管理器)页面上,选择您的关联。
- 在 Association details(关联详细信息)页面的 Execution history(执行历史记录)下,选择最新的执行 ID。
- 查看关联执行目标,以验证关联是否在实例上运行。如果关联执行未运行,则必须使用立即应用关联功能手动将关联应用于实例。
- 要重试补丁策略执行,请运行 AWS-QuickSetup-PatchPolicy-ScanForPatches-[quick-setup-configuration-id] 状态管理器关联。如果执行不成功,请查看输出以确定执行失败的原因。然后,对补丁管理器进行故障排除。
相关信息
问题: baseline_overrides.json 出现“Invoke-PatchBaselineOperation: 拒绝访问”错误或“无法从 S3 下载文件”错误
创建补丁策略