“정책에 유효하지 않은 보안 주체가 하나 이상 있습니다."와 같은 AWS KMS 키 정책 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

AWS Key Management Service(AWS KMS) 키 정책을 수정하고자 합니다. 그런데 AWS Management Console에서 "PutKeyPolicy request failed MalformedPolicyDocumentException - 정책에 유효하지 않은 보안 주체가 하나 이상 있습니다."와 같은 오류가 발생했습니다.

간략한 설명

지정한 키 정책이 구문상 또는 의미상 올바르지 않으면 PutKeyPolicy AWS KMS API 호출 요청이 실패합니다. AWS KMS 키 정책에는 ARN이 포함되어 있지 않습니다. 대신, 고유 ID(예: AIDACKCEVSQ6C2EXAMPLE)가 있는 보안 주체가 포함되어 있습니다.

해결 방법

JSON 구문

JSON 정책 문서 리소스 유형이 유효한지 확인하세요. JSON 구문 오류를 해결하려면 JSON 정책 문서를 JSON Beautifier 웹 사이트의 JSON Beautifier와 같은 JSON 형식 지정 도구에 붙여넣으세요. 불필요한 문자를 모두 제거하고 누락된 문자를 추가하세요. 중복된 JSON 정책 요소와 SID 값을 제거하세요.

주요 요소:

JSON 정책의 보안 주체 요소에서 AWS Identity and Access Management(IAM) ID가 있으며 유효한 ARN이 있는지 확인하세요.

참고: 리소스 유형을 지정하는 ARN 부분에 와일드카드를 사용할 수 없습니다.

IAM ID를 생성할 때 Bob이나 Developers와 같이 친숙한 이름을 사용합니다. 보안을 위해 IAM ID에 고유 식별자(예: AIDACKCEVSQ6C2EXAMPLE)를 할당합니다. 키 정책에서 분리된 고유 ID를 제거하세요. 자세한 내용은 AWS KMS의 키 정책을 참고하세요.

**참고:**AWS KMS 키 정책에 다른 계정이나 보안 주체의 권한이 있는 경우 키 정책이 적용되지 않을 수 있습니다. 키 정책은 AWS KMS 키가 포함된 AWS 리전에서만 유효합니다.

AWS 서비스

AWS 서비스가 보안 주체 목록에 있는 경우 AWS KMS에서 해당 서비스를 지원하는지 확인하세요. 보안 주체는 IAM ID여야 합니다. 또한 IAM ID를 요청하는 AWS 서비스에는 kms:ViaService 조건 키를 사용해야 합니다.

AWS KMS를 직접 호출하지 않는 AWS 서비스도 있습니다. 사용 중인 AWS 서비스에서 AWS KMS를 직접 호출하는지 확인하세요. 예를 들어, Amazon Elastic Compute Cloud(Amazon EC2)와 같은 AWS 서비스는 계정의 보안 주체를 호출합니다. AWS KMS에 직접 호출을 하는 AWS 서비스에는 보안 주체 요소서비스 보안 주체가 있어야 합니다.

자세한 내용은 kms:ViaService 서비스 조건 키를 지원하는 서비스를 참고하세요.

옵트인 AWS 리전

AWS KMS 키를 공유하는 계정은 수신자 계정 내의 AWS 리전을 옵트인해야 합니다. 그래야 KMS 키가 해당 지역에서 유효하게 됩니다.

수신자 계정에서 지역이 활성화되어 있는지 확인하세요. AWS 계정과 수신자 계정에서 활성화된 리전에서 다른 AWS KMS 키를 공유할 수도 있습니다. 자세한 내용은 계정에서 사용할 수 있는 AWS 지역 지정을 참고하세요.

관련 정보

키 정책 변경

AWS 공식
AWS 공식업데이트됨 일 년 전