Práticas recomendadas para políticas do IAM - AWS Key Management Service

Práticas recomendadas para políticas do IAM

Proteger o acesso a AWS KMS keys, é fundamental para a segurança de todos os seus recursos da AWS. Chaves do KMS são usadas para proteger muitos dos recursos mais confidenciais da sua Conta da AWS. Aproveite o tempo para projetar as políticas de chave, as políticas do IAM, as concessões e políticas de endpoint da VPC que controlam o acesso às chaves do KMS.

Em instruções de políticas do IAM que controlam o acesso a chaves do KMS, use o princípio de menor privilégio. Conceda às entidades principais do IAM somente as permissões de que eles precisam somente nas chaves do KMS que elas devem usar ou gerenciar.

Usar políticas de chaves

Sempre que possível, conceda permissões em políticas de chaves que afetem uma chave do KMS, em vez de em uma política do IAM que possa ser aplicada a muitas chaves do KMS, incluindo aquelas em outras Contas da AWS. Isso é particularmente importante para permissões confidenciais como kms:PutKeyPolicy e kms:ScheduleKeyDeletion, mas também para operações de criptografia que determinam como seus dados são protegidos.

Limitar a permissão CreateKey

Conceda permissão para criar chaves (kms:CreateKey) somente às entidades principais que precisam delas. Entidades principais que criam uma chave do KMS também definem sua política de chave, para que possam conceder a si mesmas e a outros permissão para usar e gerenciar as chaves do KMS criadas. Ao conceder essa permissão, considere limitá-la usando condições de política. Por exemplo, é possível usar a condição kms:KeySpec para limitar a permissão a chaves do KMS de criptografia simétrica.

Especificar chaves do KMS em uma política do IAM

Como prática recomendada, especifique o ARN da chave de cada chave do KMS à qual a permissão se aplica no elemento Resource da instrução de política. Esta prática restringe a permissão a chaves do KMS necessárias para a entidade principal. Por exemplo, esse elemento Resource lista apenas as chaves do KMS que a entidade principal precisa usar.

"Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ]

Quando especificar chaves do KMS for impraticável, use um valor Resource que limite o acesso a chaves do KMS em uma Conta da AWS e região confiáveis, como arn:aws:kms:region:account:key/*. Ou limite o acesso a chaves do KMS em todas as regiões (*) de uma Conta da AWS confiável, como arn:aws:kms:*:account:key/*.

Não é possível usar um ID de chave, um nome do alias ou ARN de alias para representar uma chave do KMS no campo Resource de uma política do IAM. Se você especificar um ARN de alias, a política se aplicará ao alias, e não à chave do KMS. Para obter informações gerais sobre políticas do IAM para aliases, consulte Controlar o acesso a aliases

Evite "Resource": "*" em uma política do política do IAM

Use caracteres curinga (*) com critério. Em uma política de chaves, o caractere curinga no elemento Resource representa a chave do KMS à qual a política de chaves está associada. No entanto, em uma política do IAM, um caractere curinga sozinho no elemento "Resource": "*" (Contas da AWS) aplica as permissões a todas as chaves do KMS em todas as Resource que a conta da entidade principal tem permissão para usar. Isso pode incluir chaves do KMS em outras Contas da AWS, bem como nas chaves do KMS na conta da entidade principal.

Por exemplo, para usar uma chave do KMS em outra Conta da AWS, uma entidade principal precisa de permissão da política de chaves da chave do KMS na conta externa e de uma política do IAM em sua própria conta. Suponha que uma conta arbitrária concedeu permissão à sua Conta da AWSkms:Decrypt em suas . Em caso afirmativo, uma política do IAM na sua conta que dê acesso uma função com permissão kms:Decrypt em todas as chaves do KMS ("Resource": "*") atenderá à parte do IAM do requisito. Como resultado, as entidades principais que podem assumir essa função agora podem descriptografar textos cifrados usando a chave do KMS na conta não confiável. As entradas para suas operações aparecem nos logs do CloudTrail das duas contas.

Especificamente, evite usar "Resource": "*" em uma declaração de política que permita as operações de API a seguir. Essas operações podem ser chamadas nas chaves do KMS em outras contas da Contas da AWS.

Quando usar "Resource": "*"

Em uma política do IAM, use um caractere curinga no elemento Resource somente para permissões que o exijam. Somente as permissões a seguir exigem o elemento "Resource": "*".

nota

As permissões para operações de alias (kms:CreateAlias, kms:UpdateAlias, kms:DeleteAlias) devem ser associadas ao alias e à chave do KMS. É possível usar "Resource": "*" em uma política do IAM para representar os aliases e as chaves do KMS, ou especificar os aliases e as chaves do KMS no elemento Resource. Para ver exemplos, consulte Controlar o acesso a aliases.

 

Os exemplos deste tópico fornecem mais informações e orientações para criar políticas do IAM para chaves do KMS. Para obter orientações gerais sobre as práticas recomendadas do AWS KMS, consulte Práticas recomendadas do AWS Key Management Service (PDF). Para práticas recomendadas do IAM para todos os recursos do AWS, consulte Melhores práticas de segurança no IAM no IAM User Guide.