Controlar o acesso a chaves de várias Regiões - AWS Key Management Service

Controlar o acesso a chaves de várias Regiões

Você pode usar chaves de várias regiões em cenários de conformidade, recuperação de desastres e backup que seriam mais complexos com chaves de uma única região. No entanto, como as propriedades de segurança das chaves de várias regiões são significativamente diferentes das de chaves de uma única região, convém ter cuidado ao autorizar a criação, o gerenciamento e o uso de chaves de várias regiões.

nota

Instruções de políticas do IAM existentes com caracteres curinga no campo Resource agora aplicam-se a chaves de região única e de várias regiões. Para restringi-las a chaves do KMS de região única ou chaves de várias regiões, use a chave de condição kms:MultiRegion.

Use suas ferramentas de autorização para impedir a criação e o uso de chaves de várias regiões em qualquer cenário em que uma única região seja suficiente. Permita que as entidades principais repliquem uma chave de várias regiões apenas nas Regiões da AWS que precisam dessa chave. Dê permissão para chaves de várias regiões apenas às entidades principais que precisam delas e apenas para tarefas necessárias.

Você pode usar políticas de chaves, políticas do IAM e concessões para permitir que as entidades principais do IAM gerenciem e usem chaves de várias regiões na sua Conta da AWS . Cada chave de várias regiões é um recurso independente com um ARN de chave exclusivo e uma política de chaves. Você precisa estabelecer e manter uma política de chaves para cada chave e certificar-se de que as políticas do IAM novas e existentes implementem sua estratégia de autorização.

Noções básicas de autorização para chaves de várias regiões

Ao projetar políticas de chaves e políticas do IAM para chaves de várias regiões, considere os seguintes princípios.

  • Política de chaves — Cada chave de várias regiões é um recurso de chave do KMS independente com sua própria política de chaves. Você pode aplicar a mesma política de chaves ou uma política de chaves diferente a cada chave no conjunto de chaves de várias regiões relacionadas. Políticas de chaves não são propriedades compartilhadas de chaves de várias regiões. O AWS KMS não copia nem sincroniza instruções de chaves entre chaves de várias regiões relacionadas.

    Quando você cria uma chave de réplica no console do AWS KMS, este exibe a política de chaves atual da chave primária por questão de conveniência. É possível usar essa política de chaves, editá-la ou excluí-la e substituí-la. Porém, mesmo que você aceite a política de chaves primária sem alterações, o AWS KMS não sincroniza as políticas. Por exemplo, se você alterar a política de chaves da chave primária, a política de chaves da chave de réplica permanecerá igual.

  • Política de chaves padrão — Ao criar chaves de várias regiões usando as operações CreateKey e ReplicateKey, a política de chaves padrão é aplicada, a menos que você especifique uma política de chaves na solicitação. Essa é a mesma política de chave padrão aplicada a chaves de região única.

  • Políticas do IAM — Assim como acontece com todas as chaves do KMS, você pode usar políticas do IAM para controlar o acesso a chaves de várias regiões somente quando a política de chaves permite. Políticas do IAM aplicam-se a todas as Regiões da AWS por padrão. Porém, você pode usar chaves de condição, como aws:RequestedRegion, para limitar permissões a uma região específica.

    Para criar chaves primárias e de réplica, as entidades principais devem ter a permissão kms:CreateKey em uma política do IAM aplicável à região na qual a chave é criada.

  • Concessões — As concessões do AWS KMS são regionais. Cada concessão dá permissões para uma chave do KMS. É possível usar concessões para dar permissões para uma chave primária ou chave de réplica de várias regiões. Porém, você não pode usar uma única concessão para dar permissões para várias chaves do KMS, mesmo que elas sejam chaves de várias regiões relacionadas.

  • ARN de chave — Cada chave de várias regiões tem um ARN de chave. Os ARNs de chaves de várias regiões relacionadas têm a mesma partição, conta e ID de chave, mas regiões diferentes.

    Para aplicar uma instrução de política do IAM a uma chave de várias regiões específica, use seu ARN de chave ou um padrão de ARN de chave que inclua a região. Para aplicar uma instrução de política do IAM a todas as chaves de várias regiões relacionadas, use um caractere curinga (*) no elemento Region do ARN, como mostra o exemplo abaixo.

    { "Effect": "Allow", "Action": [ "kms:Describe*", "kms:List*" ], "Resource": { "arn:aws:kms:*::111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab" } }

    Para aplicar uma instrução de política a todas as chaves de várias regiões na sua Conta da AWS , você pode usar a condição de política kms:MultiRegion ou um padrão de ID de chave que inclua o prefixo mrk- distinto.

  • Função vinculada ao serviço — As entidades principais que criam chaves primárias de várias regiões devem ter a permissão iam:CreateServiceLinkedRole.

    Para sincronizar as propriedades compartilhadas de chaves de várias regiões relacionadas, o AWS KMS pressupõe uma função vinculada ao serviço do IAM. O AWS KMS cria a função vinculada ao serviço na Conta da AWS sempre que você cria uma chave primária de várias regiões. (Se a função existir, o AWS KMS a recriará, o que não causa nenhum problema.) A função é válida em todas as regiões. Para permitir que o AWS KMS crie (ou recrie) a função vinculada ao serviço, as entidades principais que criam chaves primárias de várias regiões devem ter a permissão iam:CreateServiceLinkedRole.

Autorizar administradores e usuários de chave de várias regiões

As entidades principais que criam e gerenciam chaves de várias regiões precisam das seguintes permissões nas regiões primária e de réplica:

  • kms:CreateKey

  • kms:ReplicateKey

  • kms:UpdatePrimaryRegion

  • iam:CreateServiceLinkedRole

Criar uma chave primária

Para criar uma chave primária de várias regiões, a entidade principal precisa das permissões kms:CreateKey e iam:CreateServiceLinkedRole em uma política do IAM que seja efetiva na região da chave primária. As entidades principais que têm essas permissões podem criar chaves de região única e de várias regiões, a menos que você restrinja suas permissões.

A permissão iam:CreateServiceLinkedRole possibilita que o AWS KMS crie a função AWSServiceRoleForKeyManagementServiceMultiRegionKeys para sincronizar propriedades compartilhadas de chaves de várias regiões relacionadas.

Por exemplo, essa política do IAM permite que uma entidade principal crie qualquer tipo de chave do KMS.

{ "Version": "2012-10-17", "Statement":{ "Action": [ "kms:CreateKey", "iam:CreateServiceLinkedRole" ], "Effect":"Allow", "Resource":"*" } }

Para permitir ou negar a permissão para criar chaves primárias de várias regiões, use a chave de condição kms:MultiRegion. Os valores válidos são true (chave de várias regiões) ou false (chave de região única). Por exemplo, a instrução de política do IAM a seguir usa uma ação Deny com a chave de condição kms:MultiRegion para impedir que as entidades principais criem chaves de várias regiões.

{ "Version": "2012-10-17", "Statement":{ "Action":"kms:CreateKey", "Effect":"Deny", "Resource":"*", "Condition": { "Bool": "kms:MultiRegion": true } } }

Replicação de chaves

Para criar uma chave de réplica de várias regiões, a entidade principal precisará das seguintes permissões:

  • Permissão kms:ReplicateKey na política de chave da chave primária.

  • Permissão kms:CreateKey em uma política do IAM que seja efetiva na região da chave de réplica.

Tenha cuidado ao conceder essas permissões. Elas permitem que as entidades principais criem chaves do KMS e as políticas de chaves que autorizam seu uso. A permissão kms:ReplicateKey também autoriza a transferência de material chave através dos limites da região no AWS KMS.

Para restringir as Regiões da AWS em que uma chave de várias regiões pode ser replicada, use a chave de condição kms:ReplicaRegion. Ela limita apenas a permissão kms:ReplicateKey. De outra forma, ela não terá efeito. Por exemplo, a política de chaves a seguir permite que a entidade principal replique essa chave primária, mas somente nas regiões especificadas.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:ReplicateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ReplicaRegion": [ "us-east-1", "eu-west-3", "ap-southeast-2" ] } } }

Atualizar a região primária

As entidades principais autorizadas podem converter uma chave de réplica em uma chave primária, o que transforma a chave primária anterior em uma réplica. Essa ação é conhecida como atualização da região primária. Para atualizar a região primária, a entidade principal precisa da permissão kms:UpdatePrimaryRegion em ambas as regiões. Você pode fornecer essas permissões em uma política de chaves ou política do IAM.

  • kms:UpdatePrimaryRegion na chave primária. Essa permissão deve ser efetiva na região da chave primária.

  • kms:UpdatePrimaryRegion na chave de réplica. Essa permissão deve ser efetiva na região da chave de réplica.

Por exemplo, a política de chaves a seguir dá aos usuários que podem assumir a função Administrador permissão para atualizar a região primária da chave do KMS. Essa chave do KMS pode ser a chave primária ou uma chave de réplica nessa operação.

{ "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:UpdatePrimaryRegion" }

Para restringir as Regiões da AWS que podem hospedar uma chave primária, use a chave de condição kms:PrimaryRegion. Por exemplo, a seguinte instrução de política do IAM permite que as entidades principais atualizem a região primária das chaves de várias regiões na Conta da AWS , mas somente quando a nova região primária é uma das regiões especificadas.

{ "Effect": "Allow", "Action": "kms:UpdatePrimaryRegion", "Resource": { "arn:aws:kms:*:111122223333:key/*" }, "Condition": { "StringEquals": { "kms:PrimaryRegion": [ "us-west-2", "sa-east-1", "ap-southeast-1" ] } } }

Usar e gerenciar chaves de várias regiões

Por padrão, as entidades principais que têm permissão para usar e gerenciar chaves do KMS em uma Conta da AWS e região também têm permissão para usar e gerenciar chaves de várias regiões. No entanto, você pode usar a chave de condição kms:MultiRegion para permitir apenas chaves de região única ou chaves de várias regiões. Ou use a chave de condição kms:MultiRegionKeyType para permitir apenas chaves primárias de várias regiões ou apenas chaves de réplica. Ambas as chaves de condição controlam o acesso à operação CreateKey e para qualquer operação que use uma chave do KMS existente, como Encrypt ou EnableKey.

A instrução de política do IAM a seguir usa a chave de condição kms:MultiRegion para impedir que as entidades principais usem ou gerenciem qualquer chave de várias regiões.

{ "Effect": "Deny", "Action": "kms:*", "Resource": "*", "Condition": { "Bool": "kms:MultiRegion": true } }

Esse exemplo de instrução de política do IAM usa a condição kms:MultiRegionKeyType para permitir que as entidades principais programem e cancelem a exclusão de chaves, mas somente em chaves de réplica de várias regiões.

{ "Effect": "Allow", "Action": [ "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": { "arn:aws:kms:us-west-2:111122223333:key/*" }, "Condition": { "StringEquals": "kms:MultiRegionKeyType": "REPLICA" } }

Autorizar o AWS KMS a sincronizar chaves de várias regiões

Para oferecer suporte a chaves de várias regiões, o AWS KMS usa uma função vinculada ao serviço do IAM. Essa função dá ao AWS KMS as permissões necessárias para sincronizar propriedades compartilhadas. Você pode visualizar o evento do CloudTrail SynchronizeMultiRegionKey, que registra o AWS KMS sincronizando propriedades compartilhadas nos seus logs do AWS CloudTrail.

Sobre a função vinculada ao serviço para chaves de várias regiões

Uma função vinculada ao serviço é uma função do IAM que oferece permissão a um serviço da AWS para chamar outros serviços da AWS em seu nome. Ela foi projetada para facilitar o uso dos recursos de vários serviços integrados da AWS sem a necessidade de criar e manter políticas complexas do IAM.

Para chaves de várias regiões, o AWS KMS cria a função vinculada ao serviço AWSServiceRoleForKeyManagementServiceMultiRegionKeys com a política AWSKeyManagementServiceMultiRegionKeysServiceRolePolicy. Essa política concede à função a permissão kms:SynchronizeMultiRegionKey, que permite sincronizar as propriedades compartilhadas de chaves de várias regiões.

Como a função vinculada ao serviço AWSServiceRoleForKeyManagementServiceMultiRegionKeys confia apenas em mrk.kms.amazonaws.com, somente o AWS KMS pode assumir essa função. Essa função é limitada às operações necessárias para o AWS KMS sincronizar as propriedades compartilhadas de várias regiões. Ele não concede permissões adicionais ao AWS KMS. Por exemplo, o AWS KMS não tem permissão para criar, replicar ou excluir chaves do KMS.

Para obter mais informações sobre como os serviços da AWS usam funções vinculadas a serviços, consulte Usar funções vinculadas a serviços, no Manual do usuário do IAM.

Criar a função vinculada ao serviço

O AWS KMS cria automaticamente a função vinculada ao serviço AWSServiceRoleForKeyManagementServiceMultiRegionKeys no sua Conta da AWS quando você cria uma chave de várias regiões, caso ela ainda não exista. Não é possível criar ou criar outra vez essa função vinculada a serviço diretamente.

Editar a descrição de uma função vinculada ao serviço

Você não pode editar o nome da função ou as instruções da política na função vinculada ao serviço AWSServiceRoleForKeyManagementServiceMultiRegionKeys, mas pode editar a descrição da função. Para obter mais informações, consulte Editar uma função vinculada ao serviço, no Manual do usuário do IAM.

Excluir a função vinculada ao serviço

O AWS KMS não exclui a função vinculada ao serviço AWSServiceRoleForKeyManagementServiceMultiRegionKeys da sua Conta da AWS , e você não pode excluí-la. No entanto, o AWS KMS não assume a função AWSServiceRoleForKeyManagementServiceMultiRegionKeys ou usa qualquer uma de suas permissões, a menos que você tenha chaves de várias regiões na sua Conta da AWS e região.