如何通过自动修正 AWS Config 规则 s3-bucket-logging-enabled 来解决权限错误?

2 分钟阅读
0

我配置了 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 存储桶合规性

AWS 官方
AWS 官方已更新 3 年前