AWS Key Management Service(AWS KMS) 키 정책 오류를 해결하려고 합니다.
간략한 설명
AWS KMS 키 정책을 올바르게 수정하지 않은 경우 PutKeyPolicy AWS KMS API 작업이 실패합니다. 그러면 다음 오류 메시지 중 하나가 표시될 수 있습니다.
"PutKeyPolicy request failed MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals."
"Policy contains a statement with one or more invalid principals"
이 문제를 해결하려면 다음 해결 작업 중 하나 이상을 완료하십시오.
해결 방법
유효한 JSON 구문 사용
유효한 JSON 정책 문서 리소스 유형을 사용하는지 확인합니다. JSON 구문 오류를 해결하려면 JSON 정책 문서를 JSON 형식 지정 도구에 붙여넣으십시오. 불필요한 문자를 제거한 다음, 누락된 문자를 포함합니다. 중복된 JSON 정책 요소와 보안 식별(SID) 값을 제거해야 합니다.
주체 요소 지정
JSON 정책의 주체 요소에서 AWS Identity and Access Management(IAM) ID와 유효한 Amazon 리소스 이름(ARN)을 만들었는지 확인합니다.
키 정책은 AWS KMS 키가 있는 AWS 리전에서만 적용됩니다. AWS KMS 키 정책에 다른 AWS 계정 또는 주체의 권한이 있는 경우 키 정책이 적용되지 않을 수 있습니다. 키 정책에 올바른 리전의 AWS KMS 키가 포함되어 있는지 확인하십시오.
주체 요소를 IAM ID로 지정해야 합니다. AWS 서비스를 주체로 지정한 경우 AWS KMS에서 해당 서비스를 지원하는지 확인하십시오. 조건 키를 지원하고 전달 액세스 세션을 통해 요청을 보내는 AWS 서비스의 경우 kms:ViaService AWS KMS 조건 키를 사용합니다.
AWS KMS에 직접 호출을 수행하는 AWS 서비스에는 주체 요소에 서비스 주체가 있어야 합니다. 사용하는 AWS 서비스가 AWS KMS를 직접 호출하는지 확인하십시오.
리전 옵트인
AWS KMS 키를 공유하는 계정은 수신자 계정의 리전을 옵트인해야 합니다. 수신자 계정에서 리전을 활성화했는지 확인하십시오. AWS 계정과 수신자 계정에서 활성화한 리전에서 다른 AWS KMS 키를 공유할 수도 있습니다.