Control de acceso con IAM
En esta página, se describen los roles de IAM de Certificate Authority Service.
El servicio de AC 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. Si sigues el principio de privilegio mínimo mientras 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) en general.
Para aprender a 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 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
|
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, la AC, los certificados, las listas de revocación, las políticas de IAM y los proyectos. Te recomendamos que asignes este rol a personas que sean responsables 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 ACroles/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 del Servicio de ACroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Un solicitante de certificados de cargas de trabajo del Servicio de AC puede solicitar certificados del Servicio de AC con la identidad del emisor. |
Administrador de certificados del Servicio de ACroles/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 también hereda los permisos del rol de Auditor de servicios de la AC. 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 ACroles/privateca.templateUser |
privateca.certificateTemplates.get privateca.certificateTemplates.list privateca.certificateTemplates.use
|
Un usuario de plantillas de certificados del Servicio de AC 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.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 funciones que el Auditor de servicios de la AC. 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 CAroles/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 de administrador de servicios de AC hereda los permisos de los roles de administrador de operaciones de servicios de AC y de administrador de certificados de servicios de AC. Este rol puede realizar todas las acciones dentro del servicio de CA. 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 asignes este rol con poca frecuencia una vez que se establezca el servicio. En este puesto, las personas pueden realizar todos los aspectos de la administración, como asignar derechos a otras personas y administrar solicitudes de certificados en el servicio de AC. 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 del Servicio de AC
Cuando proporciones claves de firma de Cloud KMS existentes o
buckets de Cloud Storage durante la creación de la AC, se debe
otorgar acceso al recurso correspondiente a la cuenta de servicio
del agente de servicio de la AC (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com
).
Para Cloud KMS, se requiere roles/cloudkms.signerVerifier
para usar la 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 obligatorio para supervisar el bucket de 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.
Crea 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.
Otorga a tu cuenta de servicio los roles de
roles/cloudkms.signerVerifier
yroles/viewer
con el siguiente comandogcloud
.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 de tu 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'
Otorga a tu cuenta de servicio los roles de
roles/storage.objectAdmin
yroles/storage.legacyBucketReader
con el siguiente comandogcloud
.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 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 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 |
Muestra una lista de AC en un proyecto. |
privateca.certificateAuthorities.update |
Actualizar una AC, incluida la activación, habilitación, inhabilitación y restablecimiento de la AC |
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 |
Actualiza los metadatos de un certificado, incluida la revocación. |
privateca.certificateRevocationLists.get |
Obtener 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 |
Actualiza una plantilla de certificado. |
privateca.certificateTemplates.delete |
Borrar una plantilla de certificado |
privateca.certificateTemplates.getIamPolicy |
Obtén la política de IAM de una plantilla de certificado. |
privateca.certificateTemplates.setIamPolicy |
Configura la 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.