Las aplicaciones de App Engine necesitan una cuenta de servicio para acceder a otros servicios de Google Cloud y ejecutar tareas. De forma predeterminada, se usa la cuenta de servicio predeterminada de App Engine como identidad de tu aplicación de App Engine. También puedes especificar una cuenta de servicio gestionada por el usuario diferente para que se use como identidad de una versión específica de tu aplicación de App Engine. De esta forma, puedes conceder diferentes privilegios a cada versión en función de las tareas específicas que realice y evitar conceder más privilegios de los necesarios.
En esta guía se explica cómo especificar otra cuenta de servicio gestionada por el usuario al desplegar una nueva versión. Si no necesitas crear una cuenta de servicio distinta al implementar una versión específica de tu aplicación, puedes seguir usando la cuenta de servicio predeterminada sin especificar ninguna.
Crear una cuenta de servicio gestionada por el usuario
Para crear una cuenta de servicio gestionada por el usuario, consulta estas instrucciones. Cuando definas los roles de Gestión de Identidades y Accesos (IAM) que vas a conceder a tu cuenta de servicio, puedes consultar los roles que conceden acceso a App Engine.
Si necesitas repasar los conceptos de gestión de identidades y accesos antes de crear tu cuenta de servicio, consulta las guías Descripción general de los conceptos de gestión de identidades y accesos y Cuentas de servicio.
Una vez que hayas creado tu cuenta de servicio gestionada por el usuario, puedes actualizar la cuenta de servicio predeterminada a nivel de aplicación de tu aplicación mediante uno de los siguientes métodos:
gcloud
Ejecuta el comando gcloud app update
.
gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Sustituye:
SERVICE_ACCOUNT_NAME
con el nombre de la cuenta de servicio que has creado.PROJECT_ID
con el ID del proyecto Google Cloud en el que quieras asignar la cuenta de servicio.
Cada nueva versión que implementes después de esta actualización usará la cuenta de servicio predeterminada a nivel de aplicación, a menos que asignes explícitamente una cuenta de servicio específica de la versión.
Consola
Ve a la pestaña Configuración de la aplicación de App Engine en la consola y haz clic en Editar configuración de la aplicación.
Elige una cuenta de servicio predeterminada a nivel de aplicación en Seleccionar una cuenta de servicio y haz clic en Guardar.
Se te redirigirá a la pestaña Configuración de la aplicación, donde podrás ver la dirección de correo de la cuenta de servicio predeterminada a nivel de aplicación actualizada. Ejemplo:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
.Cada nueva versión que implementes después de esta actualización usará la cuenta de servicio predeterminada a nivel de aplicación, a menos que asignes explícitamente una cuenta de servicio específica de la versión.
Especificar una cuenta de servicio al implementar una aplicación
gcloud
Ejecuta el comando gcloud app deploy
y especifica tu cuenta de servicio:
gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
appengine-web.xml
En el archivo appengine-web.xml
, especifica tu cuenta de servicio añadiendo el elemento <service-account>
:
<service-account>SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com</service-account>
Pasos siguientes
Sigue las prácticas recomendadas para trabajar con cuentas de servicio.