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 de IAM contêm um conjunto de autorizações que permitem aos utilizadores realizar ações específicas em recursos. Google CloudSeguindo o princípio do menor privilégio ao conceder funções do 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.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
|
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 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.get privateca.certificateTemplates.list privateca.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.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 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 Pedidor 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 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.*.setIamPolicy privateca.caPools.use privateca.operations.cancel privateca.operations.delete resourcemanager.projects.get resourcemanager.projects.list storage.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 de assinatura do Cloud KMS ou contentores do Cloud Storage existentes durante a criação da AC, 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 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 integração com o Cloud Monitoring. Para mais
informações, consulte o artigo 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_ID
Onde:
- PROJECT_ID é o identificador exclusivo do projeto onde o conjunto de ACs é criado.
Conceda à sua conta de serviço as funções
roles/cloudkms.signerVerifier
eroles/viewer
através do seguinte comandogcloud
.Se forem fornecidas chaves de assinatura do Cloud KMS existentes:
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'
Onde:
- "CRYPTOKEY_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 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 as funções
roles/storage.objectAdmin
eroles/storage.legacyBucketReader
à sua conta de serviço atravé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.objectAdmin
Onde:
- 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 pools de AC num projeto. |
privateca.caPools.get |
Recupere um grupo de CA. |
privateca.caPools.delete |
Elimine um grupo de CA. |
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 uma CA para eliminação. |
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 AC. |
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.