¿Cómo puedo resolver el error de la política de claves de AWS KMS “Policy contains a statement with one or more invalid principals” (La política contiene una declaración con una o más entidades principales no válidas)?

Última actualización: 22/03/2022

Intenté modificar mi política de claves de AWS Key Management Service (AWS KMS) y recibí un error en la consola de administración de AWS similar al siguiente:

“PutKeyPolicy request failed (La solicitud PutKeyPolicy presentó error)

MalformedPolicyDocumentException: Policy contains a statement with one or more invalid principals” (MalformedPolicyDocumentException: la política contiene una declaración con una o más entidades principales no válidas)

La política de claves de AWS KMS no contiene el nombre de recurso de Amazon (ARN) y contiene una entidad principal con un ID único similar a AIDACKCEVSQ6C2EXAMPLE.

Descripción breve

La solicitud PutKeyPolicy de la llamada a la API de AWS KMS presenta error cuando se rechaza la solicitud porque la política de claves especificada no es correcta desde el punto de vista sintáctico o semántico.

Resolución

Sintaxis de JSON

Confirme que el tipo de recurso del documento de política JSON es válido. Para solucionar los errores de sintaxis de JSON, pegue el documento de política JSON en un JSON Beautifier para revisar el formato. Elimine los caracteres innecesarios y agregue los que falten. Compruebe si hay elementos de política JSON duplicados y valores de SID duplicados, y elimínelos.

Entidades principales no válidas

Compruebe cuál es el elemento principal en la política JSON y asegúrese de que exista la entidad de AWS Identity and Access Management (IAM). Asegúrese de que se especifique la identidad de IAM de forma correcta con un ARN válido.

Nota: No se puede utilizar un comodín en la parte del ARN que especifica el tipo de recurso.

Cuando crea identidades de IAM, les asigna nombres fáciles de recordar, como Bob o Desarrolladores. Por motivos de seguridad, a estas entidades de IAM también se les asigna un ID único, como AIDACKCEVSQ6C2EXAMPLE.

Por ejemplo, tiene un usuario de IAM llamado Alice que se especificó en una política de claves de AWS KMS. Luego, Alice abandona la empresa. A continuación, se contrata a un usuario nuevo llamado Alice y se crea un usuario de IAM con el mismo nombre. Los ID únicos garantizan la imposibilidad de que la nueva Alice herede los permisos concedidos a la antigua Alice.

Elimine los ID únicos huérfanos de la política de claves. Para obtener más información, consulte Uso de políticas de claves en AWS KMS.

Nota: Si la política de claves de AWS KMS tiene permisos para otra cuenta o entidad principal, la política de claves solo estará vigente en la región de AWS que contenga la clave de KMS. Para obtener más información, consulte Información general de las políticas de claves.

Servicios de AWS no válidos

Si un servicio de AWS aparece como la entidad principal, asegúrese de que el servicio sea compatible con AWS KMS. La entidad principal debería ser la entidad de IAM, y kms:ViaService debería utilizarse para los servicios de AWS que realizan las solicitudes en nombre de la entidad de IAM.

Compruebe si el servicio de AWS realiza llamadas directas a AWS KMS. No todos los servicios de AWS realizan llamadas directas a AWS KMS, como Amazon Elastic Compute Cloud (Amazon EC2). En cambio, los servicios de AWS como Amazon EC2 realizan llamadas en nombre de una entidad principal en la cuenta de AWS. Los servicios de AWS que realizan llamadas directas a AWS KMS, como Amazon Simple Notification Service (Amazon SNS), deben tener la entidad principal del servicio en el elemento principal.

Para obtener más información, consulte Servicios que admiten la clave de condición kms:ViaService.

Incorporación a una región de AWS

Las claves de AWS KMS compartidas con una cuenta de AWS que no se ha incorporado a la región de AWS en la que se encuentra la clave dentro de la cuenta destinataria no son válidas para esa región.

Asegúrese de que la región de AWS esté habilitada en la cuenta destinataria o comparta otra clave de AWS KMS en una región que esté habilitada en la cuenta de AWS y la cuenta destinataria. Para obtener más información, consulte Administración de regiones de AWS.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?