Permissões e papéis

KeyRings e CryptoKeys são recursos do Google Cloud Platform e, como qualquer recurso, estão sujeitos a políticas de IAM definidas. As políticas de IAM não podem ser definidas em CryptoKeyVersions individuais. Para exemplos sobre como configurar políticas, consulte Como usar o IAM com o Cloud KMS.

Permissões necessárias

A tabela a seguir lista as permissões que o solicitante precisa ter para chamar cada método:

Método Permissões necessárias
locations.list Nenhuma.
locations.get Nenhuma.
locations.keyRings.list cloudkms.keyRings.list no projeto do Cloud.
locations.keyRings.get cloudkms.keyRings.get no KeyRing solicitado.
locations.keyRings.create cloudkms.keyRings.create no projeto do Cloud.
locations.keyRings.getIamPolicy cloudkms.keyRings.getIamPolicy no KeyRing solicitado.
locations.keyRings.setIamPolicy cloudkms.keyRings.setIamPolicy no KeyRing solicitado.
locations.keyRings.testIamPermissions Nenhuma.
locations.keyRings.cryptoKeys.list cloudkms.cryptoKeys.list no KeyRing solicitado.
locations.keyRings.cryptoKeys.get cloudkms.cryptoKeys.get no CryptoKey solicitado.
locations.keyRings.cryptoKeys.create cloudkms.cryptoKeys.create no KeyRing.
locations.keyRings.cryptoKeys.encrypt cloudkms.cryptoKeyVersions.useToEncrypt no CryptoKey solicitado.
locations.keyRings.cryptoKeys.decrypt cloudkms.cryptoKeyVersions.useToDecrypt no CryptoKey solicitado.
locations.keyRings.cryptoKeys.patch cloudkms.cryptoKeys.update no CryptoKey solicitado.
locations.keyRings.cryptoKeys.updatePrimaryVersion cloudkms.cryptoKeys.update no CryptoKey solicitado.
locations.keyRings.cryptoKeys.getIamPolicy cloudkms.cryptoKeys.getIamPolicy no CryptoKey solicitado.
locations.keyRings.cryptoKeys.setIamPolicy cloudkms.cryptoKeys.setIamPolicy no CryptoKey solicitado.
locations.keyRings.cryptoKeys.testIamPermissions Nenhuma.
locations.keyRings.cryptoKeys.cryptoKeyVersions.list cloudkms.cryptoKeyVersions.list no CryptoKey solicitado.
locations.keyRings.cryptoKeys.cryptoKeyVersions.get cloudkms.cryptoKeyVersions.get no CryptoKeyVersion solicitado.
locations.keyRings.cryptoKeys.cryptoKeyVersions.create cloudkms.cryptoKeyVersions.create no CryptoKey.
locations.keyRings.cryptoKeys.cryptoKeyVersions.patch cloudkms.cryptoKeyVersions.update no CryptoKeyVersion solicitado.
locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy cloudkms.cryptoKeyVersions.destroy no CryptoKeyVersion solicitado.
locations.keyRings.cryptoKeys.cryptoKeyVersions.restore cloudkms.cryptoKeyVersions.restore na CryptoKeyVersion solicitada.
locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricDecrypt (Beta) cloudkms.cryptoKeyVersions.useToDecrypt na CryptoKeyVersion solicitada.
locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricSign (Beta) cloudkms.cryptoKeyVersions.useToSign na CryptoKeyVersion solicitada.
locations.keyRings.cryptoKeys.cryptoKeyVersions.getPublicKey (Beta) cloudkms.cryptoKeyVersions.viewPublicKey na CryptoKeyVersion solicitada.

Papéis predefinidos

A tabela a seguir lista os papéis de IAM predefinidos do Cloud Key Management Service e todas as permissões incluídas em cada um deles. Cada permissão é relevante a um tipo específico de recurso.

Os papéis primários de Proprietário, Editor e Leitor estão disponíveis para uso em chaves, além dos papéis predefinidos de Administrador, Criptografador/descriptografador, Criptografador e Descriptografador específicos do Cloud KMS.

Os papéis predefinidos permitem a separação de deveres quando necessário. Os papéis de Criptografador ou Descriptografador são destinados a serviços que podem usar uma chave para criptografar e descriptografar dados, mas não para gerenciá-los.

Papel Inclui as permissões: Por tipo de recurso:
roles/cloudkms.admin
cloudkms.keyRings.setIamPolicy KeyRing
cloudkms.cryptoKeys.setIamPolicy CryptoKey
cloudkms.keyRings.create KeyRing
cloudkms.cryptoKeys.create CryptoKey
cloudkms.cryptoKeyVersions.create CryptoKeyVersion
cloudkms.cryptoKeys.update CryptoKey
cloudkms.cryptoKeyVersions.update CryptoKeyVersion
cloudkms.cryptoKeyVersions.destroy CryptoKeyVersion
cloudkms.cryptoKeyVersions.restore CryptoKeyVersion
cloudkms.keyRings.list KeyRing
cloudkms.cryptoKeys.list CryptoKey
cloudkms.cryptoKeyVersions.list CryptoKeyVersion
cloudkms.keyRings.get KeyRing
cloudkms.cryptoKeys.get CryptoKey
cloudkms.cryptoKeys.cryptoKeyVersions.get CryptoKeyVersion
cloudkms.keyRings.getIamPolicy KeyRing
cloudkms.cryptoKeys.getIamPolicy CryptoKey
roles/cloudkms.cryptoKeyEncrypterDecrypter
cloudkms.cryptoKeyVersions.useToEncrypt CryptoKeyVersion
cloudkms.cryptoKeyVersions.useToDecrypt CryptoKeyVersion
roles/cloudkms.cryptoKeyEncrypter cloudkms.cryptoKeyVersions.useToEncrypt CryptoKeyVersion
roles/cloudkms.cryptoKeyDecrypter cloudkms.cryptoKeyVersions.useToDecrypt CryptoKeyVersion
roles/cloudkms.publicKeyViewer (Beta)
cloudkms.cryptoKeyVersions.viewPublicKey CryptoKeyVersion
roles/cloudkms.signer (Beta)
cloudkms.cryptoKeyVersions.useToSign CryptoKeyVersion
roles/cloudkms.signerVerifier (Beta)
cloudkms.cryptoKeyVersions.useToSign CryptoKeyVersion
cloudkms.cryptoKeyVersions.viewPublicKey CryptoKeyVersion
roles/viewer
cloudkms.keyRings.list KeyRing
cloudkms.cryptoKeys.list CryptoKey
cloudkms.cryptoKeyVersions.list CryptoKeyVersion
cloudkms.keyRings.get KeyRing
cloudkms.cryptoKeys.get CryptoKey
cloudkms.cryptoKeyVersions.get CryptoKeyVersion
cloudkms.keyRings.getIamPolicy KeyRing
cloudkms.cryptoKeys.getIamPolicy CryptoKey
roles/editor
Todas as permissões de roles/viewer, bem como:
cloudkms.keyRings.create KeyRing
cloudkms.cryptoKeys.create CryptoKey
cloudkms.cryptoKeyVersions.create CryptoKeyVersion
cloudkms.cryptoKeys.update CryptoKey
cloudkms.cryptoKeyVersions.update CryptoKeyVersion
roles/owner
Todas as permissões de roles/editor, bem como:
cloudkms.cryptoKeyVersions.useToEncrypt CryptoKeyVersion
cloudkms.cryptoKeyVersions.useToDecrypt CryptoKeyVersion
cloudkms.cryptoKeyVersions.useToSign (Beta) CryptoKeyVersion
cloudkms.cryptoKeyVersions.viewPublicKey (Beta) CryptoKeyVersion
cloudkms.keyRings.setIamPolicy KeyRing
cloudkms.cryptoKeys.setIamPolicy CryptoKey
cloudkms.cryptoKeyVersions.destroy CryptoKeyVersion
cloudkms.cryptoKeyVersions.restore CryptoKeyVersion

Observe que os papéis roles/owner, roles/editor e roles/viewer também incluem permissões para outros serviços do Google Cloud Platform.

Papéis personalizados

O Cloud IAM também permite que você crie papéis personalizados. É possível criar um papel personalizado do Cloud IAM com uma ou mais permissões e, depois, concedê-lo a usuários da organização. Os papéis personalizados permitem que você imponha o princípio do menor privilégio, garantindo que as contas de usuários e serviços em sua organização tenham apenas as permissões essenciais para executar as funções pretendidas. Para mais informações sobre como criar papéis personalizados, consulte Como criar e gerenciar papéis personalizados.

Para ajudá-lo a definir papéis personalizados, a lista a seguir exibe os fluxos de usuário comuns e as permissões necessárias para executar operações do Cloud KMS. Esta lista não é considerada exaustiva.

Fluxo de usuário Permissões necessárias
ao usar a API:
Permissões necessárias
ao usar o Console do GCP
(ver nota de rodapé 1):
Criar um KeyRing cloudkms.keyRings.create no projeto Igual às permissões de API necessárias
Criar um CryptoKey cloudkms.cryptoKeys.create no KeyRing As permissões de API necessárias, bem como:

cloudkms.keyRings.list no projeto

Criar um CryptoKeyVersion cloudkms.cryptoKeyVersions.create no CryptoKey As permissões de API necessárias, bem como:

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.list no projeto

Ativar um CryptoKeyVersion cloudkms.cryptoKeyVersions.update no CryptoKeyVersion solicitado As permissões de API necessárias, bem como:

cloudkms.cryptoKeyVersions.list no CryptoKey solicitado

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.list no projeto

Desativar um CryptoKeyVersion cloudkms.cryptoKeyVersions.update no CryptoKeyVersion solicitado As permissões de API necessárias, bem como:

cloudkms.cryptoKeyVersions.list no CryptoKey solicitado

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.list no projeto

Destruir um CryptoKeyVersion cloudkms.cryptoKeyVersions.destroy no CryptoKeyVersion solicitado As permissões de API necessárias, bem como:

cloudkms.cryptoKeyVersions.list no CryptoKey solicitado

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.list no projeto

Restaurar uma CryptoKeyVersion cloudkms.cryptoKeyVersions.restore na CryptoKeyVersion solicitada As permissões de API necessárias, bem como:

cloudkms.cryptoKeyVersions.list no CryptoKey solicitado

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.list no projeto

Fazer uma rotação manual de um CryptoKey cloudkms.cryptoKeyVersions.create e cloudkms.cryptoKeys.update no CryptoKey solicitado As permissões de API necessárias, bem como:

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.list no projeto

Definir o período de rotação em um CryptoKey cloudkms.cryptoKeys.update no CryptoKey solicitado As permissões de API necessárias, bem como:

cloudkms.cryptoKeyVersions.list no CryptoKey solicitado

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.list no projeto

Criptografar dados usando uma CryptoKey simétrica cloudkms.cryptoKeyVersions.useToEncrypt na CryptoKey solicitada Incompatível com o console do GCP.
Descriptografar dados usando uma CryptoKey simétrica cloudkms.cryptoKeyVersions.useToDecrypt na CryptoKey solicitada Incompatível com o console do GCP.
Criar uma assinatura usando uma CryptoKey assimétrica (Beta) cloudkms.cryptoKeyVersions.useToSign na CryptoKey solicitada Incompatível com o console do GCP.
Descriptografar dados usando uma CryptoKey assimétrica (Beta) cloudkms.cryptoKeyVersions.asymmetricDecrypt na CryptoKey solicitada Incompatível com o console do GCP.
Recuperar a parte pública de uma CryptoKey assimétrica (Beta) cloudkms.cryptoKeyVersions.viewPublicKey na CryptoKey solicitada As permissões de API necessárias, bem como:

cloudkms.cryptoKeyVersions.list na CryptoKey solicitada

cloudkms.cryptoKeys.get no CryptoKey solicitado

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.get no KeyRing solicitado

cloudkms.keyRings.list no projeto

Definir permissões em um KeyRing cloudkms.keyRings.setIamPolicy no KeyRing solicitado. As permissões de API necessárias, bem como:

cloudkms.keyRings.getIamPolicy no KeyRing solicitado

Configurar permissões em um CryptoKey cloudkms.cryptoKeys.setIamPolicy no CryptoKey solicitado As permissões de API necessárias, bem como:

cloudkms.cryptoKeys.getIamPolicy no CryptoKey solicitado

Ver keyrings em um projeto usando o Console do GCP N/D cloudkms.keyRings.list no projeto
Ver CryptoKeys em um keyring e os metadados do keyring usando o Console do GCP N/D cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.get no KeyRing solicitado

cloudkms.keyRings.list no projeto

Ver CryptoKeyVersions em um CryptoKey e os metadados do CryptoKey usando o Console do GCP N/D cloudkms.cryptoKeyVersions.list no CryptoKey solicitado

cloudkms.cryptoKeys.get no CryptoKey solicitado

cloudkms.cryptoKeys.list no KeyRing solicitado

cloudkms.keyRings.get no KeyRing solicitado

cloudkms.keyRings.list no projeto

1 Essas permissões são necessárias para navegar pela IU para uma página de recursos. Um usuário também se vincula diretamente à página de um recurso específico, como KeyRing ou CryptoKey, se tiver permissões suficientes para esse recurso.

Como verificar permissões

Qualquer identidade pode executar cloudkms.keyRings.testIamPermissions e cloudkms.cryptoKeys.testIamPermissions para testar as respectivas permissões em qualquer KeyRing e CryptoKey do Cloud KMS.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud KMS