AWS KMS Decrypt API에 대한 CloudTrail 로그의 AWS Config로부터 "AccessDenied" 오류를 수신하는 이유는 무엇이며 이러한 알림을 방지하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 1월 31일

AWS Config 서비스와 관련된 AWS Key Management Service(AWS KMS) Decrypt API에 대한 AWS CloudTrail "AccessDenied" 오류를 수신하는 이유는 무엇입니까?

간략한 설명

AWS Config 구성 레코더는 AWS Lambda 함수 리소스 유형을 포함하여 AWS Config가 실행 중인 동일한 리전에서 지원되는 모든 리소스 유형에 대한 변경 사항을 기록합니다. 그러나 AWS Config가 AWS KMS 고객 관리형 키(CMK)로 암호화된 환경 변수를 사용하여 Lambda 함수에 대한 구성 변경을 추적할 때는 CMK에 액세스하여 이러한 변수를 해독해야 합니다.

참고: 구성 레코더는 관련 환경 변수를 제외하고 Lambda 함수에 대한 모든 변경 사항을 추적합니다.

구성 레코더로 할당된 AWS Identity and Access Management(IAM) 역할에는 이러한 Lambda 함수에 대한 읽기 전용 권한이 있습니다.

“lambda:GetFunction”
“lambda:GetPolicy”
“lambda:ListFunctions”
“lambda:GetAlias”
“lambda:ListAliases”

AWS Config는 암호화 작업에 CMK를 사용할 권한이 없으므로 Decrypt API를 호출하지 못합니다. AWS CloudTrail 로그의 "AccessDenied" 오류 로그.

Amazon CloudWatch 로그 그룹으로 로그를 전송하도록 CloudTrail 추적을 구성하고 Unauthorized 또는 AccessDenied API 호출에 대해 CloudWatch 경보를 구성한 경우 "AccessDenied" 오류가 발생합니다. 자세한 내용은 예: 권한 부여 실패를 참조하십시오.

​해결 방법

CloudWatch 로그 필터 패턴을 사용하여 AWS Config에서 호출한 Decrypt API와 관련된 "AccessDenied" 알림을 필터링할 수 있습니다.

1.    CloudWatch console을 열고 Log groups를 선택합니다.

2.    콘텐츠 창의 Metric Filter 열에서 지표 필터를 선택합니다.

3.    권한 부여 API 호출 실패에 사용되는 필터 이름의 편집 아이콘을 선택합니다.

4.    Filter Pattern에서 다음 필터를 제거합니다.

{($.errorCode = "*UnauthorizedOperation") || ($.errorCode = "AccessDenied*")}

5.    Filter Pattern에서 다음 예제 구문을 복사하여 붙여넣고 Assign Metric을 선택한 다음 Save Filter를 선택합니다.

{($.errorCode = "*UnauthorizedOperation" || $.errorCode = "AccessDenied*") && ($.eventName != "Decrypt" || ($.userIdentity.invokedBy != "config.amazonaws.com"))}

CloudWatch 경보 모니터링이 지워지고 AWS Config에서 호출한 Decrypt API와 관련된 "AccessDenied" 오류에 대한 알림을 더 이상 수신하지 않습니다.

참고: "AccessDenied" 오류 로그는 계속 CloudTrail 로그에 저장되며 무시해도 됩니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?