Como posso resolver o erro de política de chave do AWS KMS “Policy contains a statement with one or more invalid principals” (A política contém uma declaração com uma ou mais entidades principais inválidas)?

Data da última atualização: 22/03/2022

Tentei modificar minha política de chaves do AWS Key Management Service (AWS KMS) e recebi um erro no Console de Gerenciamento da AWS semelhante ao seguinte:

"PutKeyPolicy request failed

MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals" (Falha na soilcitação de PutKeyPolicy: MalformedPolicyDocumentException - A política contém uma instrução com uma ou mais entidades principais inválidas)

A política de chaves do AWS KMS não contém o nome do recurso da Amazon (ARN) e contém uma entidade principal com um ID exclusivo semelhante a AIDACKCEVSQ6C2EXAMPLE.

Breve descrição

A solicitação PutKeyPolicy da chamada de API do AWS KMS falha quando a solicitação foi rejeitada porque a política de chaves especificada não está sintática ou semanticamente correta.

Resolução

Sintaxe JSON

Confirme se o tipo de recurso do documento de política JSON é válido. Para solucionar erros de sintaxe JSON, cole o documento de política JSON em um JSON Beautifier para verificar a formatação. Remova todos os caracteres desnecessários e adicione os caracteres ausentes. Verifique se há elementos de política JSON duplicados e valores SID duplicados e remova-os.

Entidades principais inválidas

Verifique o elemento de entidade principal na política JSON e verifique se a entidade do AWS Identity and Access Management (IAM) existe. Certifique-se de que a identidade do IAM esteja especificada corretamente com um ARN válido.

Observação: não é possível usar um caractere curinga na parte do ARN que especifica o tipo de recurso.

Ao criar identidades do IAM, você dá a elas nomes fáceis de lembrar, como Bob ou Desenvolvedores. Por motivos de segurança, essas entidades do IAM também recebem um ID exclusivo, como AIDACKCEVSQ6C2EXAMPLE.

Por exemplo, você tem um usuário do IAM chamado Alice especificado em uma política de chaves do AWS KMS. Então, Alice deixa a empresa. Em seguida, uma nova usuária chamada Alice é contratada e um usuário do IAM é criado com o mesmo nome. IDs exclusivos garantem que a nova Alice não possa herdar permissões que foram concedidas à antiga Alice.

Remova os IDs exclusivos órfãos da política de chaves. Para obter mais informações, veja como usar políticas de chaves no AWS KMS.

Observação: se a política de chaves do AWS KMS tiver permissões para outra conta ou entidade principal, a política de chaves só será efetiva na região da AWS que contém a chave do KMS. Para obter mais informações, consulte Visão geral das políticas de chave.

Serviços da AWS inválidos

Se um serviço da AWS estiver listado como o entidade principal, verifique se o serviço é compatível com o AWS KMS. A entidade principal deve ser a entidade do IAM e kms:ViaService deve ser usado para os serviços da AWS que fazem as solicitações em nome da entidade do IAM.

Verifique se o serviço da AWS faz chamadas diretas para o AWS KMS. Nem todos os serviços da AWS fazem chamadas diretamente para o AWS KMS, como o Amazon Elastic Compute Cloud (Amazon EC2). Em vez disso, os serviços da AWS, como o Amazon EC2, fazem chamadas em nome de uma entidade principal na conta da AWS. Os serviços da AWS que fazem chamadas diretas para o AWS KMS, como o Amazon Simple Notification Service (Amazon SNS), devem ter a entidade principal de serviço no elemento de entidade principal.

Para obter mais informações, consulte Serviços que oferecem suporte à chave de condição kms:ViaService.

Opção pela região da AWS

As chaves do AWS KMS compartilhadas com uma conta da AWS que não optou pela região da AWS em que a chave está localizada na conta do destinatário são inválidas para essa região.

Certifique-se de que a região da AWS esteja habilitada na conta do destinatário ou compartilhe outra chave do AWS KMS em uma região habilitada na conta da AWS e na conta do destinatário. Para obter mais informações, consulte Managing AWS Regions (Gerenciar regiões da AWS).


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?