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 Google Cloud, herdado por todas as chaves do projeto
- uma pasta do Google Cloud, herdada por todas as chaves em todos os projetos na pasta
- Uma organização do Google Cloud, 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 do Google Cloud. O papel de administrador do Cloud KMS
(roles/cloudkms.admin
) inclui as permissões necessárias.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
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 da 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 Google Cloud e instalar 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 Google Cloud e instalar 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 Google Cloud e instalar 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.cryptoKeyEncrypter
na chave.Para conceder a um principal permissões para criptografar e descriptografar dados, conceda o papel
roles/cloudkms.cryptoKeyEncrypterDecrypter
na chave.Para conceder a um principal permissões para verificar dados, mas não assiná-los, conceda o papel
roles/cloudkms.publicKeyViewer
na chave.Para conceder a um principal permissões para assinar e verificar dados, conceda o papel
roles/cloudkms.signerVerifier
na chave.Para conceder a um principal permissões para gerenciar uma chave, conceda o papel
roles/cloudkms.admin
na 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.