AWS Config 구성 레코더를 생성할 때 MaxNumberOfConfigurationRecordersExceededException 오류가 발생합니다.
간략한 설명
AWS Config는 구성 레코더를 사용하여 리소스 구성의 변경 사항을 기록합니다. AWS Config는 계정에서 AWS 리전당 하나의 구성 레코더만 허용합니다. MaxNumberOfConfigurationRecordersExceededException 오류는 해당 리전의 계정에 이미 구성 레코더가 있기 때문에 새 구성 레코더를 만들 수 없음을 나타냅니다. 레코더를 만들기 위해 AWS Config 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS CloudFormation 중 어느 것을 사용하든 관계없이 오류가 발생합니다.
해결 방법
참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
MaxNumberOfConfigurationRecordersExceededException 오류를 해결하고 새 구성 레코더를 만들려면 기존 구성 레코더를 식별하여 삭제해야 합니다.
참고: 구성 레코더는 콘솔에서 삭제할 수 없습니다. 프로그래밍 방식으로 삭제를 수행해야 합니다.
먼저, 필요한 명령을 실행할 수 있는 올바른 AWS Identity and Access Management(IAM) 권한이 있는지 확인합니다. 그런 다음, AWS CLI 또는 CloudFormation을 사용하여 기존 구성 레코더를 식별하고 삭제할 수 있습니다.
IAM 권한
구성 레코더를 설명하고 삭제하려면 다음 IAM 권한을 추가하십시오.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"config:DescribeConfigurationRecorders",
"config:DeleteConfigurationRecorder"
],
"Resource": "*"
}
]
}
구성 레코더를 시작하고 중지하려면 다음 IAM 권한을 추가하십시오.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"config:PutConfigurationRecorder",
"iam:PassRole",
"config:DescribeConfigurationRecorders",
"config:StopConfigurationRecorder",
"config:StartConfigurationRecorder",
"config:DeleteConfigurationRecorder"
],
"Resource": "*"
}
]
}
AWS CLI에서 구성 레코더 식별 및 삭제
다음 작업을 완료하십시오.
기존 구성 레코더 이름 식별
특정 리전의 기존 구성 레코더를 식별하려면 describe-configuration-recorders 명령을 실행합니다.
$aws configservice describe-configuration-recorders --region RegionID
참고: RegionID을 해당 리전으로 바꾸십시오.
출력을 검토합니다. 기존 구성 레코더 이름이 출력의 name 옆에 나열됩니다.
기존 구성 레코더 삭제
기존 구성 레코더를 삭제하려면 delete-configuration-recorder 명령을 실행합니다.
$aws configservice delete-configuration-recorder --configuration-recorder-name RecorderName --region RegionID
참고: RecorderName을 구성 레코더 이름으로 바꾸고 RegionID를 리전 ID로 바꾸십시오. 레코더를 성공적으로 삭제한 경우 delete-configuration-recorder 명령은 출력을 반환하지 않습니다.
API 호출을 사용하여 레코더 시작 및 중지
구성 레코더를 시작하려면 다음 명령을 실행합니다.
$aws configservice start-configuration-recorder --configuration-recorder-name RecorderName
참고: RecorderName을 구성 레코더의 이름으로 바꾸십시오.
구성 레코더를 중지하려면 다음 명령을 실행합니다.
$aws configservice stop-configuration-recorder --configuration-recorder-name RecorderName
참고: RecorderName을 구성 레코더의 이름으로 바꾸십시오.
CloudFormation에서 구성 레코더 식별 및 삭제
CloudFormation StackSet 템플릿을 사용하여 AWS Config를 활성화하는 경우, 다음 작업을 완료하여 구성 레코더를 식별하고 삭제하십시오.
구성 레코더를 식별하고 삭제하는 코드 로직을 작성하려면 AWS Lambda 지원 사용자 지정 리소스를 사용하여 다음을 수행하십시오.
구성 레코더를 삭제한 후 사용자 지정 리소스에 대해 cfn-response 모듈을 사용하여 새 구성 레코더를 만들 수 있습니다. 그런 다음, StartConfigurationRecorder API를 실행하여 레코더를 시작할 수 있습니다.
관련 정보
Python, AWS Lambda 및 crhelper를 사용한 CloudFormation 사용자 지정 리소스 생성