Controle de acesso com o IAM
Nesta página, descrevemos os papéis do IAM para o Certificate Authority Service.
O CA Service usa papéis de gerenciamento de identidade e acesso (IAM) para controle de acesso. Com o IAM, você controla o acesso definindo quem (identidade) tem qual acesso (papel) a qual recurso. Os papéis do IAM contêm um conjunto de permissões que permite aos usuários executar ações específicas nos recursos do Google Cloud. Ao seguir o princípio de privilégio mínimo ao conceder papéis do IAM, você protege a integridade dos recursos do Certificate Authority Service e gerencia a segurança do pool de ACs e da própria infraestrutura de chave pública (ICP).
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.get privateca.caPools.getIamPolicy privateca.caPools.list privateca.certificateAuthorities.list privateca.certificateAuthorities.get privateca.certificateTemplates.get privateca.certificateTemplates.getIamPolicy privateca.certificateTemplates.list privateca.certificates.list privateca.certificates.get privateca.locations.get privateca.locations.list privateca.operations.get privateca.operations.list privateca.certificateRevocationLists.list privateca.certificateRevocationLists.get privateca.certificateRevocationLists.getIamPolicy resourcemanager.projects.get resourcemanager.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 de pool de CAs, CA, 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 nenhuma responsabilidade diária atribuída para administrar o serviço. |
Solicitante de certificado de serviço de CAroles/privateca.certificateRequester |
privateca.certificates.create
|
Um papel de solicitante de certificado de serviço de CA pode enviar solicitações de certificado para um pool de CAs. Recomendamos que você conceda esse papel a pessoas confiáveis que têm 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 Gerenciador de certificados de serviço de CA, esse papel não permite acessar ou listar o certificado recém-emitido nem informações sobre o pool de ACs. |
Solicitante de certificado da carga de trabalho de serviço de CAroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Um solicitante de certificado da carga de trabalho de serviço de CA pode solicitar certificados do serviço de CA com a identidade do autor da chamada. |
Gerenciador de certificados de serviço de CAroles/privateca.certificateManager |
Todas as permissões de roles/privateca.auditor , mais:privateca.certificates.create
|
Um gerenciador de certificados de serviço de CA pode enviar solicitações de emissão de certificado para um pool de CAs, como o Solicitante de certificado de serviço de CA. Além disso, esse papel também herda as permissões do papel de Auditor de serviços 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.get privateca.certificateTemplates.list privateca.certificateTemplates.use
|
Um usuário de 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 , mais:privateca.certificates.update privateca.caPools.create privateca.caPools.delete privateca.caPools.update privateca.certificateAuthorities.create privateca.certificateAuthorities.delete privateca.certificateAuthorities.update privateca.certificateRevocationLists.update privateca.certificateTemplates.create privateca.certificateTemplates.delete privateca.certificateTemplates.update privateca.certificates.update privateca.operations.cancel privateca.operations.delete resourcemanager.projects.get resourcemanager.projects.list storage.buckets.create
|
Um gerente de operações de serviço de CA pode criar, atualizar e excluir pools e CAs de CA. Esse papel também pode revogar certificados e criar buckets do Cloud Storage. Ela também inclui as mesmas habilidades do auditor de serviços de AC. Nesse papel, os indivíduos são responsáveis por configurar e implantar pools de CAs na organização, além de configurar a política de emissão do pool. Esse papel não permite a criação de certificados. Para isso, use as funções "Solicitante de certificado de serviço de CA", "Gerenciador de certificados de serviço de CA" ou "Administrador de serviço de CA". |
Administrador de serviço de CAroles/privateca.admin |
Todas as permissões de roles/privateca.certificateManager ,
e roles/privateca.caManager , mais:privateca.*.setIamPolicy privateca.caPools.use privateca.operations.cancel privateca.operations.delete privateca.resourcemanager.projects.get privateca.resourcemanager.projects.list storage.buckets.create
|
O papel Administrador de serviço de CA herda as permissões das funções Gerente de operações de serviço de CA e Gerente de certificados de serviço de CA. Esse papel pode executar 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 CAs e criar buckets do Cloud Storage. Recomendamos que você raramente atribua esse papel depois que o serviço for estabelecido. Nessa função, os indivíduos podem executar todos os aspectos da administração, incluindo a atribuição de direitos a outras pessoas e o gerenciamento de solicitações de certificado no CA Service. Recomendamos que você implemente um controle e acesso especiais a essa conta de função para impedir acesso ou uso não autorizado. |
Papel de agente de serviço de CA
Ao fornecer chaves de assinatura atuais do Cloud KMS ou
buckets do Cloud Storage durante a criação da CA, a conta de serviço
do agente de serviço da CA
(service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com
) precisa receber
acesso ao respectivo recurso.
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 a integração do Cloud Monitoring.
No Cloud Storage, roles/storage.objectAdmin
é necessário para gravar o certificado de CA e as CRLs em um bucket. O 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_ID
Em que:
- PROJECT_ID é o identificador exclusivo do projeto em que o pool de ACs é criado.
Conceda à sua conta de serviço os papéis
roles/cloudkms.signerVerifier
eroles/viewer
usando o seguinte comandogcloud
.Se as chaves de assinatura do Cloud KMS atuais forem fornecidas:
gcloud
gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'
Em que:
- "CRYPTOKEY_NAME" é o nome da sua chave.
- "KEYRING_NAME" é o nome do seu keyring.
- "LOCATION" é o local do Cloud KMS em que você criou o keyring.
- "PROJECT_NUMBER" é o nome da sua conta de serviço.
gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'
Se os buckets do Cloud Storage forem fornecidos, use a ferramenta de linha de comando
gsutil
para vincular os papéis necessários ao bucket do Cloud Storage.gsutil
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.objectAdmin gs://BUCKET_NAME
Em que:
- PROJECT_NUMBER é o identificador exclusivo da conta de serviço.
- BUCKET_NAME é o nome do bucket do Cloud Storage.
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.legacyBucketReader gs://BUCKET_NAME
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 CA Service:
Permissão | Descrição |
---|---|
privateca.caPools.create |
Crie um pool de autoridade certificadora (CA). |
privateca.caPools.update |
Atualizar um pool de ACs. |
privateca.caPools.list |
Listar pools de CA em um projeto. |
privateca.caPools.get |
Recuperar um pool de ACs. |
privateca.caPools.delete |
Excluir 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 |
Programar uma AC para exclusão. |
privateca.certificateAuthorities.get |
Receba uma solicitação de assinatura de certificado CA ou CA. |
privateca.certificateAuthorities.list |
Lista as ACs de um projeto. |
privateca.certificateAuthorities.update |
Atualizar uma AC, incluindo ativar, ativar, desativar e restaurar a AC. |
privateca.certificates.create |
Solicitar 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 |
Lista todos os certificados em uma CA. |
privateca.certificates.update |
Atualizar os metadados de um certificado, incluindo a revogação. |
privateca.certificateRevocationLists.get |
Receba uma lista de revogação de certificados (CRL) em uma CA. |
privateca.certificateRevocationLists.getIamPolicy |
Acesse a política do IAM para uma CRL. |
privateca.certificateRevocationLists.list |
Liste todas as CRLs em uma CA. |
privateca.certificateRevocationLists.setIamPolicy |
Defina a política do IAM para uma CRL. |
privateca.certificateRevocationLists.update |
Atualize uma CRL. |
privateca.certificateTemplates.create |
Criar um modelo de certificado. |
privateca.certificateTemplates.get |
Recupere um modelo de certificado. |
privateca.certificateTemplates.list |
Liste todos os modelos de certificado. |
privateca.certificateTemplates.update |
Atualizar um modelo de certificado. |
privateca.certificateTemplates.delete |
Excluir um modelo de certificado. |
privateca.certificateTemplates.getIamPolicy |
Consiga a política do IAM para um modelo de certificado. |
privateca.certificateTemplates.setIamPolicy |
Definir uma política de 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 |
Recebe uma operação de longa duração. |
privateca.operations.list |
Lista 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 recursos do Google Cloud.
- Saiba como configurar políticas do IAM.