Controlo de acesso com a IAM
Esta página descreve as funções de IAM para o serviço de autoridade de certificação.
O serviço de AC usa funções de gestão de identidade e de acesso (IAM) para o controlo de acesso. Com a IAM, controla o acesso definindo quem (identidade) tem que acesso (função) para que recurso. As funções do IAM contêm um conjunto de autorizações que permitem aos utilizadores realizar ações específicas em Google Cloud recursos. Seguindo o princípio do menor privilégio ao conceder funções de IAM, pode proteger a integridade dos recursos do serviço de autoridade de certificação e gerir a segurança do conjunto de ACs e da infraestrutura de chave pública (PKI) geral.
Para saber como atribuir funções de IAM a um utilizador ou a uma conta de serviço, leia o artigo Conceder, alterar e revogar o acesso a recursos na documentação do IAM.
Funções predefinidas
A tabela seguinte apresenta as funções de IAM predefinidas e as autorizações associadas a cada uma delas:
| Função | Autorizações | Descrição |
|---|---|---|
Auditor do serviço de ACroles/privateca.auditor |
privateca.caPools.getprivateca.caPools.getIamPolicyprivateca.caPools.listprivateca.certificateAuthorities.listprivateca.certificateAuthorities.getprivateca.certificateTemplates.getprivateca.certificateTemplates.getIamPolicyprivateca.certificateTemplates.listprivateca.certificates.listprivateca.certificates.getprivateca.locations.getprivateca.locations.listprivateca.operations.getprivateca.operations.listprivateca.certificateRevocationLists.listprivateca.certificateRevocationLists.getprivateca.certificateRevocationLists.getIamPolicyresourcemanager.projects.getresourcemanager.projects.list
|
A função Auditor do serviço de AC tem acesso só de leitura a todos os recursos do serviço de AC e pode obter e listar propriedades do conjunto de ACs, da AC, dos certificados, das listas de revogação, das políticas de IAM e dos projetos. Recomendamos que atribua esta função a indivíduos responsáveis pela validação da segurança e das operações do conjunto de ACs e que não tenham responsabilidades diárias atribuídas para administrar o serviço. |
Requerente de certificados do serviço de ACroles/privateca.certificateRequester |
privateca.certificates.create
|
Uma função de requerente de certificado do serviço de AC pode enviar pedidos de certificados para um conjunto de ACs. Recomendamos que atribua esta função a indivíduos fidedignos que tenham autorização para pedir certificados. Um utilizador com esta função pode pedir certificados arbitrários sujeitos à política de emissão. Ao contrário da função Gestor de certificados do serviço de AC, esta função não permite que o utilizador obtenha ou liste o certificado emitido recentemente, nem que obtenha informações sobre o conjunto de ACs. |
Requerente de certificado de carga de trabalho do serviço de ACroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Um requerente de certificado de carga de trabalho do serviço de AC pode pedir certificados ao serviço de AC com a identidade do autor da chamada. |
Gestor de certificados do serviço de ACroles/privateca.certificateManager |
Todas as autorizações do roles/privateca.auditor, além do seguinte:privateca.certificates.create
|
Um Gestor de certificados do serviço de AC pode enviar pedidos de emissão de certificados para um conjunto de ACs, tal como o Requerente de certificados do serviço de AC. Além disso, esta função também herda as autorizações da função de auditor de serviços da CA. Recomendamos que atribua esta função a indivíduos responsáveis pela criação, monitorização e revisão de pedidos de certificados num conjunto de ACs, como um gestor ou um engenheiro principal. |
Utilizador do modelo de certificado do serviço de ACroles/privateca.templateUser |
privateca.certificateTemplates.getprivateca.certificateTemplates.listprivateca.certificateTemplates.use
|
Um utilizador do modelo de certificado do serviço de AC pode ler, listar e usar modelos de certificados. |
Gestor de operações do serviço de ACroles/privateca.caManager |
Todas as autorizações do roles/privateca.auditor, além das seguintes:privateca.certificates.updateprivateca.caPools.createprivateca.caPools.deleteprivateca.caPools.updateprivateca.certificateAuthorities.createprivateca.certificateAuthorities.deleteprivateca.certificateAuthorities.updateprivateca.certificateRevocationLists.updateprivateca.certificateTemplates.createprivateca.certificateTemplates.deleteprivateca.certificateTemplates.updateprivateca.certificates.updateprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
Um gestor de operações do serviço de AC pode criar, atualizar e eliminar conjuntos de ACs e ACs. Esta função também pode revogar certificados e criar contentores do Cloud Storage. Também inclui as mesmas capacidades que o auditor de serviços da CA. Nesta função, os indivíduos são responsáveis pela configuração e implementação de conjuntos de ACs na organização, juntamente com a configuração da política de emissão do conjunto de ACs. Esta função não permite a criação de certificados. Para tal, use as funções de requerente de certificados do serviço de AC, gestor de certificados do serviço de AC ou administrador do serviço de AC. |
Leitor do conjunto de serviços de ACroles/privateca.poolReader |
privateca.caPools.get |
Um utilizador com a função de leitor do conjunto do serviço de AC pode ler conjuntos de AC no serviço de AC. |
Administrador de serviço de ACroles/privateca.admin |
Todas as autorizações do roles/privateca.certificateManager,
e roles/privateca.caManager, além do seguinte:privateca.*.setIamPolicyprivateca.caPools.useprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
A função de administrador do serviço de AC herda autorizações das funções de gestor de operações do serviço de AC e gestor de certificados do serviço de AC. Esta função pode realizar todas as ações no serviço de AC. Um administrador do serviço de AC pode definir políticas de IAM para o conjunto de ACs e criar contentores do Cloud Storage. Recomendamos que atribua raramente esta função depois de o serviço estar estabelecido. Nesta função, os indivíduos podem realizar todos os aspetos da administração, incluindo a atribuição de direitos a outros e a gestão de pedidos de certificados no serviço de AC. Recomendamos que implemente um controlo especial e acesso a esta conta de função para evitar o acesso ou a utilização não autorizados. |
Função de agente do serviço de AC
Quando fornece chaves do Cloud KMS ou contentores do Cloud Storage existentes, tem de conceder acesso à conta de serviço do agente de serviço do serviço de AC (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) ao recurso respetivo.
Para o Cloud KMS, a função roles/cloudkms.signerVerifier é necessária para usar a chave de assinatura e ler a chave pública. roles/viewer é necessária para monitorizar
a chave para a integração do Cloud Monitoring.
Para as chaves de encriptação geridas pelo cliente (CMEK) usadas para encriptar dados em repouso, é necessária a função roles/cloudkms.cryptoKeyEncrypterDecrypter. Isto permite ao agente de serviço encriptar e desencriptar dados em repouso.
Para o Cloud Storage, roles/storage.objectAdmin é necessário para escrever o certificado da AC e as LRCs num contentor. roles/storage.legacyBucketReader é necessário para monitorizar o contentor para a integração do Cloud Monitoring. Para mais
informações, consulte as funções de IAM para o Cloud Storage.
Quando aceder ao serviço através da API, execute os seguintes comandos.
Crie uma conta de serviço com a função Agente de serviço.
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_IDOnde:
- PROJECT_ID é o identificador exclusivo do projeto onde o conjunto de ACs é criado.
Conceda à sua conta de serviço as funções necessárias através do seguinte comando
gcloud.Se forem fornecidas chaves do Cloud KMS existentes:
gcloud
Para chaves de assinatura do Cloud KMS:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'Para chaves de encriptação do Cloud KMS:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'Onde:
- "KEY_NAME" é o nome da sua chave.
- "KEYRING_NAME" é o nome do seu conjunto de chaves.
- "LOCATION" é a localização do Cloud KMS onde criou o seu conjunto de chaves.
- "PROJECT_NUMBER" é o número do projeto do Google Cloud projeto que contém a chave.
Conceda à sua conta de serviço as funções
roles/storage.objectAdmineroles/storage.legacyBucketReaderatravés do seguinte comandogcloud.Se forem fornecidos contentores do Cloud Storage existentes:
gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.objectAdminOnde:
- BUCKET_NAME é o nome do seu contentor do Cloud Storage.
- PROJECT_NUMBER é o identificador exclusivo da sua conta de serviço.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.legacyBucketReader
Autorizações da API
A tabela seguinte indica as autorizações que o autor da chamada tem de ter para chamar cada método na API CA Service:
| Autorização | Descrição |
|---|---|
privateca.caPools.create |
Crie um grupo de autoridades de certificação (AC). |
privateca.caPools.update |
Atualize um grupo de ACs. |
privateca.caPools.list |
Apresenta listas de conjuntos de ACs num projeto. |
privateca.caPools.get |
Recupere um grupo de CA. |
privateca.caPools.delete |
Elimine um grupo de CAs. |
privateca.caPools.use |
Use um grupo de ACs. |
privateca.caPools.getIamPolicy |
Recupere a política IAM do conjunto de ACs. |
privateca.caPools.setIamPolicy |
Defina uma política IAM para o conjunto de ACs. |
privateca.certificateAuthorities.create |
Crie uma CA. |
privateca.certificateAuthorities.delete |
Agende a eliminação de uma CA. |
privateca.certificateAuthorities.get |
Obtenha um pedido de assinatura de certificado da AC ou da CA. |
privateca.certificateAuthorities.list |
Apresenta ACs num projeto. |
privateca.certificateAuthorities.update |
Atualizar uma CA, incluindo a ativação, a ativação, a desativação e o restauro da CA. |
privateca.certificates.create |
Pedir certificados ao serviço de AC. |
privateca.certificates.createForSelf |
Pedir certificados ao serviço de AC com a identidade do autor da chamada. |
privateca.certificates.get |
Obter um certificado e os respetivos metadados. |
privateca.certificates.list |
Apresenta todos os certificados numa AC. |
privateca.certificates.update |
Atualizar os metadados de um certificado, incluindo a revogação. |
privateca.certificateRevocationLists.get |
Obtenha uma lista de revogação de certificados (LRC) numa CA. |
privateca.certificateRevocationLists.getIamPolicy |
Obtenha a Política IAM para uma CRL. |
privateca.certificateRevocationLists.list |
Apresenta todas as CRLs numa AC. |
privateca.certificateRevocationLists.setIamPolicy |
Defina a Política IAM para uma CRL. |
privateca.certificateRevocationLists.update |
Atualize uma LRC. |
privateca.certificateTemplates.create |
Crie um modelo de certificado. |
privateca.certificateTemplates.get |
Obtenha um modelo de certificado. |
privateca.certificateTemplates.list |
Apresenta todos os modelos de certificados. |
privateca.certificateTemplates.update |
Atualize um modelo de certificado. |
privateca.certificateTemplates.delete |
Elimine um modelo de certificado. |
privateca.certificateTemplates.getIamPolicy |
Obtenha a Política IAM para um modelo de certificado. |
privateca.certificateTemplates.setIamPolicy |
Defina a Política IAM para um modelo de certificado. |
privateca.certificateTemplates.use |
Use um modelo de certificado. |
privateca.operations.cancel |
Cancele uma operação de longa duração. |
privateca.operations.delete |
Elimine uma operação de longa duração. |
privateca.operations.get |
Obtenha uma operação de longa duração. |
privateca.operations.list |
Apresenta operações de longa duração num projeto. |
O que se segue?
- Saiba como a IAM centraliza a gestão de autorizações e âmbitos de acesso para Google Cloud recursos.
- Saiba como configurar políticas de IAM.
- Saiba mais sobre as chaves de encriptação geridas pelo cliente (CMEK).