내 AWS Config 규칙이 작동하지 않습니다. 이 문제를 해결하려면 어떻게 해야 하나요?
해결 방법
권한, 리소스 범위 또는 구성 변경 항목을 비롯한 다양한 문제로 인해 관리되는 AWS Config 규칙이 작동하지 않을 수 있습니다. 작동하지 않는 AWS Config 규칙을 해결하려면 다음 문제 해결 단계를 시도해 보세요.
참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 가장 최신 버전을 사용하고 있는지 확인하세요.
일반 AWS Config 규칙 문제 해결
- 구성 레코더가 규칙에 필요한 모든 리소스 유형(예: AWS::EC2::Instance)을 기록하고 있는지 확인합니다.
- AWS Config 콘솔을 열고 탐색 창에서 [규칙(Rules)]을 선택합니다. [규정 준수(Compliance)] 필드에 [결과가 보고되지 않음(No results reported)] 또는 [범위에 리소스가 없음(No resources in scope)]으로 표시되는 경우 AWS 관리형 규칙 설정 및 활성화의 8단계를 참조하세요.
- 평가 시간이 보고되지 않고 [평가에 실패했음(Evaluations failed)]을 나타내는 경우 AWS CloudTrail 로그에서 PutEvaluations API 호출에서 보고된 오류를 검토합니다.
- AWS CloudTrail 콘솔을 연 다음 탐색 창에서 [이벤트 기록(Event history)]을 선택합니다. 로그를 필터링하려면 드롭다운에서 [이벤트 소스(Event source)]를 선택하고 검색 필드에 config.amazonaws.com을 입력합니다. 액세스 거부(Access Denied) 오류에 대한 필터링된 로그 결과를 검토합니다.
- 정기적인 트리거 AWS Config 규칙의 경우 CloudTrail 콘솔 이벤트 기록 대시보드에 액세스하여 리소스에서 관련 서비스 API를 확인합니다.
- 특정 리소스 구성 및 규정 준수 일정을 검토합니다. 구성 변경 기반 트리거를 사용하여 AWS Config 규칙의 변경 사항을 반영하도록 구성 항목이 생성되었는지 확인합니다.
- 레코더 역할 권한 요구 사항이 충족되는지 확인합니다. 이러한 자격 증명은 PutEvaluations API를 사용하여 리소스 구성 및 게시 규정 준수를 설명하는 데 사용됩니다.
- 다음 AWS CLI 명령을 실행합니다. ConfigRuleName을 AWS 구성 규칙 이름으로 바꾸고 RegionID를 AWS 리전으로 바꿉니다. 출력에서 LastErrorMessage 값을 검토합니다.
aws configservice describe-config-rule-evaluation-status --config-rule-names ConfigRuleName --region RegionID
사용자 지정 AWS Config 규칙 문제 해결
사용자 지정 AWS Config 규칙의 경우 앞의 일반적인 문제 해결 단계 외에 다음을 확인합니다.
‘lambda 함수를 실행할 수 없습니다(Unable to execute lambda function).’ 오류 메시지는 AWS Config 서비스에 AWS Lambda 함수를 호출할 권한이 없음을 나타냅니다. 이 오류를 해결하려면 다음 명령을 실행하여 필요한 권한을 부여합니다. function_name을 Lambda 함수 이름으로, RegionID를 AWS 리전으로 바꾸고, AWS-accountID를 AWS 계정 ID로 바꿉니다.
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
다음은 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를 수행할 권한이 없는 경우 지정된 역할에 권한을 추가합니다.
- 권한이 올바른 경우 발생된 예외에 대한 Lambda 함수 코드를 검토합니다. 자세한 내용은 Lambda 함수와 연결된 Amazon CloudWatch 로그 그룹(/AWS/lambda/FunctionName)의 로그를 검토하세요. 코드에 print 문을 추가하여 디버깅 로그를 더 생성합니다.
관련 정보
조직 config 규칙을 만들거나 삭제할 수 없는 이유는 무엇입니까?