Control de acceso con IAM

En esta página, se describen los roles de IAM para Certificate Authority Service.

CA Service usa roles de Identity and Access Management (IAM) para el control de acceso. Con IAM, controlas el acceso definiendo quién (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 los recursos de Google Cloud. Sigue el principio de privilegio mínimo mientras otorgas IAM puedes proteger la integridad de los recursos de Certificate Authority Service la seguridad del grupo de AC y de la infraestructura de clave pública (PKI) general a sí mismo.

Para aprender cómo asignar roles de IAM a usuarios o cuentas de servicio, lee Cómo otorgar, cambiar y revocar el acceso a recursos en la documentación de IAM.

Funciones predefinidas

En la siguiente tabla, se enumeran los roles de IAM predefinidos y los permisos asociados con cada uno de ellos:

Rol Permisos Descripción
Auditor del servicio de CA
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 de Auditor del servicio de AC tiene acceso de solo lectura a todos los recursos del servicio de AC y puede recuperar y enumerar propiedades del grupo de AC, AC, certificados, listas de revocación, políticas de IAM y proyectos. Te recomendamos que asignes este rol a las personas encargadas de validar la seguridad y las operaciones del grupo de AC, y que no tengan ninguna responsabilidad diaria asignada para administrar el servicio.
Solicitante del certificado del Servicio de CA
roles/privateca.certificateRequester
privateca.certificates.create Un rol de solicitante de certificados del servicio de AC puede enviar solicitudes de certificados a un grupo de AC. Te recomendamos que otorgues 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 de administrador de certificados del servicio de AC, este rol no le permite al usuario obtener o enumerar el certificado emitido recientemente ni obtener información sobre el grupo de AC.
Solicitante de certificados de cargas de trabajo de CA Service
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf Un solicitante de certificados de cargas de trabajo del Servicio de CA puede solicitar certificados del Servicio de CA con la identidad del emisor.
Administrador de certificados del Servicio de CA
roles/privateca.certificateManager
Todos los permisos de roles/privateca.auditor, además de:
privateca.certificates.create
Un administrador de certificados del servicio de CA puede enviar solicitudes de emisión de certificados a un grupo de AC, como el solicitante de certificados del servicio de AC. Además, este rol hereda los permisos del rol de Auditor del servicio de CA. Te recomendamos que asignes este rol a personas responsables de crear, hacer un seguimiento y revisar las solicitudes de certificados en un grupo de AC, como un gerente o un ingeniero principal.
Usuario de plantillas de certificados del Servicio de AC
roles/privateca.templateUser
privateca.certificateTemplates.get
privateca.certificateTemplates.list
privateca.certificateTemplates.use
Un usuario de plantillas de certificados del Servicio de CA puede leer, enumerar y usar plantillas de certificados.
Administrador de operaciones del Servicio de CA
roles/privateca.caManager
Todos los permisos de roles/privateca.auditor, más:
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 administrador de operaciones del servicio de AC puede crear, actualizar y borrar grupos de AC y AC. Este rol también puede revocar certificados y crear buckets de Cloud Storage. También incluye las mismas capacidades que el Auditor del Servicio de CA. En este puesto, las personas son responsables de configurar e implementar grupos de AC en la organización, además de configurar la política de emisión del grupo de AC.

Este rol no permite crear certificados. Para ello, usa los roles Solicitante de certificados del servicio de AC, Administrador de certificados del servicio de AC o Administrador del servicio de AC.
Administrador del servicio de CA
roles/privateca.admin
Todos los permisos de roles/privateca.certificateManager y roles/privateca.caManager, además de:
privateca.*.setIamPolicy
privateca.caPools.use
privateca.operations.cancel
privateca.operations.delete
privateca.resourcemanager.projects.get
privateca.resourcemanager.projects.list
storage.buckets.create
El rol Administrador del servicio de CA hereda los permisos de los roles Administrador de operaciones del Servicio de CA y Administrador de certificados del Servicio de CA. Con esta función, se pueden realizar todas las acciones dentro de CA Service. Un administrador del servicio de AC puede establecer políticas de IAM para el grupo de AC y crear buckets de Cloud Storage. Te recomendamos que rara vez asignes este rol una vez que se establece el servicio. En este rol, las personas pueden realizar todos los aspectos de administración, incluida la asignación de derechos a otros y la gestión de solicitudes de certificados en el Servicio de CA. Te recomendamos que implementes un control y acceso especiales a esta cuenta de rol para evitar el acceso o uso no autorizado.

Función de agente de servicio de CA

Cuando proporciones claves de firma de Cloud KMS existentes Cloud Storage durante la creación de la AC, el servicio de Cuenta de servicio del agente de servicio (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) deben tener al recurso correspondiente.

En Cloud KMS, se requiere roles/cloudkms.signerVerifier para usar el clave de firma y leer la clave pública. Se requiere roles/viewer para supervisar la clave de la integración de Cloud Monitoring.

En el caso de Cloud Storage, se requiere roles/storage.objectAdmin para escribir el certificado de la AC y las CRL en un bucket. roles/storage.legacyBucketReader es necesarias para supervisar el bucket para la integración de Cloud Monitoring. Para obtener más información, consulta Funciones de IAM para Cloud Storage.

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

  1. Crear una cuenta de servicio con el rol de agente de servicio

    gcloud

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

    Aquí:

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

    Si se proporcionan claves de firma de Cloud KMS existentes, haz lo siguiente:

    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'
    

    Aquí:

    • "CRYPTOKEY_NAME" es el nombre de tu clave.
    • "KEYRING_NAME" es el nombre del llavero de claves.
    • "LOCATION" es la ubicación de Cloud KMS en la que creaste el llavero 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. Otorga roles/storage.objectAdmin y roles/storage.legacyBucketReader roles con la siguiente gcloud .

    Si se proporcionan buckets de Cloud Storage existentes, haz lo siguiente:

    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
    

    Aquí:

    • BUCKET_NAME es el nombre de tu depósito de Cloud Storage.
    • PROJECT_NUMBER es el identificador único de tu 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 la API

En la siguiente tabla, se enumeran los permisos que debe tener el emisor para llamar a cada en la API de CA Service:

Permiso Descripción
privateca.caPools.create Crea un grupo de autoridades certificadoras (AC).
privateca.caPools.update Actualiza un grupo de AC.
privateca.caPools.list Enumera los grupos de AC de un proyecto.
privateca.caPools.get Recupera un grupo de AC.
privateca.caPools.delete Borra un grupo de AC.
privateca.caPools.use Usa un grupo de AC.
privateca.caPools.getIamPolicy Recupera la política de IAM del grupo de AC.
privateca.caPools.setIamPolicy Establece una política de IAM para el grupo de AC.
privateca.certificateAuthorities.create Crea una AC.
privateca.certificateAuthorities.delete Programa una AC para su eliminación.
privateca.certificateAuthorities.get Obtén una solicitud de firma de certificado de la AC o de la AC.
privateca.certificateAuthorities.list Enumera las AC de un proyecto.
privateca.certificateAuthorities.update Actualizar una AC, lo que incluye activarla, habilitarla, inhabilitarla y restablecerla
privateca.certificates.create Solicita certificados del servicio de CA.
privateca.certificates.createForSelf Puede solicitar certificados del Servicio de CA con la identidad del emisor.
privateca.certificates.get Obtén un certificado y sus metadatos.
privateca.certificates.list Muestra una lista de todos los certificados de una AC.
privateca.certificates.update Actualizar los metadatos de un certificado, incluida la revocación
privateca.certificateRevocationLists.get Obtén una lista de revocación de certificados (CRL) en una AC.
privateca.certificateRevocationLists.getIamPolicy Obtén la política de IAM para una CRL.
privateca.certificateRevocationLists.list Enumera todas las CRL de una AC.
privateca.certificateRevocationLists.setIamPolicy Establece la política de IAM para 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 una lista de todas las plantillas de certificados.
privateca.certificateTemplates.update Actualizar una plantilla de certificado
privateca.certificateTemplates.delete Borra una plantilla de certificado.
privateca.certificateTemplates.getIamPolicy Obtener política de IAM para una plantilla de certificado
privateca.certificateTemplates.setIamPolicy Establecer política de IAM para 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 Borra una operación de larga duración.
privateca.operations.get Obtén una operación de larga duración.
privateca.operations.list Enumera las operaciones de larga duración de un proyecto.

¿Qué sigue?

  • Descubre cómo IAM centraliza la administración de los permisos y los niveles de acceso para los recursos de Google Cloud.
  • Obtén más información para configurar políticas de IAM.