Este tópico mostra como gerenciar o acesso aos recursos do Cloud KMS.
Visão geral
Para gerenciar o acesso aos recursos do Cloud KMS, como chaves e keyrings, conceda papéis de gerenciamento de identidade e acesso (IAM, na sigla em inglês). É possível conceder ou restringir a capacidade de realizar operações criptográficas específicas, como fazer a rotação de uma chave ou criptografar dados. É possível conceder papéis do IAM em:
- Uma chave diretamente
- Um keyring, herdado por todas as chaves nesse keyring
- Um projeto do Cloud de Confiance , herdado por todas as chaves do projeto
- Uma pasta do Cloud de Confiance , herdada por todas as chaves em todos os projetos na pasta
- Uma Cloud de Confiance organização, herdada por todas as chaves em pastas da organização
Para uma lista completa de ações do Cloud KMS e papéis e permissões do IAM, consulte Permissões e papéis. Para ver uma lista completa dos recursos do Cloud KMS e como eles se relacionam, consulte Recursos do Cloud KMS.
Antes de começar
Para concluir essas tarefas, é preciso ter permissão para administrar os recursos
do Cloud KMS no projeto Cloud de Confiance . O papel de administrador do Cloud KMS
(roles/cloudkms.admin) inclui as permissões necessárias.
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a CLI do Google Cloud.
-
Configure a gcloud CLI para usar sua identidade federada.
Para mais informações, consulte Fazer login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init - Crie um recurso, como um keyring.
- Consiga os IDs do recurso para os recursos criados, como um keyring, uma chave e uma versão de chave.
Somente principais do IAM com proprietário (roles/owner) ou papés do administrador do Cloud KMS
(roles/cloudkms.admin) podem conceder ou revogar acesso aos recursos do Cloud KMS.
Como conceder papéis em um recurso
O exemplo a seguir concede um papel que fornece acesso a uma chave do Cloud KMS:
gcloud
Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.
gcloud kms keys add-iam-policy-binding key \
--keyring key-ring \
--location location \
--member principal-type:principal-email \
--role roles/role
Substitua key pelo nome da chave. Substitua key-ring pelo nome do keyring em que a chave está localizada. Substitua location pelo local do Cloud KMS para o keyring. Substitua principal-type e principal-email pelo tipo de principal e pelo endereço de e-mail do principal. Substitua role pelo nome do papel a ser adicionado.
C#
Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.
Go
Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.
Java
Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.
Node.js
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.
PHP
Para executar esse código, primeiro saiba como usar o PHP no Cloud de Confiance e instale o SDK do Cloud KMS para PHP.
Python
Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.
Ruby
Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.
Como revogar acesso a um recurso
Para remover o acesso de um principal a uma chave do Cloud KMS:
gcloud
Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.
gcloud kms keys remove-iam-policy-binding key \
--keyring key-ring \
--location location \
--member principal-type:principal-email \
--role roles/role-name
Substitua key pelo nome da chave. Substitua key-ring pelo nome do keyring em que a chave está localizada. Substitua location pelo local do Cloud KMS para o keyring. Substitua principal-type e principal-email pelo tipo de principal e pelo endereço de e-mail do principal. Substitua role-name pelo nome do papel que será removido.
Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.
C#
Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.
Go
Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.
Java
Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.
Node.js
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.
PHP
Para executar esse código, primeiro saiba como usar o PHP no Cloud de Confiance e instale o SDK do Cloud KMS para PHP.
Python
Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.
Ruby
Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.
Como visualizar permissões em um recurso
Para visualizar a política do IAM de uma chave do Cloud KMS:
gcloud
Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.
gcloud kms keys get-iam-policy key \
--keyring key-ring \
--location location
Substitua key pelo nome da chave. Substitua key-ring pelo nome do keyring em que a chave está localizada. Substitua location pelo local do Cloud KMS para o keyring.
Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.
C#
Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.
Go
Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.
Java
Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.
Node.js
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.
PHP
Para executar esse código, primeiro saiba como usar o PHP no Cloud de Confiance e instale o SDK do Cloud KMS para PHP.
Python
Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.
Ruby
Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.
Princípio de privilégio mínimo
Para praticar o princípio do menor privilégio, conceda o conjunto mais limitado de permissões ao objeto mais baixo na hierarquia de recursos.
Para conceder a um principal permissões para criptografar dados, mas não descriptografá-los, conceda o papel
roles/cloudkms.cryptoKeyEncrypterna chave.Para conceder a um principal permissões para criptografar e descriptografar dados, conceda o papel
roles/cloudkms.cryptoKeyEncrypterDecrypterna chave.Para conceder a um principal permissões para verificar dados, mas não assiná-los, conceda o papel
roles/cloudkms.publicKeyViewerna chave.Para conceder a um principal permissões para assinar e verificar dados, conceda o papel
roles/cloudkms.signerVerifierna chave.Para conceder a um principal permissões para gerenciar uma chave, conceda o papel
roles/cloudkms.adminna chave.
Esta não é uma lista completa. Consulte Permissões e papéis do Cloud KMS para uma lista completa de permissões e papéis.
Hierarquia e herança
As vinculações de políticas podem ser especificadas no projeto, no keyring, na chave, no job de importação e em outros recursos do Cloud KMS.
Como as chaves pertencem a keyrings, que por sua vez pertencem a projetos, um principal com papel ou permissão específica em um nível mais alto nessa hierarquia herda as mesmas permissões nos recursos filho. Isso significa que um usuário que tem o papel
owner em um projeto também é um owner em todos os keyrings e as chaves nesse
projeto. Da mesma forma, se um usuário receber o papel
cloudkms.admin em um keyring, ele terá as permissões associadas a todas as chaves nesse keyring.
O inverso não é verdadeiro. Ou seja, um usuário que tem uma permissão em uma chave, mas não tem a permissão no keyring pai, não tem permissões nesse keyring.
A seguir
- Saiba mais sobre permissões e papéis no Cloud KMS.
- Criar uma chave.
- Criptografar e descriptografar dados.