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 do Identity and Access Management (IAM) para o 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 nos recursos do Google Cloud. Seguindo o princípio de privilégio mínimo ao conceder acesso ao IAM você pode proteger a integridade dos recursos do Certificate Authority Service e gerenciar a segurança do pool de ACs e da infraestrutura geral de chave pública (ICP) por conta própria.
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 pools de ACs, da AC, dos certificados, das listas de revogação, das políticas do IAM e dos 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 AC. 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. Diferente do papel de "Gerenciador de certificados de serviço de CA", ele não permite que o usuário acesse ou liste o certificado recém-emitido nem informações sobre o pool de ACs. |
Requerente de certificado da carga de trabalho de serviço 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. |
Gerenciador de certificados de serviço de CAroles/privateca.certificateManager |
Todas as permissões de roles/privateca.auditor , mais:privateca.certificates.create
|
Um CA Service Certificate Manager 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ç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.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 CA Service Operation Manager pode criar, atualizar e excluir pools de CAs 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 CA na organização, além de definir a política de emissão do pool de CAs. Esse papel não permite a criação de certificados. Para isso, use os papéis "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 de Administrador de serviço de CA herda as permissões dos papéis de Gerente de operações de serviço de CA e Gerenciador de certificados de serviço de CA. 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 desempenhar 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 o acesso a essa conta de função para evitar o 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 AC, o serviço de AC
Conta de serviço do agente de serviço
(service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com
) deve ser
recebeu acesso ao respectivo recurso.
No Cloud KMS, roles/cloudkms.signerVerifier
é necessário para usar a
chave de assinatura e ler a chave pública. O roles/viewer
é necessário para monitorar
a chave da integração do Cloud Monitoring.
Para o Cloud Storage, roles/storage.objectAdmin
é necessário para gravar o
certificado de CA e CRLs para um bucket. roles/storage.legacyBucketReader
é
necessário para monitorar o bucket para integração com o Cloud Monitoring. Para mais
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.
Criar 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 AC foi criado.
Conceda à sua conta de serviço os papéis
roles/cloudkms.signerVerifier
eroles/viewer
usando o comandogcloud
a seguir.Se chaves de assinatura do Cloud KMS 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 o keyring foi criado.
- "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'
Conceda à sua conta de serviço
roles/storage.objectAdmin
e papéisroles/storage.legacyBucketReader
usando os seguintesgcloud
kubectl.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.objectAdmin
Em 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 na API CA Service:
Permissão | Descrição |
---|---|
privateca.caPools.create |
Criar um pool de autoridade certificadora (CA). |
privateca.caPools.update |
Atualizar um pool de ACs. |
privateca.caPools.list |
Listar pools de CAs em um projeto. |
privateca.caPools.get |
Recuperar um pool de ACs. |
privateca.caPools.delete |
Excluir um pool de ACs. |
privateca.caPools.use |
Usar 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 a exclusão de uma AC. |
privateca.certificateAuthorities.get |
Receba uma solicitação de assinatura de certificado de CA ou de CA. |
privateca.certificateAuthorities.list |
Lista as ACs de um projeto. |
privateca.certificateAuthorities.update |
Atualizar uma CA, incluindo ativar, habilitar, desabilitar e restaurar a CA. |
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 |
Recebe um certificado e os metadados dele. |
privateca.certificates.list |
Lista todos os certificados em uma AC. |
privateca.certificates.update |
Atualizar os metadados de um certificado, incluindo a revogação. |
privateca.certificateRevocationLists.get |
Conseguir uma lista de revogação de certificado (CRL) em uma CA. |
privateca.certificateRevocationLists.getIamPolicy |
Consiga a política do IAM para uma CRL. |
privateca.certificateRevocationLists.list |
Liste todas as CRLs de uma CA. |
privateca.certificateRevocationLists.setIamPolicy |
Defina a política do IAM para uma CRL. |
privateca.certificateRevocationLists.update |
Atualizar uma CRL. |
privateca.certificateTemplates.create |
Criar um modelo de certificado. |
privateca.certificateTemplates.get |
Recuperar um modelo de certificado. |
privateca.certificateTemplates.list |
Lista todos os modelos de certificado. |
privateca.certificateTemplates.update |
Atualizar um modelo de certificado. |
privateca.certificateTemplates.delete |
Excluir um modelo de certificado. |
privateca.certificateTemplates.getIamPolicy |
Acesse a política de IAM para um modelo de certificado. |
privateca.certificateTemplates.setIamPolicy |
Definir a 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 |
Receba uma operação de longa duração. |
privateca.operations.list |
Listar 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.