AWS Config 규칙이 작동하지 않는 문제를 해결하고 싶습니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
권한 문제, 리소스 범위 또는 구성 변경 항목으로 인해 관리형 AWS Config 규칙이 작동하지 않을 수 있습니다. 다음 문제 해결 방법을 사용하여 이러한 문제를 해결하십시오.
구성 레코더 검토
구성 레코더가 규칙에 필요한 모든 리소스 유형(예: AWS::EC2::Instance)을 기록하는지 확인합니다.
규칙의 규정 준수 옵션 업데이트
AWS Config 콘솔에서 규칙의 규정 준수 옵션에 보고된 결과 없음 또는 범위 내 리소스 없음이 표시될 수 있습니다. 평가 결과를 가져오려면 규칙을 업데이트하거나 범위를 변경하거나 리소스를 추가해야 할 수 있습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 규칙 추가(콘솔)를 참조하십시오.
평가 검토
AWS Config에서 평가 시간을 보고하지 않고 평가 실패를 표시하면 AWS CloudTrail 로그의 PutEvaluations API 호출에서 errors를 검토하십시오.
이벤트 기록 검토
CloudTrail에서 AWS Config 이벤트의 이벤트 기록을 검토할 수 있습니다. 이벤트 소스를 config.amazonaws.com으로 필터링하고 필터링된 로그 결과에서 "Access denied" 오류를 검색합니다. 그런 다음 오류를 검토하여 문제에 대한 세부 정보를 확인합니다.
이벤트 기록에서 주기적 평가 트리거를 검토할 수도 있습니다. 이러한 문제를 해결하려면 리소스가 관련 서비스 API에 액세스할 수 있어야 합니다.
구성 항목 검토
리소스 구성 및 규정 준수 타임라인을 검토하십시오. 리소스에 대한 구성 항목이 구성 변경 기반 트리거를 사용하는 AWS Config 규칙의 변경 사항을 올바르게 반영하는지 확인하십시오.
레코더 역할 권한 업데이트
레코더 역할에 올바른 AWS Identity and Access Management(IAM) 권한이 있는지 확인하십시오. 이러한 권한은 PutEvaluations API를 사용하여 리소스 구성 및 게시 규정 준수를 설명합니다.
규칙 평가 상태 검토
규칙의 상태를 보려면 다음 describe-config-rule-evaluation-status 명령을 실행하고 LastErrorMessage 값을 검토하십시오.
aws configservice describe-config-rule-evaluation-status --config-rule-names ConfigRuleName --region RegionID
참고: ConfigRuleName을 AWS Config 규칙 이름으로 바꾸고 RegionID를 AWS 리전으로 바꾸십시오.
사용자 지정 AWS Config 규칙 문제 해결
사용자 지정 AWS Config 규칙의 경우 AWS Config에 AWS Lambda 함수를 호출하는 데 필요한 올바른 권한이 있어야 합니다. 올바른 권한이 없는 경우 다음과 같은 오류 메시지가 표시됩니다.
"Unable to execute lambda function"
다음은 Lambda 함수의 리소스 정책 예시입니다.
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "allow_config",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "lambda:InvokeFunction",
"Resource": "lambda-function-arn",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "AWS-accountID"
}
}
}
]
}
오류에 대한 자세한 내용을 찾아보려면 로그에서 Lambda 함수 이름과 일치하는 User name 값이 있는 PutEvaluations 이벤트를 검토하십시오. 그런 다음 errorMessage를 검토하여 자세한 내용을 확인하십시오.
Lambda 함수 서비스 역할에 config:PutEvaluations를 수행하는 데 필요한 권한이 부여되지 않은 경우 다음 add-permission 명령을 실행하십시오.
aws lambda add-permission --function-name function_name --region RegionID --statement-id allow_config --action lambda:InvokeFunction --principal config.amazonaws.com --source-account AWS-accountID
참고: function_name을 Lambda 함수 이름으로, RegionID를 리전으로, AWS-accountID를 AWS 계정 ID로 바꾸십시오.
역할의 권한이 올바르면 Lambda 함수 코드에서 발생한 예외를 검토하십시오. 자세한 내용은 Lambda 함수와 연결된 /aws/lambda/FunctionName Amazon CloudWatch 로그 그룹의 로그를 검토하십시오.
참고: 더 많은 디버깅 로그를 생성하려면 Lambda 코드에 print 설명문을 추가하십시오.
관련 정보
AWS Config에서 AWS Organizations의 구성 규칙을 생성 또는 삭제할 수 없는 이유는 무엇입니까?