Este tópico mostra como gerir o acesso aos recursos do Cloud KMS.
Vista geral
Para gerir o acesso a recursos do Cloud KMS, como chaves e conjuntos de chaves, concede funções de gestão de identidade e de acesso (IAM). Pode conceder ou restringir a capacidade de realizar operações criptográficas específicas, como rodar uma chave ou encriptar dados. Pode conceder funções de IAM nos seguintes recursos:
- Uma chave diretamente
- Um conjunto de chaves, herdado por todas as chaves nesse conjunto de chaves
- Um Google Cloud projeto, herdado por todas as chaves no projeto
- Uma pasta, herdada por todas as chaves em todos os projetos na pasta Google Cloud
- Uma Google Cloud organização, herdada por todas as chaves em pastas na organização
Para ver uma lista completa das ações do Cloud KMS e das funções e autorizações do IAM, consulte o artigo Autorizações e funções. Para ver uma lista completa dos recursos do Cloud KMS e como se relacionam entre si, consulte o artigo Recursos do Cloud KMS.
Antes de começar
Para concluir estas tarefas, precisa de autorização para administrar recursos do Cloud KMS no Google Cloud projeto. A função de administrador do Cloud KMS (roles/cloudkms.admin) inclui as autorizaçõ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.
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 Google Cloud 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. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud 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. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - Crie um recurso, como um conjunto de chaves.
- Obtenha os IDs dos recursos para os recursos criados, como um conjunto de chaves, uma chave e uma versão da chave.
Para conceder a um principal autorizações para encriptar (mas não desencriptar) dados, conceda a função
roles/cloudkms.cryptoKeyEncrypterna chave.Para conceder a um principal autorizações para encriptar e desencriptar dados, conceda a função
roles/cloudkms.cryptoKeyEncrypterDecrypterna chave.Para conceder a um principal autorizações para validar (mas não assinar) dados, atribua a função
roles/cloudkms.publicKeyViewerà chave.Para conceder a um principal autorizações para assinar e validar dados, conceda a função
roles/cloudkms.signerVerifierna chave.Para conceder autorizações a um principal para gerir uma chave, conceda a função
roles/cloudkms.adminna chave.- Saiba mais sobre as autorizações e as funções no Cloud KMS.
- Crie uma chave.
- Encriptar e desencriptar dados.
Apenas os principais do IAM com funções de proprietário (roles/owner) ou administrador do Cloud KMS (roles/cloudkms.admin) podem conceder ou revogar o acesso aos recursos do Cloud KMS.
Conceder funções num recurso
O exemplo seguinte concede uma função que fornece acesso a uma chave do Cloud KMS:
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
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 conjunto de chaves onde a chave está localizada. Substitua location pela localização do Cloud KMS do conjunto de chaves. Substitua principal-type e principal-email pelo tipo de principal e o endereço de email do principal. Substitua role pelo nome da função a adicionar.
C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
Revogar o 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 comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
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 conjunto de chaves onde a chave está localizada. Substitua location pela localização do Cloud KMS do conjunto de chaves. Substitua principal-type e principal-email pelo tipo de principal e o endereço de email do principal. Substitua role-name pelo nome da função a remover.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag --help.
C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
Autorizações de visualização num recurso
Para ver a política IAM de uma chave do Cloud KMS:
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys get-iam-policy key \
--keyring key-ring \
--location location
Substitua key pelo nome da chave. Substitua key-ring pelo nome do conjunto de chaves onde a chave está localizada. Substitua location pela localização do Cloud KMS do conjunto de chaves.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag --help.
C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
Princípio do menor privilégio
Para praticar o princípio do menor privilégio, conceda o conjunto de autorizações mais limitado ao objeto mais baixo na hierarquia de recursos.
Esta lista não é exaustiva. Consulte as autorizações e as funções do Cloud KMS para ver uma lista completa de autorizações e funções.
Hierarquia e herança
As associações de políticas podem ser especificadas no projeto, no conjunto de chaves, na chave, na tarefa de importação e noutros recursos do Cloud KMS.
Uma vez que as chaves pertencem a conjuntos de chaves e os conjuntos de chaves pertencem a projetos, um principal com uma função ou uma autorização específica a um nível superior nessa hierarquia herda as mesmas autorizações nos recursos subordinados. Ou seja, um utilizador que tenha a função de owner num projeto também é um owner em todos os anéis de chaves e chaves nesse projeto. Da mesma forma, se for concedida a função cloudkms.admin a um utilizador num conjunto de chaves, este tem as autorizações associadas em todas as chaves desse conjunto de chaves.
O inverso não é verdadeiro; ou seja, um utilizador que tenha uma autorização numa chave, mas não tenha a autorização no conjunto de chaves principal, não tem autorizações nesse conjunto de chaves.