Las cuentas de servicio se pueden dividir en las categorías siguientes:
- Cuentas de servicio gestionadas por el usuario: las creas y gestionas tú mismo.
- Agentes de servicio: Trusted Cloud by S3NS crea y gestiona
En esta página se describe cómo se crea y se usa cada tipo de cuenta de servicio.
Cuentas de servicio gestionadas por el usuario
Las cuentas de servicio gestionadas por el usuario son cuentas de servicio que creas en tus proyectos. Puedes actualizar, inhabilitar, habilitar y eliminar estas cuentas de servicio a tu discreción. También puedes gestionar el acceso de otras entidades a estas cuentas de servicio.
Puedes crear cuentas de servicio gestionadas por el usuario en tu proyecto mediante la API IAM, la Trusted Cloud consola o la CLI de Google Cloud.
De forma predeterminada, puedes crear hasta 100 cuentas de servicio gestionadas por el usuario en un proyecto. Si esta cuota no se ajusta a tus necesidades, puedes usar laTrusted Cloud consola para solicitar un ajuste de la cuota. Solo las cuentas de servicio creadas por el usuario se tienen en cuenta para esta cuota. Las cuentas de servicio predeterminadas y los agentes de servicio no se tienen en cuenta para la cuota.
Cuando creas una cuenta de servicio gestionada por el usuario en tu proyecto, eliges un nombre para la cuenta de servicio. Este nombre aparece en la dirección de correo que identifica la cuenta de servicio, que tiene el siguiente formato:
service-account-name@project-id.s3ns-system.iam.gserviceaccount.com
Para saber cómo crear una cuenta de servicio, consulta el artículo Crear cuentas de servicio.
Cuentas de servicio predeterminadas
Las cuentas de servicio predeterminadas son cuentas de servicio gestionadas por el usuario que se crean automáticamente cuando habilitas o usas determinados Trusted Cloud servicios. Estas cuentas de servicio permiten que el servicio despliegue trabajos que accedan a otros recursos deTrusted Cloud . Eres responsable de gestionar las cuentas de servicio predeterminadas después de que se creen.
Si tu aplicación se ejecuta en un Trusted Cloud entorno que tiene una cuenta de servicio predeterminada, tu aplicación puede usar las credenciales de la cuenta de servicio predeterminada para llamar a las APIs de Trusted Cloud . También puedes crear tu propia cuenta de servicio gestionada por el usuario y usarla para autenticarte. Para obtener más información, consulta Configurar credenciales predeterminadas de la aplicación.
En función de la configuración de la política de tu organización, es posible que se conceda automáticamente el rol Editor a la cuenta de servicio predeterminada de tu proyecto. Te recomendamos que inhabilites la asignación automática de roles
aplicando la restricción de la política de organización iam.automaticIamGrantsForDefaultServiceAccounts
. Si has creado tu organización después del 3 de mayo del 2024, esta restricción se aplica de forma predeterminada.
Si inhabilitas la concesión automática de roles, debes decidir qué roles quieres conceder a las cuentas de servicio predeterminadas y, a continuación, concederlos tú mismo.
Si la cuenta de servicio predeterminada ya tiene el rol Editor, te recomendamos que lo sustituyas por roles con menos permisos.
En la siguiente tabla se indican los servicios que crean cuentas de servicio predeterminadas:
Servicio | Nombre de la cuenta de servicio | Dirección de correo electrónico |
---|---|---|
Compute Engine y cualquier servicio que use Compute Engine Trusted Cloud | Cuenta de servicio predeterminada de Compute Engine |
project-number-compute@developer.s3ns-system.iam.gserviceaccount.com
|
Agentes de servicio
Algunos Trusted Cloud servicios necesitan acceder a tus recursos para poder actuar en tu nombre. Por ejemplo, cuando usas Cloud Run para ejecutar un contenedor, el servicio necesita acceder a los temas de Pub/Sub que pueden activar el contenedor.
Para satisfacer esta necesidad, Trusted Cloud crea y gestiona cuentas de servicio para muchos Trusted Cloud servicios. Estas cuentas de servicio se denominan 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 Gestión de identidades y accesos de la Trusted Cloud consola. Para ver una lista completa de agentes de servicio, consulta Agentes de servicio.
Los agentes de servicio no se crean en tus proyectos, por lo que no los verás cuando consultes 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 consolaTrusted Cloud , aunque se les haya asignado un rol en tu proyecto. Para ver las concesiones de roles de los agentes de servicio, selecciona la casilla Incluir concesiones de roles proporcionadas por Google.
Trusted Cloud tiene los siguientes tipos de agentes de servicio:
- Agentes de servicio específicos de un servicio
- Agente de servicios de APIs de Google
- Gestor de roles de agentes de servicio
Agentes de servicio específicos de cada servicio
La mayoría de los agentes de servicio son específicos de un servicio, es decir, actúan en nombre de servicios concretos. En muchos casos, estos agentes de servicio son necesarios para que los servicios funcionen correctamente. Por ejemplo, los agentes de servicio son los que permiten que los receptores de Cloud Logging escriban registros en segmentos de Cloud Storage.
Cada agente de servicio se asocia a un recurso. Este recurso suele ser un proyecto, una carpeta o una organización, aunque también puede ser un recurso específico de un servicio, como una instancia de Cloud SQL. Este recurso define el ámbito de las acciones del agente de servicio. Por ejemplo, si un agente de servicio está asociado a un proyecto, actuará en nombre de un servicio del proyecto y de sus recursos descendientes.
Para determinar con qué tipo de recurso está asociado un agente de servicio, consulta su dirección de correo:
- Si el agente de servicio está asociado a un proyecto, una carpeta o una organización, su dirección de correo electrónico contiene el ID numérico de ese proyecto, carpeta u organización.
- Si el agente de servicio está asociado a un recurso específico de un servicio, su dirección de correo electrónico contiene un ID de proyecto numérico y un identificador único. El ID de proyecto numérico indica a qué proyecto pertenece el recurso al que está asociado el agente de servicio. El identificador único distingue al agente de servicio de otros agentes de servicio similares del mismo proyecto.
Agente de servicios de APIs 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 que tenga el siguiente formato:
project-number@cloudservices.s3ns-system.iam.gserviceaccount.com
.
Esta cuenta de servicio ejecuta procesos internos de Trusted Cloud en tu nombre.
Se le asigna automáticamente el rol Editor (roles/editor
) en el proyecto.
Gestor de roles de agentes de servicio
Los registros de auditoría de gestión de identidades y accesos pueden hacer referencia a la cuenta de servicio service-agent-manager@s3ns-system.system.gserviceaccount.com
.
Esta cuenta de servicio gestiona los roles que se conceden a otros agentes de servicio. Solo se muestra en los registros de auditoría.
Por ejemplo, si usas una API nueva, Trusted Cloud puede crear automáticamente un nuevo agente de servicio y asignarle roles en tu proyecto. Al asignar estos roles, se genera una entrada de registro de auditoría que muestra que service-agent-manager@s3ns-system.system.gserviceaccount.com
ha definido la política de permiso del proyecto.
Creación de agentes de servicio
La hora exacta en la que se crea un agente de servicio depende del tipo de recurso al que esté asociado.
Los agentes de servicio asociados a un recurso específico de un servicio se crean cuando se crea el recurso. Para obtener más información sobre cómo identificar y configurar estos agentes de servicio, consulta la documentación del recurso asociado.
Los agentes de servicio asociados a proyectos, carpetas y organizaciones se crean cuando los necesitas, normalmente cuando usas un servicio por primera vez. Si es necesario, también puedes pedirle a Trusted Cloud que cree agentes de servicio para un servicio antes de usarlo. Para obtener más información, consulta Crear y asignar roles a agentes de servicio.
Roles de gestión de identidades y accesos para agentes de servicio
Algunas acciones de Trusted Cloud requieren que los agentes del 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 poder crear el clúster.
Para obtener este acceso, los agentes de servicio necesitan roles de gestión de identidades y accesos específicos. Muchos agentes de servicio a nivel de proyecto reciben automáticamente los roles que necesitan.
Los nombres de estos roles concedidos automáticamente suelen terminar en serviceAgent
o ServiceAgent
. En el caso de otros agentes de servicio, debes asignarles roles para que el servicio funcione correctamente. Para saber a qué agentes de servicio se les asignan roles automáticamente, consulta la referencia de agentes de servicio.
Si necesitas denegar determinados permisos a conjuntos de principales que incluyan agentes de servicio (por ejemplo, el conjunto de principales principalSet://goog/public:all
), te recomendamos que añadas tus agentes de servicio como excepciones en la regla de denegación. De esta forma, te aseguras de que tus servicios sigan funcionando correctamente. Cuando añadas agentes de servicio como excepciones, usa el conjunto principal de agentes de servicio del proyecto, la carpeta o la organización.
Si pides a Trusted Cloud que cree agentes de servicio antes de usar un servicio, debes conceder a los agentes de servicio los roles que se les suelen conceder automáticamente. Esto se debe a que los agentes de servicio que se crean a petición de un usuario no tienen roles asignados automáticamente. Si no les asignas estos roles, es posible que algunos servicios no funcionen correctamente. Para saber cómo asignar estos roles a agentes de servicio, consulta el artículo Crear y asignar roles a 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 se devuelve cuando activas la creación de un agente de servicio para un servicio.
Registros de auditoría de agentes de servicio
A veces, cuando una entidad inicia una operación, un agente de servicio ejecuta una acción en nombre de la entidad. 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 y por qué.
Para ayudarte a entender el contexto de las acciones de un agente de servicio, algunos agentes de servicio incluyen detalles adicionales en sus registros de auditoría, como el trabajo al que está asociada la acción y el principal que creó el trabajo.Los siguientes agentes de servicio incluyen estos detalles adicionales en sus registros de auditoría:
- Agente del servicio de conexión de BigQuery
- Agente del servicio de delegación de conexión de BigQuery
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 ha ejecutado la acción.
- El servicio al que pertenece el agente de servicio
- El ID de la tarea
Por ejemplo, supongamos que
//iam.googleapis.com/locations/global/workforcePools/example-pool/subject/example-user@example.com
crea un trabajo con la API de conexión de BigQuery. Este trabajo requiere que uno de los agentes de servicio de la API de conexión de BigQuery ejecute una acción. En este caso, el registro de auditoría de la acción del agente de servicio
contendría un campo serviceDelegationHistory
similar al siguiente:
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "authenticationInfo": { "principalEmail": "bqcx-442188550395-jujw@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com", "serviceDelegationHistory": { "originalPrincipal": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com", "serviceMetadata": [ { "principalSubject": "serviceAccount:bqcx-442188550395-jujw@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com", "serviceDomain": "bigquery.googleapis.com", } ] } } } }
Siguientes pasos
- Consulta cómo crear y gestionar cuentas de servicio.
- Consulta cómo crear y gestionar claves de cuentas de servicio.
- Consulta las prácticas recomendadas para trabajar con cuentas de servicio.
- Consulta las prácticas recomendadas para gestionar las claves de cuentas de servicio.