Control de acceso con IAM
En esta página, se describen los roles de IAM para Certificate Authority Service.
CA Service usa las funciones de administración de identidades y accesos (IAM) para el control de acceso. Con la IAM, puedes controlar el acceso mediante la definición de quién (identidad) tiene qué acceso (función) para 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 mientras otorgas funciones de IAM, puedes proteger la integridad de los recursos de Certificate Authority Service y administrar la seguridad del grupo de CA y de la infraestructura de clave pública (PKI) general.
Para aprender a asignar funciones de IAM a un usuario o cuenta de servicio, consulta Otorga, cambia y revoca el acceso a los recursos en la documentación de IAM.
Roles predefinidos
En la siguiente tabla, se enumeran los roles predefinidos de IAM 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 CA tiene acceso de solo lectura a todos los recursos del Servicio de CA y puede recuperar y enumerar propiedades del grupo de CA, la CA, los certificados, las listas de revocación, las políticas de IAM y los proyectos. Recomendamos que asignes esta función a las personas que se encargan de validar la seguridad y las operaciones del grupo de AC y que no tienen ninguna responsabilidad diaria asignada para administrar el servicio. |
Solicitante del certificado del Servicio de CAroles/privateca.certificateRequester |
privateca.certificates.create
|
El rol de solicitante de certificado de 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 Administrador de certificados del Servicio de CA, este rol no permite que el usuario obtenga ni enumere el certificado recién emitido ni 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 , además deprivateca.certificates.create
|
Un Administrador de certificados de servicio de CA puede enviar solicitudes de emisión de certificados a un grupo de CA, como el solicitante de certificado de servicio de CA. Además, este rol también hereda los permisos del rol de auditor de CA Service. Recomendamos que asignes este rol a las personas que se encarguen de crear, hacer un seguimiento y revisar las solicitudes de certificados en un grupo de AC, como un administrador o un ingeniero principal. |
Usuario de plantilla de certificado del Servicio de CAroles/privateca.templateUser |
privateca.certificateTemplates.get privateca.certificateTemplates.list privateca.certificateTemplates.use
|
Un usuario de plantilla de certificado 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.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 CA puede crear, actualizar y borrar grupos de CA y CA. Este rol también permite revocar certificados y crear buckets de Cloud Storage. También incluye las mismas capacidades que el Auditor del Servicio de CA. En este rol, las personas son responsables de configurar e implementar grupos de CA en la organización, además de configurar la política de emisión del grupo de CA. Esta función no permite la creación de certificados. Para hacerlo, utiliza los roles Solicitador de certificado del servicio de CA, Administrador de certificados del servicio de CA o Administrador del servicio de CA. |
Administrador del Servicio de CAroles/privateca.admin |
Todos los permisos de roles/privateca.certificateManager y roles/privateca.caManager , más: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. Esta función puede realizar todas las acciones dentro de CA Service. Un administrador de CA Service puede establecer políticas de IAM para el grupo de CA y crear buckets de Cloud Storage. Te recomendamos que asignes esta función con poca frecuencia una vez que se establece el servicio. En este rol, las personas pueden desempeñar 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 implementar un control y acceso especiales a esta cuenta de rol para evitar el acceso o el uso no autorizados. |
Función de agente de servicio de CA Service
Cuando se proporcionan claves de firma de Cloud KMS o buckets de Cloud Storage existentes durante la creación de la CA, la cuenta de servicio del agente de servicio del servicio de CA (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com
) debe tener acceso al recurso correspondiente.
En 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 en Cloud Monitoring.
En 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 de la integración en Cloud Monitoring. Si quieres 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 CA.
Otorga los roles
roles/cloudkms.signerVerifier
yroles/viewer
a tu cuenta de servicio con el siguiente comando degcloud
.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 la clave.
- “KEYRING_NAME” es el nombre del llavero de claves.
- “LOCATION” es la ubicación de Cloud KMS en la que creaste tu 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'
Si se proporcionan buckets de Cloud Storage existentes, usa la herramienta de línea de comandos de
gsutil
a fin de vincular los roles necesarios para el bucket de Cloud Storage.gsutil
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.objectAdmin gs://BUCKET_NAME
Aquí:
- PROJECT_NUMBER es el identificador único de tu cuenta de servicio.
- BUCKET_NAME es el nombre de tu depósito de Cloud Storage.
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.legacyBucketReader gs://BUCKET_NAME
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 (CA). |
privateca.caPools.update |
Actualiza un grupo de CA. |
privateca.caPools.list |
Enumerar grupos de CA en un proyecto |
privateca.caPools.get |
Recupera un grupo de CA. |
privateca.caPools.delete |
Borra 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 AC. |
privateca.certificateAuthorities.delete |
Programa la eliminación de una AC. |
privateca.certificateAuthorities.get |
Obtén una solicitud de firma de certificado de AC o AC. |
privateca.certificateAuthorities.list |
Muestra las CA de un proyecto. |
privateca.certificateAuthorities.update |
Actualiza una AC, lo que incluye su activación, habilitación, inhabilitación y restablecimiento. |
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 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) en una AC |
privateca.certificateRevocationLists.getIamPolicy |
Obtén la política de IAM para una CRL. |
privateca.certificateRevocationLists.list |
Enumera todas las CRL en una AC. |
privateca.certificateRevocationLists.setIamPolicy |
Establece la política de IAM para una CRL. |
privateca.certificateRevocationLists.update |
Actualizar 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 |
Obtener la política de IAM para una plantilla de certificado |
privateca.certificateTemplates.setIamPolicy |
Configurar 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 las políticas de IAM.