AWS Config 규칙 s3-bucket-logging-enabled에 대한 자동 수정으로 권한 오류를 해결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2020년 11월 20일

규정을 준수하지 않는 Amazon Simple Storage Service(Amazon S3) 버킷을 자동으로 수정하도록 AWS Config 규칙 s3-bucket-logging-enabled를 구성했습니다. 하지만 수정 실행이 실패하고 AWS Config 콘솔에 작업 상태 오류 ["작업 실행 실패(세부 정보)(Action execution failed (details))"]가 표시됩니다. [세부 정보(Details)] 페이지를 열었지만 문제 해결에 필요한 정보가 충분하지 않습니다.

간략한 설명

AWS Config 규칙 s3-bucket-logging-enabled는 AWS Systems Manager Automation 문서 AWS-ConfigureS3BucketLogging을 사용하여 규정을 준수하지 않는 리소스를 수정합니다. AutomationAssumeRole 파라미터로 전달되는 AWS Identity and Access Management(IAM)를 사용하여 자동화 역할 신뢰 정책에서 Systems Manager 서비스를 허용해야 합니다. 또한 자동화 역할에 PutBucketLogging 권한이 있어야 하며 로그를 저장하도록 대상 Amazon S3 버킷을 구성해야 합니다.

해결 방법

자세한 오류 메시지를 보려면 AWS 명령줄 인터페이스(AWS CLI) 명령 describe-remediation-execution-status를 실행합니다. 다음 지침에 따라 오류 메시지를 해결하세요. 자세한 내용은 AWS Config에서 실패한 수정 실행 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.

중요: 시작하기 전에 AWS CLI를 설치하고 구성했는지 확인하세요. AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

“실행/취소 작업일 때 단계가 실패합니다. PutBucketLogging 작업을 호출하는 동안 오류(MalformedXML)가 발생했습니다. 제공한 XML이 올바른 형식이 아니거나 게시된 스키마에 대해 검증되지 않았습니다. 자세한 진단 세부 정보는 자동화 서비스 문제 해결 안내서를 참조하세요.(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. 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.)”

“실행/취소 작업일 때 단계가 실패합니다. PutBucketLogging 작업을 호출할 때 오류(AccessDenied)가 발생하여 액세스가 거부되었습니다. 자세한 진단 세부 정보는 자동화 서비스 문제 해결 안내서를 참조하세요.(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.)”

이 오류는 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. Invalid execution parameters sent to Systems Automation.)“

이 오류는 Systems Manager Automation 서비스에서 IAM AutomationAssumeRole 역할을 가정할 수 없기 때문에 발생합니다. 다음 예제 정책을 사용하여 Systems Manager가 IAM 역할을 맡을 수 있게 허용합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ssm.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}