Como posso resolver o erro de política de chaves do AWS KMS "Policy contains a statement with one or more invalid principals"?

3 minuto de leitura
0

Tentei modificar minha política de chave do AWS Key Management Service (AWS KMS). No entanto, recebi um erro no Console de Gerenciamento da AWS semelhante a "PutKeyPolicy request failed MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals".

Breve descrição

A solicitação de chamada da API PutKeyPolicy do AWS KMS falha quando a política de chaves especificada não está sintática ou semanticamente correta. A política de chaves do AWS KMS não contém o ARN. Em vez disso, ela contém uma entidade principal com uma ID exclusiva semelhante a AIDACKCEVSQ6C2EXAMPLE.

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 uma ferramenta de formatação JSON, como o JSON Beautifier no site do JSON Beautifier. Remova os caracteres desnecessários e adicione os caracteres que faltam. Remova elementos de política JSON e valores de SID duplicados.

Elementos de entidades principais

No elemento de entidade principal da política JSON, confirme se a identidade do AWS Identity and Access Management (IAM) existe e se tem um ARN válido.

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

Quando você cria identidades do IAM, nomes amigáveis são usados, como Bob ou Desenvolvedores. Para fins de segurança, essas identidades do IAM também recebem um identificador exclusivo, como AIDACKCEVSQ6C2EXAMPLE. Remova IDs exclusivas órfãs da política de chave. Para obter mais informações, consulte Key policies in AWS KMS.

Observação: se a política de chaves do AWS KMS tiver permissões para outra conta ou entidade principal, talvez ela não esteja em vigor. A política de chave está em vigor somente na região da AWS que contém a chave do AWS KMS.

Serviços da AWS

Se um serviço da AWS estiver listado como entidade principal, certifique-se de que o AWS KMS ofereça suporte a esse serviço. A entidade principal deve ser a identidade do IAM. Além disso, você deve usar a chave de condição kms:ViaService para os serviços da AWS que fazem as solicitações para a identidade do IAM.

Como nem todos os serviços da AWS chamam diretamente o AWS KMS, verifique se o serviço da AWS que você está usando chama diretamente o AWS KMS. Por exemplo, um serviço da AWS, como o Amazon Elastic Compute Cloud (Amazon EC2), faz chamadas para uma entidade principal na conta. Os serviços da AWS que fazem chamadas diretas para o AWS KMS devem ter a entidade principal do serviço no elemento Principal.

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

Optar por participar da região da AWS

A conta com a qual você compartilha as chaves do AWS KMS deve optar por participar da região da AWS dentro da conta do destinatário. Caso contrário, as chaves do KMS não serão válidas nessa região.

Certifique-se de que a região esteja ativada na conta do destinatário. Você também pode compartilhar outra chave do AWS KMS em uma região que está ativada na conta da AWS e na conta do destinatário. Para obter mais informações, consulte Specify which AWS Regions your account can use.

Informações relacionadas

Changing a key policy

AWS OFICIAL
AWS OFICIALAtualizada há um ano