Las apps de App Engine requieren una cuenta de servicio para acceder a otros servicios de Google Cloudy ejecutar tareas. De forma predeterminada, la cuenta de servicio predeterminada de App Engine se usa como la identidad de tu aplicación de App Engine. También puedes especificar una cuenta de servicio administrada por el usuario diferente para que se use como la identidad de una versión específica de tu aplicación de App Engine. Esto te permite otorgar privilegios diferentes a cada versión, según las tareas específicas que realiza, y evitar otorgar más privilegios de los necesarios.
En esta guía, se explica cómo especificar una cuenta de servicio administrada por el usuario diferente cuando se implementa una versión nueva. Si no necesitas crear una cuenta de servicio distinta cuando implementes una versión específica de tu app, puedes seguir usando la cuenta de servicio predeterminada; para ello, solo no debes especificar una cuenta de servicio.
Crea una cuenta de servicio administrada por el usuario
Para crear una cuenta de servicio administrada por el usuario, consulta estas instrucciones. Cuando definas los roles de Identity and Access Management (IAM) que otorgarás a tu cuenta de servicio, consulta los Roles que otorgan acceso a App Engine.
Si necesitas revisar los conceptos de IAM antes de crear tu cuenta de servicio, consulta las guías de descripción general de conceptos de IAM y de cuentas de servicio.
Después de crear tu cuenta de servicio administrada por el usuario, puedes actualizar la cuenta de servicio predeterminada a nivel de la app para tu aplicación con 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
Reemplaza lo siguiente:
SERVICE_ACCOUNT_NAME
por el nombre de la cuenta de servicio que creaste.PROJECT_ID
por el ID del proyecto Google Cloud en el que deseas asignar la cuenta de servicio.
Cada versión nueva que implementes después de esta actualización usará la nueva cuenta de servicio predeterminada a nivel de la app, a menos que asignes de forma explícita una cuenta de servicio específica de la versión.
Console
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 app desde Seleccionar una cuenta de servicio y haz clic en Guardar.
Se te redireccionará a la pestaña Configuración de la aplicación, en la que puedes ver la dirección de correo electrónico de tu cuenta de servicio predeterminada actualizada a nivel de la aplicación. Ejemplo:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
.Cada versión nueva que implementes después de esta actualización usará la nueva cuenta de servicio predeterminada a nivel de la app, a menos que asignes de forma explícita una cuenta de servicio específica de la versión.
Especifica una cuenta de servicio cuando implementes tu app
gcloud
Ejecuta el comando gcloud app deploy
y especifica la cuenta de servicio:
gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
app.yaml
En el archivo app.yaml
, especifica tu cuenta de servicio; para ello, agrega el elemento service_account
:
service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Próximos pasos
Sigue las prácticas recomendadas para trabajar con cuentas de servicio.