Autenticação e controle de acesso para o AWS KMS - AWS Key Management Service

Autenticação e controle de acesso para o AWS KMS

Para usar AWS KMS, você deve ter credenciais que a AWS possa usar para autenticar suas solicitações. As credenciais devem incluir permissões para acessar recursos da AWS, AWS KMS keys e aliases. Os tópicos a seguir fornecem detalhes sobre como é possível usar o AWS Identity and Access Management (IAM) e permissões do AWS KMS para ajudar a proteger seus recursos controlando quem pode acessá-los.

A principal maneira de gerenciar o acesso aos seus recursos do AWS KMS é por meio de políticas. Políticas são documentos que descrevem quais entidades principais podem acessar recursos específicos. As políticas anexadas a uma identidade do IAM são chamadas de políticas baseadas em identidade (ou políticas do IAM), e as políticas anexadas a outros tipos de recurso são conhecidas como políticas baseadas em recursos. As políticas de recursos do AWS KMS para chaves do KMS são chamadas de políticas de chaves. Todas as chaves do KMS têm uma política de chaves.

Para controlar o acesso aos seus aliases do AWS KMS, use políticas do IAM. Para permitir que as entidades criem aliases, você deve fornecer a permissão para o alias em uma política do IAM e permissão para a chave em uma política de chaves. Para obter mais detalhes, consulte Controlar o acesso a aliases.

Para controlar o acesso às suas chaves do KMS, você pode usar os seguintes mecanismos de política.

  • Política de chaves: cada chave do KMS tem uma política de chave. Esse é o mecanismo principal para controlar o acesso a uma chave do KMS. Você pode usar apenas a política de chaves para controlar o acesso, ou seja, o escopo completo de acesso à chave do KMS é definido em um único documento (a política de chaves). Para mais informações sobre como usar políticas de chaves, consulte Políticas de chaves.

  • Políticas do IAM: você pode usar políticas do IAM combinadas com a política de chaves e concessões para controlar o acesso a uma chave do KMS. Com esse controle de acesso, você pode gerenciar todas as permissões para suas identidades do IAM no IAM. Para usar uma política do IAM para permitir o acesso a uma chave do KMS, a política de chaves deve explicitamente permitir isso. Para mais informações sobre como usar políticas do IAM, consulte Políticas do IAM.

  • Concessões: você pode usar concessões combinadas com a política de chaves e políticas do IAM para permitir o acesso a uma chave do KMS. Com esse controle de acesso, você pode permitir acesso à chave do KMS na política de chaves e permitir que os usuários deleguem seu acesso a outros. Para obter mais informações sobre como usar concessões, consulte Concessões no AWS KMS.

As chaves do KMS pertencem à conta da AWS na qual foram criadas. O usuário do IAM que cria uma chave do KMS não é considerado o proprietário da chave e ele não recebe automaticamente permissão para usar ou gerenciar a chave do KMS que criou. Como qualquer outra entidade principal, o criador da chave precisa obter permissão por meio de uma política de chaves, política do IAM ou concessão. No entanto, as entidades principais que têm a permissão kms:CreateKey podem definir a política de chave inicial e conceder a si mesmas permissão para usar ou gerenciar a chave.

Conceitos em controle de acesso do AWS KMS

Aprenda os conceitos usados nas discussões sobre controle de acesso em AWS KMS.

Autenticação

Você pode acessar a AWS como alguns dos seguintes tipos de identidade:

  • Usuário raiz da Conta da AWS – Ao se cadastrar na AWS, você fornece um endereço de e-mail e uma senha para sua Conta da AWS. Essas são suas credenciais raiz e fornecem acesso total a todos os seus recursos da AWS.

    Importante

    Por motivos de segurança, recomendamos que você use as credenciais raiz para criar somente um usuário administrador, que é um usuário do IAM com permissões totais à sua Conta da AWS. Em seguida, você pode usar esse usuário administrador para criar outros usuários e funções do IAM com permissões limitadas. Para obter mais informações, consulte Criar usuários individuais do IAM (Melhores práticas do IAM) e Criar um usuário administrador e grupo no Manual do usuário do IAM.

  • Usuário do IAM: um usuário do IAM é uma identidade na sua Conta da AWS que tem permissões específicas (por exemplo, para usar uma chave do KMS). Você pode utilizar um nome de usuário e uma senha do IAM para fazer login para proteger páginas da Web da AWS, comoAWS Management Console, Fóruns de discussão da AWS ou o AWS Support Center.

    Além de um nome de usuário e senha, você também pode criar chaves de acesso para cada usuário para permitir que eles acessem serviços da AWS de forma programática, usando um AWS SDK, o AWS Command Line Interface ou o AWS Tools for PowerShell. Os SDKs e as ferramentas da linha de comando usam as chaves de acesso para assinar de maneira criptográfica as solicitações de API. Se você não usar as ferramentas da AWS, assine as solicitações de API por conta própria. O AWS KMS oferece suporte a Signature Version 4, um protocolo da AWS para autenticação de solicitações de API. Para mais informações sobre solicitações de API de autenticação, consulte Processo de assinatura do Signature Version 4 na Referência geral da AWS.

  • Função do IAM – Uma função do IAM é outra identidade do IAM que você pode criar na sua conta que tem permissões específicas. É semelhante a um usuário do IAM, mas não está associada a uma pessoa específica. Uma função do IAM permite que você obtenha chaves de acesso temporárias para acessar os serviços e os recursos da AWS programaticamente. As funções do IAM são úteis nas seguintes situações:

    • Acesso de usuário federado – Em vez de criar um usuário do IAM, você pode usar identidades já existente de usuário de AWS Directory Service, o diretório de usuário da sua empresa ou um provedor de identidades da web. Estes são conhecidos como usuários federados. Usuários federados usam funções do IAM por meio de um provedor de identidade. Para obter mais informações sobre usuários federados, consulte Usuários federados e funções no Manual do usuário do IAM.

    • Acesso entre contas – Você pode usar uma função do IAM na sua Conta da AWS para dar a outra Conta da AWS permissões de acesso aos recursos da sua conta. Para ver um exemplo, consulte o Tutorial: delegar acesso em AWS usando funções do IAM no Manual do usuário do IAM.

    • AWS acesso ao serviço – Você pode usar uma função do IAM na sua conta para conceder permissões de serviço da AWS para acessar os recursos da sua conta. Por exemplo, você pode criar uma função que permita ao Amazon Redshift acessar um bucket do S3 em seu nome e carregar dados armazenados no bucket do S3 em um cluster do Amazon Redshift. Para mais informações, consulte Criar uma função para delegar permissões a um serviço da AWS, no Manual do usuário do IAM.

    • Aplicativos executados em instâncias do EC2 – Em vez de armazenar chaves de acesso em uma instância do EC2 para serem usadas em aplicativos que são executados na instância e fazer solicitações de API da AWS, você pode usar uma função do IAM para fornecer chaves de acesso temporárias para essas aplicações. Para atribuir uma função do IAM a uma instância do EC2, você cria um perfil da instância e, em seguida, o anexa ao iniciar a instância. Um perfil de instância contém a função e permite que os aplicativos em execução na instância do EC2; obtenham chaves de acesso temporárias. Para obter mais informações, consulte Uso de funções para aplicações no Amazon EC2 no Manual do usuário do IAM.

Autorização

Você pode ter credenciais válidas para autenticar suas solicitações, mas também precisa de permissões para fazer solicitações da API do AWS KMS para criar, gerenciar ou usar recursos do AWS KMS. Por exemplo, é necessário ter permissões para criar, gerenciar e usar uma chave do KMS em operações de criptografia.

Use políticas de chaves, políticas do IAM e concessões para controlar o acesso aos recursos da AWS KMS. Você pode usar chaves de condição de política para conceder acesso somente quando uma solicitação ou um recurso atende às condições especificadas. Você pode permitir o acesso a entidades principais em que você confia em outras contas da AWS.

AWS KMSRecursos do

No AWS KMS, o recurso principal é uma AWS KMS keys. O AWS KMS também oferece suporte a um alias, um recurso independente que fornece um nome amigável para uma chave do KMS. Algumas operações do AWS KMS permitem usar um alias para identificar uma chave do KMS.

Cada instância de uma chave do KMS ou um alias tem um Amazon Resource Name (ARN) exclusivo com um formato padrão. Em recursos do AWS KMS, o nome do serviço da AWS é kms.

  • AWS KMS key

    Formato do ARN:

    arn:AWS partition name:AWS service name:Região da AWS:Conta da AWS ID:key/key ID

    Exemplo de ARN:

    arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

  • Alias

    Formato do ARN:

    arn:AWS partition name:AWS service name:Região da AWS:Conta da AWS ID:alias/alias name

    Exemplo de ARN:

    arn:aws:kms:us-west-2:111122223333:alias/example-alias

O AWS KMS fornece um conjunto de operações de API para trabalhar com os seus recursos do AWS KMS. Para mais informações sobre como identificar chaves do KMS nas operações de API do AWS Management Console e do AWS KMS, consulte Identificadores de chave (KeyId). Para uma lista de operações do AWS KMS, consulte a Referência de APIs do AWS Key Management Service.