Control de acceso con la gestión de identidades y accesos

En esta página se describen los roles de gestión de identidades y accesos del Servicio de Autoridades de Certificación.

Servicio de Autoridades de Certificación usa roles de gestión de identidades y accesos (IAM) para controlar el acceso. Con IAM, puedes controlar el acceso definiendo qué usuario (identidad) tiene qué acceso (rol) a qué recurso. Los roles de IAM contienen un conjunto de permisos que permiten a los usuarios realizar acciones específicas en Google Cloud recursos. Si sigues el principio de los mínimos privilegios al asignar roles de IAM, puedes proteger la integridad de los recursos de Servicio de Autoridades de Certificación y gestionar la seguridad del grupo de ACs y de la infraestructura de clave pública (ICP) en general.

Para saber cómo asignar roles de gestión de identidades y accesos a un usuario o una cuenta de servicio, consulta el artículo Conceder, cambiar y revocar el acceso a recursos de la documentación de gestión de identidades y accesos.

Funciones predefinidas

En la siguiente tabla se indican los roles de gestión de identidades y accesos predefinidos y los permisos asociados a cada uno de ellos:

Rol Permisos Descripción
Auditor del Servicio de Autoridades de Certificación
roles/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
El rol Auditor del servicio de AC tiene acceso de solo lectura a todos los recursos del servicio de AC y puede obtener y enumerar las propiedades del grupo de ACs, la AC, los certificados, las listas de revocación, las políticas de gestión de identidades y accesos y los proyectos. Te recomendamos que asignes este rol a personas responsables de validar la seguridad y las operaciones del grupo de CAs, y que no tengan responsabilidades diarias asignadas para administrar el servicio.
Solicitante del certificado del Servicio de Autoridades de Certificación
roles/privateca.certificateRequester
privateca.certificates.create Un rol Solicitante del certificado del Servicio de Autoridades de Certificación puede enviar solicitudes de certificados a un grupo de autoridades de certificación. Te recomendamos que asignes este rol a personas de confianza que tengan permiso para solicitar certificados.

Un usuario con este rol puede solicitar certificados arbitrarios sujetos a la política de emisión.

A diferencia del rol Administrador de certificados del servicio de CA, este rol no permite al usuario obtener o enumerar el certificado recién emitido, ni obtener información sobre el grupo de CAs.
Solicitante de certificados de carga de trabajo del servicio de CA
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf Un solicitante de certificados de carga de trabajo del Servicio de Autoridades de Certificación puede solicitar certificados del Servicio de Autoridades de Certificación con la identidad de la persona que llama.
Administrador de certificados del Servicio de Autoridades de Certificación
roles/privateca.certificateManager
Todos los permisos de roles/privateca.auditor, más:
privateca.certificates.create
Un administrador de certificados del Servicio de Autoridades de Certificación puede enviar solicitudes de emisión de certificados a un grupo de autoridades de certificación, como el solicitante del certificado del Servicio de Autoridades de Certificación. Además, este rol también hereda los permisos del rol Auditor de servicio de CA. Te recomendamos que asignes este rol a las personas responsables de crear, monitorizar y revisar las solicitudes de certificados de un grupo de CAs, como un gestor o un ingeniero jefe.
Usuario de plantilla de certificado del servicio de CA
roles/privateca.templateUser
privateca.certificateTemplates.get
privateca.certificateTemplates.list
privateca.certificateTemplates.use
Un usuario de plantilla de certificado de servicio de AC puede leer, enumerar y usar plantillas de certificado.
Gestor operativo del Servicio de Autoridades de Certificación
roles/privateca.caManager
Todos los permisos de roles/privateca.auditor, más los siguientes:
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
Un gestor de operaciones del Servicio de Autoridades de Certificación puede crear, actualizar y eliminar grupos y autoridades de certificación. Este rol también puede revocar certificados y crear segmentos de Cloud Storage. También incluye las mismas funciones que el auditor del servicio de AC. En este rol, los usuarios se encargan de configurar e implementar grupos de AC en la organización, así como de configurar la política de emisión del grupo de AC.

Este rol no permite crear certificados. Para ello, usa los roles Solicitante del certificado del Servicio de Autoridades de Certificación, Administrador de certificados del Servicio de Autoridades de Certificación o Administrador del Servicio de Autoridades de Certificación.
Lector del pool del servicio de CA
roles/privateca.poolReader
privateca.caPools.get Un usuario con el rol Lector de grupos de AC del Servicio de AC puede leer grupos de AC en el Servicio de AC.
Administrador del Servicio de Autoridades de Certificación
roles/privateca.admin
Todos los permisos de roles/privateca.certificateManager y roles/privateca.caManager, además de los siguientes:

privateca.*.setIamPolicy
privateca.caPools.use
privateca.operations.cancel
privateca.operations.delete
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.create
El rol Administrador del Servicio de Autoridades de Certificación hereda permisos de los roles Gestor de Operaciones del Servicio de Autoridades de Certificación y Gestor de Certificados del Servicio de Autoridades de Certificación. Este rol puede realizar todas las acciones en el Servicio de Autoridades de Certificación. Un administrador del Servicio de Autoridades de Certificación puede definir políticas de gestión de identidades y accesos para el grupo de autoridades de certificación y crear segmentos de Cloud Storage. Te recomendamos que asignes este rol en contadas ocasiones una vez que se haya establecido el servicio. Con este rol, los usuarios pueden llevar a cabo todas las tareas de administración, como asignar derechos a otros usuarios y gestionar solicitudes de certificados en el servicio de AC. Te recomendamos que implementes un control especial y acceso a esta cuenta de rol para evitar accesos o usos no autorizados.

Rol de agente de servicio de CA

Cuando proporciones claves de firma de Cloud KMS o segmentos de Cloud Storage durante la creación de la autoridad certificadora, debes conceder acceso a la cuenta de servicio del agente de servicio de la autoridad certificadora (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) al recurso correspondiente.

En Cloud KMS, roles/cloudkms.signerVerifier es necesario para usar la clave de firma y leer la clave pública. Se necesita roles/viewer para monitorizar la clave de integración de Cloud Monitoring.

En Cloud Storage, se necesita roles/storage.objectAdmin para escribir el certificado de la AC y las CRLs en un segmento. roles/storage.legacyBucketReader es necesario para monitorizar el bucket en la integración de Cloud Monitoring. Para obtener más información, consulta Roles de gestión de identidades y accesos para Cloud Storage.

Cuando accedas al servicio a través de la API, ejecuta los siguientes comandos.

  1. Crea una cuenta de servicio con el rol Agente de servicio.

    gcloud

    gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_ID
    

    Donde:

    • PROJECT_ID es el identificador único del proyecto en el que se crea el grupo de CAs.
  2. Asigna los roles roles/cloudkms.signerVerifier y roles/viewer a tu cuenta de servicio mediante el siguiente comando gcloud.

    Si se proporcionan claves de firma de Cloud KMS:

    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'
    

    Donde:

    • "CRYPTOKEY_NAME" es el nombre de tu clave.
    • "KEYRING_NAME" es el nombre de tu conjunto de claves.
    • "LOCATION" es la ubicación de Cloud KMS en la que has creado el conjunto de claves.
    • "PROJECT_NUMBER" es el nombre de tu cuenta de servicio.
    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'
    
  3. Asigna los roles roles/storage.objectAdmin y roles/storage.legacyBucketReader a tu cuenta de servicio con el siguiente comando gcloud.

    Si se proporcionan segmentos de Cloud Storage ya creados:

    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
    

    Donde:

    • BUCKET_NAME es el nombre de tu segmento de Cloud Storage.
    • PROJECT_NUMBER es el identificador único de su cuenta de servicio.
    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
    

Permisos de APIs

En la siguiente tabla se indican los permisos que debe tener la persona que llama para invocar cada método de la API de servicio de CA:

Permiso Descripción
privateca.caPools.create Crea un grupo de autoridades de certificación.
privateca.caPools.update Actualiza un grupo de ACs.
privateca.caPools.list Muestra los grupos de AC de un proyecto.
privateca.caPools.get Recuperar un grupo de autoridades de certificación.
privateca.caPools.delete Elimina un grupo de autoridades de certificación.
privateca.caPools.use Usar un grupo de ACs.
privateca.caPools.getIamPolicy Recupera la política de gestión de identidades y accesos del grupo de CAs.
privateca.caPools.setIamPolicy Define una política de gestión de identidades y accesos para el grupo de CAs.
privateca.certificateAuthorities.create Crea una AC.
privateca.certificateAuthorities.delete Programar la eliminación de una AC.
privateca.certificateAuthorities.get Obtén una AC o una solicitud de firma de certificado de AC.
privateca.certificateAuthorities.list Lista de las CAs de un proyecto.
privateca.certificateAuthorities.update Actualizar una AC, lo que incluye activarla, habilitarla, inhabilitarla y restaurarla.
privateca.certificates.create Solicita certificados del Servicio de Autoridades de Certificación.
privateca.certificates.createForSelf Solicita certificados del Servicio de Autoridades de Certificación con la identidad de la persona que llama.
privateca.certificates.get Obtener un certificado y sus metadatos.
privateca.certificates.list Lista todos los certificados de una AC.
privateca.certificates.update Actualizar los metadatos de un certificado, incluida la revocación.
privateca.certificateRevocationLists.get Obtener una lista de revocación de certificados (CRL) de una CA.
privateca.certificateRevocationLists.getIamPolicy Obtiene la política de gestión de identidades y accesos de una CRL.
privateca.certificateRevocationLists.list Lista todas las CRLs de una AC.
privateca.certificateRevocationLists.setIamPolicy Define la política de gestión de identidades y accesos de una CRL.
privateca.certificateRevocationLists.update Actualiza una CRL.
privateca.certificateTemplates.create Crea una plantilla de certificado.
privateca.certificateTemplates.get Recupera una plantilla de certificado.
privateca.certificateTemplates.list Muestra todas las plantillas de certificado.
privateca.certificateTemplates.update Actualiza una plantilla de certificado.
privateca.certificateTemplates.delete Elimina una plantilla de certificado.
privateca.certificateTemplates.getIamPolicy Obtener la política de gestión de identidades y accesos de una plantilla de certificado.
privateca.certificateTemplates.setIamPolicy Defina la política de gestión de identidades y accesos de una plantilla de certificado.
privateca.certificateTemplates.use Usa una plantilla de certificado.
privateca.operations.cancel Cancela una operación de larga duración.
privateca.operations.delete Elimina una operación de larga duración.
privateca.operations.get Obtener una operación de larga duración.
privateca.operations.list Muestra las operaciones de larga duración de un proyecto.

Siguientes pasos