조직 config 규칙을 만들거나 삭제할 수 없는 이유는 무엇입니까?

최종 업데이트 날짜: 2022년 8월 11일

AWS Organizations에 대한 AWS Config 규칙을 생성하거나 삭제하려고 하면 CREATE_FAILED 또는 DELETE_FAILED 오류가 발생합니다. 조직 config 규칙 관련 문제를 해결하려면 어떻게 해야 합니까?

해결 방법

다양한 문제로 인해 권한, 비활성 상태의 멤버 계정 또는 누락된 구성 레코더를 포함하여 조직 config 규칙이 작동하지 않을 수 있습니다.

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 가장 최신 버전을 사용하고 있는지 확인하세요.

조직 config 규칙 오류를 해결하려면 먼저 다음 명령을 실행하여 멤버 계정 규칙 실패 및 성공 상태 세부 정보를 가져옵니다. 그런 다음 your-rule-name을 조직 config 규칙 이름으로 바꿉니다. 이 명령은 규칙이 실패한 특정 멤버 계정을 식별합니다.

aws configservice get-organization-config-rule-detailed-status --organization-config-rule-name your-rule-name

출력 ErrorCodeErrorMessage를 검토하고 다음 문제 해결 단계를 수행합니다.

  • 다음 AWS CLI 명령을 실행하거나 Organizations 콘솔을 사용하여 모든 멤버 계정의 상태가 활성인지 확인합니다.
aws organizations list-accounts --query 'Accounts[*].[Id, Status]' --output table
  • 각 멤버 계정에 대해 AWS Config가 설정되어 있는지 확인합니다. 콘솔, AWS CLI 또는 AWS CloudFormation을 사용하여 특정 멤버 계정에 대해 수동으로 AWS Config를 설정할 수 있습니다. 모든 멤버 계정에 대해 AWS Config가 설정된 후 규칙을 다시 배포합니다.
  • AWS CloudTrail 콘솔을 연 다음 탐색 창에서 [이벤트 기록(Event history)]을 선택합니다. 로그를 필터링하려면 드롭다운 목록에서 이벤트 이름(Event name)을 선택한 다음 검색 필드에 PutOrganizationConfigRule 또는 DeleteOrganizationConfigRule을 입력합니다. OrganizationAccessDeniedException 오류에 대해 필터링된 로그 결과를 검토합니다.
  • Organizations 관리 계정 또는 위임된 관리자 멤버 계정에서 PutOrganizationConfigRule API 또는 DeleteOrganizationConfigRule API를 호출하고 있는지 확인합니다. 관리 계정에서 다음 명령을 실행하여 위임된 관리자 멤버 계정을 식별합니다.
aws organizations list-delegated-administrators --service-principal=config-multiaccountsetup.amazonaws.com
  • OrganizationAccessDeniedException 오류가 발생하면 필요한 권한이 있는지 확인합니다. AWS Config의 AWS Identity and Access Management(IAM) 역할에는 조직 config 규칙을 생성하고 삭제할 수 있는 PutConfigRule, PutOrganizationConfigRuleDeleteOrganizationConfigRule 권한이 포함되어야 합니다.
  • ResourceInUseException 오류가 발생하면 오류 메시지를 검토하여 원인을 확인합니다. 오류 메시지에 수정 작업이 규칙과 연결되어 있다고 표시되면 수정 작업을 확인합니다. 오류 메시지에 규칙 상태가 CREATE_SUCCESSFUL이 아니라고 표시되면 AWS Config 멤버 계정 IAM 역할에 DeleteConfigRule 권한이 포함되어 있는지 확인합니다.

사용자 지정 조직 config 규칙 생성

Lambda 함수 리소스 정책에서 AWS Config 서비스 보안 주체가 이를 호출하는 것을 허용하지 않는 경우 다음과 같이 add-permission 명령을 실행하여 권한을 제공합니다. function-name을 Lambda 함수 이름으로, 리전을 AWS 리전으로, source-account를 관리 계정 ID로 바꿉니다.

aws lambda add-permission --function-name --region --action "lambda:InvokeFunction" --principal config.amazonaws.com --source-account --statement-id Allow

참고: 조직의 여러 멤버 계정에 권한을 부여하려면 각 계정에 대해 명령을 실행해야 합니다. source-account를 각 멤버 계정 ID로 바꿉니다.