Control de acceso con IAM
En esta página, se describen los roles de IAM para Certificate Authority Service.
El servicio de la CA 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. Las funciones de IAM contienen un conjunto de permisos que permiten a los usuarios realizar acciones específicas en los recursos de Google Cloud. Si sigues el principio de privilegio mínimo cuando otorgas roles de IAM, puedes proteger la integridad de los recursos de Certificate Authority Service y administrar la seguridad del grupo de AC y de la infraestructura de clave pública (PKI) general.
Para aprender cómo asignar las funciones de IAM a usuarios o cuentas de servicio, lee Cómo otorgar, cambiar y revocar el acceso a los recursos en la documentación de IAM.
Funciones predefinidas
En la siguiente tabla, se enumeran los roles de IAM predefinidos y los permisos asociados a cada uno de ellos:
| Rol | Permisos | Descripción |
|---|---|---|
Auditor del servicio de CAroles/privateca.auditor |
privateca.caPools.getprivateca.caPools.getIamPolicyprivateca.caPools.listprivateca.certificateAuthorities.listprivateca.certificateAuthorities.getprivateca.certificateTemplates.getprivateca.certificateTemplates.getIamPolicyprivateca.certificateTemplates.listprivateca.certificates.listprivateca.certificates.getprivateca.locations.getprivateca.locations.listprivateca.operations.getprivateca.operations.listprivateca.certificateRevocationLists.listprivateca.certificateRevocationLists.getprivateca.certificateRevocationLists.getIamPolicyresourcemanager.projects.getresourcemanager.projects.list
|
El rol de auditor del servicio de CA tiene acceso de solo lectura a todos los recursos del servicio de CA y puede recuperar y enumerar las propiedades del grupo de CA, la CA, los certificados, las listas de revocación, las políticas de IAM y los proyectos. Te recomendamos que asignes este rol a las personas responsables de validar la seguridad y las operaciones del grupo de entidades certificadoras, y que no tengan responsabilidades diarias asignadas para administrar el servicio. |
Solicitante del certificado del servicio de CAroles/privateca.certificateRequester |
privateca.certificates.create
|
Un rol de solicitante de certificados del servicio de CA puede enviar solicitudes de certificados a un grupo de CA. 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 CA, este rol no permite que el usuario obtenga ni enumere el certificado recién emitido, ni que obtenga información sobre el grupo de CA. |
Solicitante de certificados de cargas de trabajo del Servicio de CAroles/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 CAroles/privateca.certificateManager |
Todos los permisos de roles/privateca.auditor, más:privateca.certificates.create
|
Un administrador de certificados del servicio de CA puede enviar solicitudes de emisión de certificados a un grupo de CA, como el solicitante de certificados del servicio de CA. Además, este rol también hereda los permisos del rol de auditor del servicio de CA. Te recomendamos que asignes este rol a las personas responsables de crear, hacer un seguimiento y revisar las solicitudes de certificados en un grupo de entidades certificadoras, como un administrador o un ingeniero principal. |
Usuario de plantillas de certificados del Servicio de CAroles/privateca.templateUser |
privateca.certificateTemplates.getprivateca.certificateTemplates.listprivateca.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 CAroles/privateca.caManager |
Todos los permisos de roles/privateca.auditor, más:privateca.certificates.updateprivateca.caPools.createprivateca.caPools.deleteprivateca.caPools.updateprivateca.certificateAuthorities.createprivateca.certificateAuthorities.deleteprivateca.certificateAuthorities.updateprivateca.certificateRevocationLists.updateprivateca.certificateTemplates.createprivateca.certificateTemplates.deleteprivateca.certificateTemplates.updateprivateca.certificates.updateprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
Un administrador de operaciones del Servicio de CA puede crear, actualizar y borrar grupos de CA y CA. Este rol también puede revocar certificados y crear buckets de Cloud Storage. También incluye las mismas capacidades que el auditor de servicios de la CA. En este rol, las personas son responsables de configurar y, luego, implementar los grupos de CA en la organización, además de configurar la política de emisión del grupo de CA. Este rol no permite crear certificados. Para ello, usa los roles de Solicitante del certificado del servicio de CA, Administrador de certificados del servicio de CA o Administrador del servicio de CA. |
Lector de grupos de Servicios de CAroles/privateca.poolReader |
privateca.caPools.get |
Un usuario con el rol de Lector de grupos de Servicios de CA puede leer grupos de CA en el Servicio de CA. |
Administrador del servicio de CAroles/privateca.admin |
Todos los permisos de roles/privateca.certificateManager y roles/privateca.caManager, más:privateca.*.setIamPolicyprivateca.caPools.useprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
El rol de administrador del servicio de CA hereda permisos de los roles de administrador de operaciones del servicio de CA y administrador de certificados del servicio de CA. Este rol puede realizar todas las acciones dentro del servicio de CA. Un administrador del servicio de CA puede establecer políticas de IAM para el grupo de CA y crear buckets de Cloud Storage. Te recomendamos que asignes este rol con poca frecuencia una vez que se establezca el servicio. En este rol, las personas pueden realizar todos los aspectos de la administración, incluida la asignación de derechos a otras personas y la administración de solicitudes de certificados en el servicio de AC. Te recomendamos que implementes un control especial y acceso a esta cuenta de rol para evitar el acceso o uso no autorizados. |
Función de agente de servicio de CA
Cuando proporciones claves de Cloud KMS o buckets de Cloud Storage existentes, se debe otorgar acceso a la cuenta de servicio del agente de servicio de CA Service (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) al recurso correspondiente.
En el caso de Cloud KMS, se requiere roles/cloudkms.signerVerifier para usar la clave de firma y leer la clave pública. roles/viewer es obligatorio para supervisar la clave de la integración de Cloud Monitoring.
Para las claves de encriptación administradas por el cliente (CMEK) que se usan para encriptar datos en reposo, se requiere el rol roles/cloudkms.cryptoKeyEncrypterDecrypter. Esto permite que el agente de servicio encripte y desencripte datos en reposo.
En el caso de Cloud Storage, se requiere roles/storage.objectAdmin para escribir el certificado de CA y las CRL en un bucket. roles/storage.legacyBucketReader es necesario para supervisar el bucket para la integración de Cloud Monitoring. Si deseas obtener más información, consulta Roles de IAM para Cloud Storage.
Cuando accedas al servicio a través de la API, ejecuta los siguientes comandos.
Crea una cuenta de servicio con el rol de agente de servicio.
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_IDAquí:
- PROJECT_ID es el identificador único del proyecto en el que se crea el grupo de CA.
Otorga a tu cuenta de servicio los roles necesarios con el siguiente comando de
gcloud.Si se proporcionan claves de Cloud KMS existentes, haz lo siguiente:
gcloud
En el caso de las claves de firma de Cloud KMS, haz lo siguiente:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'Para las claves de encriptación de Cloud KMS, haz lo siguiente:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'Aquí:
- "KEY_NAME" es el nombre de tu clave.
- "KEYRING_NAME" es el nombre de tu llavero de claves.
- "LOCATION" es la ubicación de Cloud KMS en la que creaste tu llavero de claves.
- "PROJECT_NUMBER" es el número del proyecto de Google Cloud que contiene la clave.
Otorga a tu cuenta de servicio los roles de
roles/storage.objectAdminyroles/storage.legacyBucketReadercon el siguiente comando degcloud.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.objectAdminAquí:
- 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 método 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 CA. |
privateca.caPools.list |
Enumera los grupos de CA en un proyecto. |
privateca.caPools.get |
Recupera un grupo de CA. |
privateca.caPools.delete |
Borra un grupo de CA. |
privateca.caPools.use |
Usar un grupo de CA |
privateca.caPools.getIamPolicy |
Recupera la política de IAM del grupo de CA. |
privateca.caPools.setIamPolicy |
Establece una política de IAM para el grupo de CA. |
privateca.certificateAuthorities.create |
Crea una CA. |
privateca.certificateAuthorities.delete |
Programa la eliminación de una CA. |
privateca.certificateAuthorities.get |
Obtén una solicitud de firma de certificado de CA o de CA. |
privateca.certificateAuthorities.list |
Enumera las entidades certificadoras de un proyecto. |
privateca.certificateAuthorities.update |
Actualiza una CA, 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 |
Obtiene un certificado y sus metadatos. |
privateca.certificates.list |
Enumera todos los certificados de una CA. |
privateca.certificates.update |
Actualiza los metadatos de un certificado, incluida la revocación. |
privateca.certificateRevocationLists.get |
Obtén una lista de revocación de certificados (CRL) en una CA. |
privateca.certificateRevocationLists.getIamPolicy |
Obtiene la política de IAM para una CRL. |
privateca.certificateRevocationLists.list |
Enumera todas las CRL en una CA. |
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 |
Enumera todas las plantillas de certificados. |
privateca.certificateTemplates.update |
Actualiza una plantilla de certificado. |
privateca.certificateTemplates.delete |
Borra una plantilla de certificado. |
privateca.certificateTemplates.getIamPolicy |
Obtiene la política de IAM para una plantilla de certificado. |
privateca.certificateTemplates.setIamPolicy |
Establece la política de IAM para una plantilla de certificado. |
privateca.certificateTemplates.use |
Usar 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 en 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.
- Obtén más información sobre las claves de encriptación administradas por el cliente (CMEK).