Separação de tarefas

Separação de deveres é o conceito de garantir que um indivíduo não terá todas as permissões necessárias para concluir uma ação mal-intencionada. No Cloud Key Management Service, essa pode ser uma ação, como usar uma chave para acessar e descriptografar dados aos quais esse usuário normalmente não pode ter acesso.

A separação de deveres é um controle comercial tipicamente usado em organizações maiores, destinado a evitar incidentes e erros de segurança ou privacidade. É considerada uma prática recomendada.

Para mais informações, consulte nossa documentação sobre como usar o gerenciamento de identidade e acesso com segurança.

Como configurar o Cloud KMS em um projeto separado

O Cloud KMS pode ser executado em um projeto existente, por exemplo, your-project. Isso pode ser útil se os dados criptografados com chaves no Cloud KMS forem armazenados no mesmo projeto.

No entanto, qualquer usuário com acesso owner nesse projeto também poderá gerenciar (e realizar operações criptográficas com) chaves no Cloud KMS nesse projeto. Isso ocorre porque as próprias chaves pertencem ao projeto, do qual o usuário é um owner.

Em vez disso, para permitir a separação de tarefas, execute o Cloud KMS no próprio projeto, por exemplo, your-key-project. Dependendo do rigor dos requisitos de separação, seria possível:

  • (recomendado) Criar your-key-project sem um owner no nível do projeto e, em vez disso, ter um administrador da organização concedido no nível da organização. Este administrador da organização não é como um owner. Eles não podem gerenciar nem usar chaves, mas têm permissão para definir a política de IAM para restringir quem recebe permissões para gerenciamento de chaves e uso. Use um node de nível de organização para restringir ainda mais as permissões para projetos na organização. Consulte a próxima seção para papéis alternativos a owner para uso com o Cloud KMS.
  • (Não recomendado) Conceder um papel owner para your-key-project a um usuário diferente do owner em your-project, em que as chaves do Cloud KMS estão sendo usadas. Esse usuário ainda teria acesso a todas as operações de chave.

Como escolher os papéis de IAM certos

Para organizações menores, os papéis primários de owner, editor e viewer provavelmente fornecem granularidade suficiente para o gerenciamento de chaves. Em organizações maiores, em que a separação de tarefas é necessária, o papel owner fornece acesso excessivo a operações de segurança confidenciais e pode não ser o ideal. Nesse caso, recomendamos que você use papéis predefinidos.

  • Para o proprietário da empresa com o aplicativo que requer criptografia: use o papel administrador da organização no nível da organização.

  • Para o usuário que gerencia o Cloud KMS, ou seja, um membro da equipe de segurança de TI de uma organização: os dois papéis com as permissões mínimas necessárias para gerenciar o Cloud KMS por meio do Console do Cloud são o Editor de projetos predefinido (editor) ou um papel personalizado com base no administrador do Cloud KMS (cloudkms.admin) combinado com as seguintes permissões:

    • serviceusage.quotas.get
    • serviceusage.services.get
    • resourcemanager.projects.get

    Para saber informações sobre como criar um papel personalizado, consulte Como criar um papel personalizado. Se o usuário gerencia o Cloud KMS usando apenas a ferramenta gcloud e a API Cloud KMS, o papel predefinido Administrador do Cloud KMS tem permissão suficiente sem exigir as permissões serviceusage.quotas.get, serviceusage.services.get ou resourcemanager.projects.get.

  • Para o usuário ou serviço que usa chaves para operações de criptografia e descriptografia: use uma conta de serviço no nível do projeto do Cloud KMS com Criptografador/Descriptografador (cloudkms.cryptoKeyEncrypterDecrypter). Se o serviço só precisa ser capaz de gravar ou apenas ser capaz de ler dados, restrinja ainda mais o uso com o papel de apenas Criptografador (cloudkms.cryptoKeyEncrypter) ou Descriptografador (cloudkms.cryptoKeyDecrypter).

Com um projeto separado para o Cloud KMS e esses papéis recomendados, você resolve várias questões de segurança sobre a separação de tarefas:

  • Qualquer usuário que precise de uma função primitiva no nível do projeto para usar outro serviço do Google Cloud, não pode usar essa autoridade para acessar o Cloud KMS.
  • Nenhum usuário precisará do papel owner, que pode conceder a eles permissões excessivas para usar chaves. Sem owner, nenhum usuário pode gerenciar e usar uma chave para criptografar ou descriptografar dados diretamente por padrão. Se os registros de acesso a dados não estiverem ativados, um owner poderá ter acesso potencialmente não auditado para usar o material da chave.