我配置了 AWS Config 规则 s3-bucket-logging-enabled 来自动修正不合规的 Amazon Simple Storage Service(Amazon S3)存储桶。但修正执行失败,并且 AWS Config 控制台显示操作状态错误“Action execution failed (details)”(操作执行失败(详细信息))。 我打开了 Details(详细信息)页面,但该页面没有足够的信息来排查问题。
简短描述
AWS Config 规则 s3-bucket-logging-enabled 使用 AWS Systems Manager Automation 文档 AWS-ConfigureS3BucketLogging 修正不合规的资源。必须使用 AWS Identity and Access Management (IAM) 在自动化角色信任策略中允许 Systems Manager 服务,该策略将作为 AutomationAssumeRole 参数传递。此外,自动化角色必须具有 PutBucketLogging 权限,并且必须将目标 Amazon S3 存储桶配置为存储日志。
解决方法
有关更详细的错误消息,请运行 AWS 命令行界面 (AWS CLI) 命令 describe-remediation-execution-status。然后,请按照以下操作说明排查错误消息。有关更多信息,请参阅如何排查 AWS Config 中的修正执行失败问题?
**重要提示:**开始之前,请确保您已安装并配置 AWS CLI。如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI。
“Step fails when it is Execute/Cancelling action.An error occurred (MalformedXML) when calling the PutBucketLogging operation: The XML you provided was not well-formed or did not validate against our published schema.Please refer to Automation Service Troubleshooting Guide for more diagnosis details.”(当执行/取消操作时,步骤失败。调用 PutBucketLogging 操作时,发生错误 (MalformedXML):您提供的 XML 格式不够好,或者没有针对我们发布的模式进行验证。请参阅自动化服务故障排除指南了解更多诊断详细信息。)
要解决此错误消息,请参阅 SSM 文档 AWS-ConfigureS3BucketLogging 的 AWS Config 自动修正措施为什么会失败,并在调用 PutBucketLogging API 时显示错误“(MalformedXML)”?
“Step fails when it is Execute/Cancelling action.An error occurred (AccessDenied) when calling the PutBucketLogging operation: Access Denied.Please refer to Automation Service Troubleshooting Guide for more diagnosis details.”(当执行/取消操作时,步骤失败。调用 PutBucketLogging 操作时出现错误 (AccessDenied):访问被拒绝。请参阅自动化服务故障排除指南了解更多诊断详细信息。)
出现此错误的原因是 AutomationAssumeRole 角色没有权限在不合规的 S3 存储桶上调用 PutBucketLogging API。您可以使用以下示例策略允许角色调用 PutBucketLogging API:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutBucketLogging",
"Resource": [
"arn:aws:s3:::<BUCKET_NAME_1>",
"arn:aws:s3:::<BUCKET_NAME_2>",
"arn:aws:s3:::<BUCKET_NAME_3>"
]
}
]
}
**注意:**如果您要求在 AWS 区域中的所有存储桶上进行修正,请使用条件键 aws:RequestedRegion 限制角色对特定区域的权限。
“Invalid execution parameters sent to Systems Automation.The defined assume role is unable to be assumed.”(发送给系统自动化的执行参数无效。定义的代入角色无法代入。)
出现此错误是因为 IAM AutomationAssumeRole 角色无法由 Systems Manager 自动化服务代入。使用以下示例策略允许 Systems Manager 代入 IAM 角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
相关信息
按照 AWS Config 规则修正不合规的 AWS 资源
使用 AWS Config 自动修正功能的 Amazon S3 存储桶合规性