Tipos de cuentas de servicio

Las cuentas de servicio se pueden dividir en las siguientes categorías:

  • Cuentas de servicio administradas por el usuario, que creas y administras por tu cuenta
  • Agentes de servicio, que crea y administra Google Cloud

En esta página, se describe cómo se crea y usa cada tipo de cuenta de servicio.

Cuentas de servicio administradas por el usuario

Las cuentas de servicio administradas por el usuario son las que creas en tus proyectos. Puedes actualizar, inhabilitar, habilitar y borrar estas cuentas de servicio a tu conveniencia. También puedes administrar otro acceso de principales a estas cuentas de servicio.

Puedes crear cuentas de servicio administradas por el usuario en tu proyecto con la API de IAM, la consola de Google Cloud o Google Cloud CLI.

De forma predeterminada, puedes crear hasta 100 cuentas de servicio administradas por el usuario en un proyecto. Si esta cuota no satisface tus necesidades, puedes usar la consola de Google Cloud para solicitar un aumento de cuota. Solo las cuentas de servicio creadas por el usuario se consideran para esta cuota. Las cuentas de servicio predeterminadas y los agentes de servicio no se consideran para la cuota.

Cuando creas una cuenta de servicio administrada por el usuario en tu proyecto, debes elegir un nombre para esta. Este nombre aparecerá en la dirección de correo electrónico que identifica a la cuenta de servicio, en el que se usa el siguiente formato:

service-account-name@project-id.iam.gserviceaccount.com

Para obtener información sobre cómo crear una cuenta de servicio, consulta Crea cuentas de servicio.

Cuentas de servicio predeterminadas

Las cuentas de servicio predeterminadas son cuentas de servicio administradas por el usuario que se crean automáticamente cuando habilitas o usas ciertos servicios de Google Cloud. Estas cuentas de servicio permiten que el servicio implemente trabajos que accedan a otros recursos de Google Cloud. Eres responsable de administrar las cuentas de servicio predeterminadas después de que se creen.

Si tu aplicación se ejecuta en un entorno de Google Cloud que tiene una cuenta de servicio predeterminada, puede usar las credenciales para que la cuenta de servicio predeterminada llame a las APIs de Google Cloud. De forma alternativa, puedes crear tu propia cuenta de servicio administrada por el usuario y usarla para autenticar. Para obtener más información, consulta Configura credenciales predeterminadas de la aplicación.

Según la configuración de la política de la organización, es posible que a la cuenta de servicio predeterminada se le otorgue automáticamente el rol de editor en tu proyecto. Te recomendamos inhabilitar la concesión automática de roles; para ello, aplica la restricción de la política de la organización iam.automaticIamGrantsForDefaultServiceAccounts. Si creaste tu organización después del 3 de mayo de 2024, esta restricción se aplica de forma predeterminada.

Si inhabilitas la concesión automática de roles, debes decidir qué roles se deben otorgar a las cuentas de servicio predeterminadas y, luego, otorgar estos roles a ti mismo.

Si la cuenta de servicio predeterminada ya tiene el rol de editor, te recomendamos que reemplaces el rol de editor por roles menos permisivos. Para modificar de forma segura los roles de la cuenta de servicio, usa Policy Simulator para ver el impacto del cambio y, luego, otorga y revoca los roles adecuados.

En la siguiente tabla, se enumeran los servicios que crean cuentas de servicio predeterminadas:

Servicio Nombre de la cuenta de servicio Dirección de correo electrónico
App Engine y cualquier servicio de Google Cloud que use App Engine Cuenta de servicio predeterminada de App Engine project-id@appspot.gserviceaccount.com
Compute Engine y cualquier servicio de Google Cloud que use Compute Engine Cuenta de servicio predeterminada de Compute Engine project-number-compute@developer.gserviceaccount.com

Agentes de servicio

Algunos servicios de Google Cloud necesitan acceso a tus recursos para actuar en tu nombre. Por ejemplo, cuando usas Cloud Run para ejecutar un contenedor, el servicio necesita acceder a cualquier tema de Pub/Sub que pueda activarlo.

A fin de satisfacer esta necesidad, Google crea y administra cuentas de servicio para muchos servicios de Google Cloud. Estas cuentas de servicio se conocen como agentes de servicio. Es posible que veas agentes de servicio en la política de permisos de tu proyecto, en los registros de auditoría o en la página de IAM en la consola de Google Cloud.

Los agentes de servicio no se crean en tus proyectos, por lo que no los verás cuando veas las cuentas de servicio de tus proyectos. No puedes acceder a ellos directamente.

De forma predeterminada, los agentes de servicio no aparecen en la página IAM de la consola de Google Cloud, incluso si se les otorgó un rol en tu proyecto. Para ver las asignaciones de roles de los agentes de servicio, selecciona la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.

Google Cloud tiene los siguientes tipos de agentes de servicio:

Agentes de servicio específicos del servicio

La mayoría de los agentes de servicio son específicos del servicio, es decir, actúan en nombre de servicios individuales. En muchos casos, estos agentes de servicio son necesarios para que los servicios funcionen correctamente. Por ejemplo, los agentes de servicio son lo que permite que los receptores de Cloud Logging escriban registros en buckets de Cloud Storage.

Cada agente de servicio está asociado a un recurso. Este recurso suele ser un proyecto, una carpeta o una organización, aunque también puede ser un recurso específico del servicio, por ejemplo, una instancia de Cloud SQL. Este recurso define el alcance de las acciones del agente de servicio. Por ejemplo, si un agente de servicio está asociado con un proyecto, actuará en nombre de un servicio para el proyecto y sus recursos subordinados.

Puedes determinar con qué tipo de recurso está asociado un agente de servicio si observas su dirección de correo electrónico:

  • Si el agente de servicio está asociado con un proyecto, una carpeta o una organización, su dirección de correo electrónico contiene el ID numérico de ese proyecto, carpeta o organización.
  • Si el agente de servicio está asociado con un recurso específico del servicio, su dirección de correo electrónico contiene un ID numérico del proyecto y un identificador único. El ID numérico del proyecto indica a qué proyecto pertenece el recurso con el que está asociado el agente de servicio. El identificador único distingue al agente de servicio de otros agentes de servicio similares en el mismo proyecto.

Agente de servicios de las API de Google

Es probable que la política de permisos de tu proyecto haga referencia a una cuenta de servicio llamada Agente de servicio de las APIs de Google, con una dirección de correo electrónico que usa el siguiente formato: project-number@cloudservices.gserviceaccount.com

Esta cuenta de servicio ejecuta procesos internos de Google Cloud en tu nombre. Se le otorga de forma automática el rol de editor (roles/editor) en el proyecto.

Administrador de roles para agentes de servicio

Tus registros de auditoría para IAM pueden hacer referencia a la cuenta de servicio service-agent-manager@system.gserviceaccount.com.

Esta cuenta de servicio administra los roles que se otorgan a otros agentes de servicio. Solo se puede ver en los registros de auditoría.

Por ejemplo, si usas una API nueva, Google Cloud puede crear automáticamente un agente de servicio nuevo y otorgarle roles en tu proyecto. Si otorgas estos roles, se genera una entrada de registro de auditoría, que muestra que service-agent-manager@system.gserviceaccount.com estableció la política de permisos para el proyecto.

Creación del agente de servicio

El momento exacto en que se crea un agente de servicio depende del tipo de recurso con el que está asociado.

Los agentes de servicio asociados con un recurso específico del servicio se crean cuando creas el recurso. Para obtener más información sobre cómo identificar y configurar estos agentes de servicio, revisa la documentación del recurso asociado.

Los agentes de servicio asociados con proyectos, carpetas y organizaciones se crean según sea necesario, por lo general, cuando usas un servicio por primera vez. Si es necesario, también puedes pedirle a Google Cloud que cree agentes de servicio para un servicio antes de usarlo. Para obtener más información, consulta Crea y otorga roles a los agentes de servicio.

Funciones del Agente de servicio

Algunas acciones en Google Cloud requieren que los agentes de servicio creen recursos y accedan a ellos en tu nombre. Por ejemplo, cuando creas un clúster de Dataproc, el agente de servicio de Dataproc necesita permiso para crear instancias de Compute Engine en tu proyecto para crear el clúster.

Para obtener este acceso, los agentes de servicio necesitan roles de IAM específicos. A muchos agentes de servicio a nivel del proyecto se les otorgan automáticamente los roles que necesitan. Por lo general, los nombres de estos roles otorgados automáticamente terminan en serviceAgent o ServiceAgent. En el caso de otros agentes de servicio, debes otorgarles roles para que el servicio funcione correctamente. Para saber a qué agentes de servicio se les otorgan roles automáticamente, consulta la referencia de agentes de servicio.

Si le pides a Google Cloud que cree agentes de servicio antes de usar un servicio, debes otorgarles los roles que suelen recibir automáticamente. Esto se debe a que los agentes de servicio que se crean a pedido del usuario no se les otorgan roles automáticamente. Si no otorgas estos roles a los agentes de servicio, es posible que algunos servicios no funcionen correctamente. Para obtener información sobre cómo otorgar estos roles a los agentes de servicio, consulta Crea y otorga roles a los agentes de servicio.

Agentes de servicio principales

En la referencia del agente de servicio, algunos agentes de servicio se identifican como agentes de servicio principales. Los agentes de servicio principales son agentes de servicio cuya dirección de correo electrónico se muestra cuando activas la creación de agentes de servicio para un servicio.

Registros de auditoría

A veces, cuando un principal inicia una operación, un agente de servicio ejecuta una acción en su nombre. Sin embargo, cuando revisas los registros de auditoría de un agente de servicio, puede ser difícil saber en nombre de quién actuaba el agente de servicio y por qué.

Para ayudarte a comprender el contexto de las acciones de un agente de servicio, algunos agentes de servicio incluyen detalles adicionales en sus registros de auditoría, como la tarea con la que está asociada la acción y el principal que la creó.

Los siguientes agentes de servicio incluyen estos detalles adicionales en sus registros de auditoría:

Estos detalles adicionales se encuentran en el campo serviceDelegationHistory del registro de auditoría, que está anidado en el campo authenticationInfo. Este campo contiene la siguiente información:

  • El director original que creó el trabajo
  • El agente de servicio que ejecutó la acción
  • El servicio al que pertenece el agente de servicio
  • El ID del trabajo.

Por ejemplo, supongamos que example-user@example.com crea un trabajo con la API de BigQuery Connection. Esta tarea requiere que uno de los agentes de servicio de la API de BigQuery Connection ejecute una acción. En este caso, el registro de auditoría de la acción del agente de servicio contendrá un campo serviceDelegationHistory similar al siguiente:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
      "serviceDelegationHistory": {
        "originalPrincipal": "user:my-user@example.com",
        "serviceMetadata": [
          {
            "principalSubject": "serviceAccount:bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
            "serviceDomain": "bigquery.googleapis.com",
          }
        ]
      }
    }
  }
}

¿Qué sigue?

Pruébalo tú mismo

Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

Comenzar gratis