No Cloud KMS, os recursos estão organizados numa hierarquia. Esta hierarquia ajuda a gerir e conceder acesso a recursos em vários níveis de detalhe. As chaves estão contidas em conjuntos de chaves e os conjuntos de chaves existem num projeto. As associações de EKM também existem num projeto. Os projetos podem ser organizados em pastas ou organizações.
Este tópico fornece mais detalhes sobre a hierarquia de recursos no Cloud KMS. Para saber mais sobre os Google Cloud recursos em geral, consulte o artigo Hierarquia de recursos.
Hierarquia de recursos
O âmbito de uma função do IAM muda consoante o nível da hierarquia de recursos onde a função é concedida. Esta tabela mostra as capacidades efetivas
concedidas pela função de encriptador de CryptoKey do Cloud KMS
(roles/cloudkms.cryptoKeyEncrypter
) em diferentes níveis da hierarquia.
Pode gerir o acesso a chaves ou conjuntos de chaves, mas não a versões de chaves individuais.
Hierarquia de recursos | Capacidade |
---|---|
Organização | Encriptar com todas as chaves em todos os projetos na organização |
Pasta | Encriptar com todas as chaves em todos os projetos na pasta |
Projeto | Encriptar com todas as chaves no projeto |
Conjunto de chaves | Encriptar com todas as chaves no porta-chaves |
Chave | Encriptar usando apenas essa chave |
Princípios de segurança
A IAM ajuda a aplicar os princípios de segurança interligados de separação de funções e menor privilégio:
Quando aplica o princípio da separação de funções, nenhum membro tem todo o acesso necessário para concluir uma função empresarial crítica. Por exemplo, um caixa de banco só pode levantar fundos de uma conta quando o titular da conta está fisicamente presente e inicia a transação.
Quando aplica o princípio do menor privilégio, um membro tem apenas o nível mínimo de acesso necessário para concluir as funções empresariais específicas desse membro. Por exemplo, um caixa bancário não tem automaticamente a capacidade de aprovar um empréstimo de um cliente.
Funções predefinidas
A IAM fornece funções predefinidas que concedem acesso a cada tipo de recursos Google Cloud . Se nenhuma função predefinida satisfizer as suas necessidades, pode criar uma função personalizada.
A IAM oferece as seguintes funções predefinidas para o Cloud KMS:
Role | Permissions |
---|---|
Cloud KMS Admin( Provides access to Cloud KMS resources, except for access to restricted resource types and cryptographic operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Autokey Admin( Enables management of AutokeyConfig. |
|
Cloud KMS Autokey User( Grants ability to use KeyHandle resources. |
|
Cloud KMS CryptoKey Decrypter( Provides ability to use Cloud KMS resources for decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Decrypter Via Delegation( Enables Decrypt operations via other Google Cloud services Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter( Provides ability to use Cloud KMS resources for encrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter( Provides ability to use Cloud KMS resources for encrypt and decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter Via Delegation( Enables Encrypt and Decrypt operations via other Google Cloud services Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter Via Delegation( Enables Encrypt operations via other Google Cloud services Lowest-level resources where you can grant this role:
|
|
Cloud KMS Crypto Operator( Enables all Crypto Operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Decapsulator Beta( Enables Decapsulate and GetPublicKey operations |
|
Cloud KMS EkmConnections Admin( Enables management of EkmConnections. |
|
Cloud KMS Expert Raw AES-CBC Key Manager( Enables raw AES-CBC keys management. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Expert Raw AES-CTR Key Manager( Enables raw AES-CTR keys management. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Expert Raw PKCS#1 Key Manager( Enables raw PKCS#1 keys management. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Importer( Enables ImportCryptoKeyVersion, CreateImportJob, ListImportJobs, and GetImportJob operations |
|
Key Access Justifications Enrollment Viewer Beta( Grant ability to view Key Access Justification enrollment configs of a project. |
|
Key Access Justifications Policy Config Admin Beta( Grant ability to manage Key Access Justifications Policy at parent resource level. |
|
Cloud KMS Organization Service Agent( Gives Cloud KMS organization-level service account access to managed resources. |
|
Cloud KMS Protected Resources Viewer( Enables viewing protected resources. |
|
Cloud KMS CryptoKey Public Key Viewer( Enables GetPublicKey operations Lowest-level resources where you can grant this role:
|
|
Cloud KMS Service Agent( Gives Cloud KMS service account access to managed resources. |
|
Cloud KMS CryptoKey Signer( Enables Sign operations Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Signer/Verifier( Enables Sign, Verify, and GetPublicKey operations Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Verifier( Enables Verify and GetPublicKey operations Lowest-level resources where you can grant this role:
|
|
Cloud KMS Viewer( Enables Get and List operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS KACLS Service Agent( Grants Cloud KMS KACLS Service Agent access to KMS resource permissions to perform DEK encryption/decryption. |
|
Funções personalizadas
Além das funções predefinidas, pode criar funções personalizadas. As funções personalizadas permitem-lhe aplicar o princípio do menor privilégio, concedendo à função as autorizações mínimas necessárias para realizar uma determinada tarefa.
Uma função personalizada inclui uma ou mais das autorizações indicadas na referência da IAM.
As autorizações relacionadas com a API Cloud Key Management Service começam com a string cloudkms
.
Para mais informações, consulte o artigo
Níveis de apoio técnico para autorizações em funções personalizadas.
Para obter informações sobre as autorizações necessárias para invocar um método específico da API Cloud Key Management Service, consulte a referência da API desse método.
Diretrizes gerais para gerir o acesso no Cloud KMS
Recomendamos que evite usar funções básicas ao nível do projeto, como owner
, editor
e viewer
. Estas funções não separam a capacidade de gerir chaves da capacidade de usar as chaves para operações criptográficas e não são recomendadas para ambientes de produção. Em alternativa, use funções predefinidas ou crie funções personalizadas que reflitam os requisitos da sua empresa.
Os exemplos seguintes ajudam a ilustrar algumas boas diretrizes de segurança:
Para uma organização grande ou complexa, pode optar por uma abordagem como a seguinte:
- Conceda aos membros da sua equipa de segurança de TI a função de administrador do Cloud KMS (
roles/cloudkms.admin
) em todos os projetos. Se diferentes membros da equipa tratarem de diferentes aspetos do ciclo de vida de uma chave, pode conceder a esses membros da equipa uma função mais detalhada, como a função Importador do Cloud KMS (roles/cloudkms.importer
). - Conceda a função de encriptar / desencriptar do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) a utilizadores ou aplicações que leiam ou escrevam dados encriptados. - Conceda a função Visualizador de chaves públicas do Cloud KMS (
roles/cloudkms.publicKeyViewer
) aos utilizadores ou às aplicações que precisam de ver a parte pública de uma chave usada para encriptação assimétrica. - Crie funções predefinidas que correspondam aos requisitos da sua empresa. Por exemplo, o mesmo utilizador pode ter de monitorizar as quotas de um projeto e ver os dados de registo.
- Conceda aos membros da sua equipa de segurança de TI a função de administrador do Cloud KMS (
Para uma pequena organização com requisitos de segurança simples, pode optar por uma abordagem mais simples, concedendo uma função abrangente, como administrador da organização (
roles/resourcemanager.organizationAdmin
). No entanto, esta abordagem pode não ser escalável com os seus requisitos contínuos.Considere alojar as suas chaves num Google Cloud projeto separado dos dados protegidos por essas chaves. Um utilizador com uma função básica ou altamente privilegiada num projeto, como
editor
, não pode usar esta função para obter acesso não autorizado a chaves num projeto diferente.Evite conceder a função de
owner
a qualquer membro. Sem a funçãoowner
, nenhum membro no projeto pode criar uma chave e usá-la para desencriptar dados ou para assinar, a menos que cada uma destas autorizações seja concedida a esse membro. Para conceder acesso administrativo amplo sem conceder a capacidade de encriptar ou desencriptar, conceda a função de administrador do Cloud KMS (roles/cloudkms.admin
).Para limitar o acesso a dados encriptados, como dados de clientes, pode restringir quem pode aceder à chave e quem pode usar a chave para desencriptação. Se necessário, pode criar funções personalizadas detalhadas para cumprir os requisitos da sua empresa.
A verificar as autorizações
Para cada tipo de objeto do Cloud KMS para o qual pode definir autorizações do IAM detalhadas, esse objeto tem um método testIamPermissions
.
O método testIamPermissions
devolve o conjunto de autorizações que foram concedidas ao autor da chamada para esse objeto.
- Para porta-chaves, pode invocar o método
cloudkms.keyRings.testIamPermissions
. - Para chaves, pode invocar o método
cloudkms.cryptoKeys.testIamPermissions
. - Para tarefas de importação de chaves, pode invocar o método
cloudkms.keyRings.importJobs.testIamPermissions
. - Para ligações EKM,
pode invocar o método
cloudkms.ekmConnections.testIamPermissions
.
Não pode definir autorizações de IAM numa versão da chave, pelo que o tipo de objeto CryptoKeyVersion
não tem este método.
O método testIamPermissions
de um objeto devolve um
TestIamPermissionsResponse
.
Para ver exemplos de invocação de métodos testIamPermissions
, consulte a documentação sobre
testar autorizações na documentação do IAM.
O que se segue?
- Saiba como a IAM centraliza a gestão de autorizações e âmbitos de acesso para Google Cloud recursos.
- Compreenda os diferentes tipos de objetos do Cloud KMS.