Controle de acesso com o IAM
Esta página descreve os papéis do IAM para o Certificate Authority Service.
O serviço de CA usa papéis do Identity and Access Management (IAM) para controle de acesso. Com o IAM, você controla o acesso definindo quem (identidade) tem qual acesso (papel) para qual recurso. Os papéis do IAM contêm um conjunto de permissões que permitem que os usuários realizem ações específicas em Google Cloud recursos. Ao seguir o princípio de privilégio mínimo ao conceder papéis do IAM, você pode proteger a integridade dos recursos do Certificate Authority Service e gerenciar a segurança do pool de ACs e da infraestrutura de chave pública (PKI) geral.
Para saber como atribuir papéis do IAM a um usuário ou conta de serviço, leia Como conceder, alterar e revogar acesso a recursos na documentação do IAM.
Papéis predefinidos
A tabela a seguir lista os papéis predefinidos do IAM e as permissões associadas a cada um deles:
| Papel | Permissões | Descrição |
|---|---|---|
Auditor de serviço de CAroles/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
|
O papel de auditor de serviço de CA tem acesso somente leitura a todos os recursos de serviço de CA e pode recuperar e listar propriedades do pool de ACs, AC, certificados, listas de revogação, políticas do IAM e projetos. Recomendamos que você atribua esse papel a pessoas responsáveis por validar a segurança e as operações do pool de ACs e que não tenham responsabilidades diárias atribuídas para administrar o serviço. |
Requerente do certificado de serviço de CAroles/privateca.certificateRequester |
privateca.certificates.create
|
Um papel de requerente do certificado de serviço de CA pode enviar solicitações de certificado a um pool de ACs. Recomendamos que você conceda esse papel a pessoas confiáveis que tenham permissão para solicitar certificados. Um usuário com esse papel pode solicitar certificados arbitrários sujeitos à política de emissão. Ao contrário do papel de Certificate Manager de serviço de CA, esse papel não permite que o usuário receba ou liste o certificado recém-emitido ou receba informações sobre o pool de ACs. |
Requerente de certificado da carga de trabalho de serviços de CAroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Um requerente de certificado da carga de trabalho de serviços de CA pode solicitar certificados do serviço de CA com a identidade do autor da chamada. |
CA Certificate Managerroles/privateca.certificateManager |
Todas as permissões de roles/privateca.auditor, além de:privateca.certificates.create
|
Um Certificate Manager de serviço de CA pode enviar solicitações de emissão de certificado a um pool de ACs, como o requerente de certificado de serviço de CA. Além disso, esse papel também herda as permissões do papel de auditor de serviço de CA. Recomendamos que você atribua esse papel a pessoas responsáveis por criar, rastrear e revisar solicitações de certificado em um pool de ACs, como um gerente ou um engenheiro líder. |
Usuário do modelo de certificado de serviço de CAroles/privateca.templateUser |
privateca.certificateTemplates.getprivateca.certificateTemplates.listprivateca.certificateTemplates.use
|
Um usuário do modelo de certificado de serviço de CA pode ler, listar e usar modelos de certificado. |
Gerente de operações de serviço de CAroles/privateca.caManager |
Todas as permissões de roles/privateca.auditor, além de: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 gerente de operações de serviço de CA pode criar, atualizar e excluir pools de ACs e ACs. Esse papel também pode revogar certificados e criar buckets do Cloud Storage. Ele também inclui as mesmas habilidades do auditor de serviço de CA. Nesse papel, os indivíduos são responsáveis por configurar e implantar pools de ACs na organização, além de configurar a política de emissão do pool de ACs. Esse papel não permite a criação de certificados. Para fazer isso, use os papéis de requerente do certificado de serviço de AC, Certificate Manager de serviço de AC ou administrador de serviço de AC. |
Leitor do pool de serviços de CAroles/privateca.poolReader |
privateca.caPools.get |
Um usuário com o papel de leitor do pool de serviços de CA pode ler pools de ACs no serviço de CA. |
Administrador de serviço de CAroles/privateca.admin |
Todas as permissões de roles/privateca.certificateManager,
e roles/privateca.caManager, além de:privateca.*.setIamPolicyprivateca.caPools.useprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
O papel de administrador de serviço de AC herda permissões dos papéis de gerente de Operações de serviço de AC e Certificate Manager de serviço de AC. Esse papel pode realizar todas as ações no serviço de CA. Um administrador de serviço de CA pode definir políticas do IAM para o pool de ACs e criar buckets do Cloud Storage. Recomendamos que você raramente atribua esse papel depois que o serviço for estabelecido. Nesse papel, os indivíduos podem realizar todos os aspectos da administração, incluindo a atribuição de direitos a outras pessoas e o gerenciamento de solicitações de certificado no serviço de CA. Recomendamos que você implemente um controle especial e acesso a essa conta de função para evitar acesso ou uso não autorizado. |
Papel de agente de serviço de CA
Ao fornecer chaves do Cloud KMS ou buckets do Cloud Storage, a conta de serviço do agente de serviço de CA (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) precisa receber acesso ao recurso respectivo.
Para o Cloud KMS, roles/cloudkms.signerVerifier é necessário para usar a chave de assinatura e ler a chave pública. roles/viewer é necessário para monitorar a chave para integração do Cloud Monitoring.
Para chaves de criptografia gerenciadas pelo cliente (CMEK) usadas para criptografar dados em repouso, o papel roles/cloudkms.cryptoKeyEncrypterDecrypter é necessário. Isso permite que o agente de serviço criptografe e descriptografe dados em repouso.
Para o Cloud Storage, roles/storage.objectAdmin é necessário para gravar o certificado de CA e as CRLs em um bucket. roles/storage.legacyBucketReader é necessário para monitorar o bucket para integração do Cloud Monitoring. Para mais
informações, consulte Papéis do IAM para o Cloud Storage.
Ao acessar o serviço pela API, execute os comandos a seguir.
Crie uma conta de serviço com o papel de agente de serviço.
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_IDEm que:
- PROJECT_ID é o identificador exclusivo do projeto em que o pool de ACs é criado.
Conceda à conta de serviço os papéis necessários usando o comando
gclouda seguir.Se as chaves do Cloud KMS forem fornecidas:
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 criptografia 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'Em que:
- 'KEY_NAME' é o nome da sua chave.
- 'KEYRING_NAME' é o nome do seu keyring.
- 'LOCATION' é o local do Cloud KMS em que o keyring foi criado.
- 'PROJECT_NUMBER' é o número do Google Cloud projeto que contém a chave.
Conceda à conta de serviço os papéis
roles/storage.objectAdmineroles/storage.legacyBucketReaderusando o comandogclouda seguir.Se os buckets do Cloud Storage forem fornecidos:
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.objectAdminEm que:
- BUCKET_NAME é o nome do bucket 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
Permissões da API
A tabela a seguir lista as permissões que o autor da chamada precisa ter para chamar cada método na API do serviço de CA:
| Permissão | Descrição |
|---|---|
privateca.caPools.create |
Crie um pool de autoridade certificadora (AC). |
privateca.caPools.update |
Atualize um pool de ACs. |
privateca.caPools.list |
Liste pools de ACs em um projeto. |
privateca.caPools.get |
Recupere um pool de ACs. |
privateca.caPools.delete |
Exclua um pool de ACs. |
privateca.caPools.use |
Use um pool de ACs. |
privateca.caPools.getIamPolicy |
Recupere a política do IAM do pool de ACs. |
privateca.caPools.setIamPolicy |
Defina uma política do IAM para o pool de ACs. |
privateca.certificateAuthorities.create |
Crie uma AC. |
privateca.certificateAuthorities.delete |
Programe uma AC para exclusão. |
privateca.certificateAuthorities.get |
Receba uma AC ou solicitação de assinatura de certificado de CA. |
privateca.certificateAuthorities.list |
Liste ACs em um projeto. |
privateca.certificateAuthorities.update |
Atualize uma AC, incluindo a ativação, a habilitação, a desativação e a restauração da AC. |
privateca.certificates.create |
Solicite certificados do serviço de CA. |
privateca.certificates.createForSelf |
Solicita certificados do serviço da CA com a identidade do autor da chamada. |
privateca.certificates.get |
Receba um certificado e os metadados dele. |
privateca.certificates.list |
Liste todos os certificados em uma AC. |
privateca.certificates.update |
Atualize os metadados de um certificado, incluindo a revogação. |
privateca.certificateRevocationLists.get |
Receba uma lista de revogação de certificados (CRL) em uma AC. |
privateca.certificateRevocationLists.getIamPolicy |
Receba a política do IAM para uma CRL. |
privateca.certificateRevocationLists.list |
Liste todas as CRLs em uma AC. |
privateca.certificateRevocationLists.setIamPolicy |
Defina a política do IAM para uma CRL. |
privateca.certificateRevocationLists.update |
Atualize uma CRL. |
privateca.certificateTemplates.create |
Crie um modelo de certificado. |
privateca.certificateTemplates.get |
Recupere um modelo de certificado. |
privateca.certificateTemplates.list |
Liste todos os modelos de certificado. |
privateca.certificateTemplates.update |
Atualize um modelo de certificado. |
privateca.certificateTemplates.delete |
Exclua um modelo de certificado. |
privateca.certificateTemplates.getIamPolicy |
Receba a política do IAM para um modelo de certificado. |
privateca.certificateTemplates.setIamPolicy |
Defina a política do IAM para um modelo de certificado. |
privateca.certificateTemplates.use |
Use um modelo de certificado. |
privateca.operations.cancel |
Cancelar uma operação de longa duração. |
privateca.operations.delete |
Excluir uma operação de longa duração. |
privateca.operations.get |
Acessar uma operação de longa duração. |
privateca.operations.list |
Liste operações de longa duração em um projeto. |
A seguir
- Saiba como o IAM centraliza o gerenciamento de permissões e escopos de acesso dos Google Cloud recursos.
- Saiba como configurar políticas do IAM.
- Saiba mais sobre as chaves de criptografia gerenciadas pelo cliente (CMEK).