En esta página, se describe cómo usar las cuentas de servicio para habilitar las apps que se ejecutan en tus instancias de máquina virtual (VM) a fin de autenticarte en las API de Google Cloud y autorizar el acceso a los recursos.
Para obtener más información sobre cómo Compute Engine usa las cuentas de servicio, consulta la descripción general de las cuentas de servicio.
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos de esta guía, haz lo siguiente:
- Instala Google Cloud CLI o actualízala a la última versión.
- Configura una región y una zona predeterminadas.
- Si deseas usar los ejemplos de API de esta guía, configura el acceso a la API.
- Lee la descripción general de las cuentas de servicio.
Crea una cuenta de servicio nueva
Puedes usar IAM para crear y configurar una cuenta de servicio nueva. Después de crear una cuenta, otórgale una o más funciones de IAM y, luego, autoriza que una instancia de máquina virtual se ejecute como esa cuenta de servicio.
Consola
Para crear una cuenta de servicio nueva, sigue estos pasos:
Crea una cuenta de servicio nueva según cómo se describe en la sección sobre cómo crear una cuenta de servicio.
Obtén el correo electrónico de la cuenta de servicio. Necesitas el correo electrónico para configurar una instancia que se ejecute como esta cuenta de servicio. Para verificar el correo electrónico de la cuenta de servicio en la consola, sigue estos pasos:
Ve a la página de cuentas de servicio.
Si se te solicita, selecciona un proyecto.
Busca tu cuenta de servicio nueva y toma nota del correo electrónico de la cuenta de servicio.
Por lo general, el correo electrónico de la cuenta de servicio se deriva del ID de esta cuenta, con el siguiente formato:
[SERVICE-ACCOUNT-NAME]@[PROJECT_ID].iam.gserviceaccount.com
Otorga funciones de IAM a la cuenta de servicio. Si no otorgas ninguna función, la cuenta de servicio no tendrá acceso a ningún servicio. Para obtener una lista completa de las funciones de IAM, consulta la página Comprende las funciones en el documento de IAM.
A continuación, configura una instancia con el fin de que se ejecute como una cuenta de servicio. Sigue las instrucciones para configurar una instancia con el fin de que se ejecute como una cuenta de servicio.
Terraform
Para crear una cuenta de servicio, puedes usar el recurso google_service_account
.
Recuerda reemplazar los valores de marcador de posición por los atributos account_id
y display_name
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Configura una instancia nueva para que se ejecute como una cuenta de servicio
Después de crear una cuenta de servicio nueva, puedes crear instancias de máquina virtual nuevas para ejecutarlas como cuenta de servicio. Si la cuenta de servicio está en un proyecto diferente al de las instancias, debes configurar la cuenta de servicio para un recurso en un proyecto diferente.
Si deseas asignar o cambiar una cuenta de servicio para una instancia existente, consulta Cambia la cuenta de servicio y los permisos de acceso para una instancia.
Puedes habilitar varias instancias de máquina virtual para que usen la misma cuenta de servicio, pero una instancia de máquina virtual solo puede tener una identidad de cuenta de servicio. Si asignas la misma cuenta de servicio a varias instancias de máquina virtual, cualquier cambio posterior que realices en la cuenta de servicio afectará a las instancias que la usen. Esto incluye cualquier cambio que realices en las funciones de IAM otorgadas a la cuenta de servicio. Por ejemplo, si quitas una función, todas las instancias que usen la cuenta de servicio perderán los permisos que otorga esa función.
En general, puedes establecer el permiso de acceso cloud-platform
para permitir el acceso a la mayoría de las API de Cloud y, luego, otorgar a la cuenta de servicio solo funciones de IAM relevantes. La combinación de niveles de acceso otorgados a la instancia de máquina virtual y las funciones de IAM otorgadas a la cuenta de servicio determina la cantidad de acceso que tiene la cuenta de servicio para esa instancia. La cuenta de servicio puede ejecutar métodos de la API solo si están permitidos tanto por el nivel de acceso como por sus funciones de IAM.
De forma alternativa, puedes optar por configurar permisos específicos que autoricen el acceso a los métodos particulares de la API a los que llamará el servicio. Por ejemplo, para llamar al método instances.insert
, se requiere autorización del alcance https://www.googleapis.com/auth/compute
o del alcance https://www.googleapis.com/auth/cloud-platform
combinado con una función de IAM que otorga acceso a ese método. Puedes establecer el permiso compute
en lugar de cloud-platform
, lo que le otorgaría al servicio acceso para llamar a métodos en Compute Engine, pero no le permite llamar a métodos de la API fuera de Compute Engine.
Puedes configurar una instancia nueva para que se ejecute como una cuenta de servicio mediante la consola de Google Cloud, Google Cloud CLI o directamente a través de la API.
Console
Ir a la página Crear una instancia
Especifica los detalles de la VM.
En la sección Identidad y acceso a la API, elige la cuenta de servicio que deseas usar de la lista desplegable.
Continúa con el proceso de creación de VM.
gcloud
Para crear una instancia nueva y autorizar a que se ejecute como una cuenta de servicio personalizada mediante Google Cloud CLI, proporciona el correo electrónico de la cuenta de servicio los permisos de acceso de la instancia.
gcloud compute instances create [INSTANCE_NAME] \
--service-account [SERVICE_ACCOUNT_EMAIL] \
--scopes [SCOPES,...]
Donde:
[SERVICE_ACCOUNT_EMAIL]
es el correo electrónico de la cuenta de servicio que deseas usar. Por ejemplo:my-sa-123@my-project-123.iam.gserviceaccount.com
. Si no sabes cuál es el correo electrónico, aprende cómo obtener un correo electrónico de cuenta de servicio.[INSTANCE_NAME]
es el nombre de la instancia.[SCOPES]
es una lista separada por comas de URI de alcance completo o alias de alcance proporcionados en la descripción de la marca--scopes
.
Por ejemplo:
gcloud compute instances create example-vm \
--service-account 123-my-sa@my-project-123.iam.gserviceaccount.com \
--scopes https://www.googleapis.com/auth/cloud-platform
La CLI de gcloud también ofrece alias de permiso en lugar de los URI de permiso más extensos. Por ejemplo, el permiso del acceso completo a Cloud Storage es https://www.googleapis.com/auth/devstorage.full_control
. El alias de este permiso es storage-full
.
Puedes ver una lista de alcances y alias de alcance en la página instances create
de la descripción de la marca --scopes
. Con la ayuda del comando instances create
, también se genera una lista de estos alcances y alias:
gcloud compute instances create --help
Especifica el alias de la misma manera en que lo harías con el URI de alcance normal. Por ejemplo:
gcloud compute instances create [INSTANCE_NAME] \
--service-account [SERVICE_ACCOUNT_EMAIL] \
--scopes cloud-platform
Terraform
Para configurar una instancia nueva a fin de que se ejecute como una cuenta de servicio, puedes usar el recurso google_compute_instance
.
API
En la API, genera una solicitud estándar para crear una instancia , pero incluye la propiedad serviceAccounts
.
Obtén el correo electrónico de tu cuenta de servicio y, luego, inclúyelo en la propiedad email
, junto con los niveles de acceso deseados para la instancia.
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances { "machineType": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/machineTypes/[MACHINE_TYPE]", "name": "[INSTANCE_NAME]", "serviceAccounts": [ { "email": "[SERVICE_ACCOUNT_EMAIL]", "scopes": ["https://www.googleapis.com/auth/cloud-platform"] } ], ... }
Después de configurar una instancia con el fin de que se ejecute como la cuenta de servicio, una aplicación que se ejecuta en la instancia puede usar uno de los siguientes métodos para la autenticación:
- Para la mayoría de las aplicaciones, elige una de las siguientes opciones:
- Para las aplicaciones que requieren un token de acceso de OAuth2, solicita y usa tokens de acceso directamente desde el servidor de metadatos.
Autentica aplicaciones mediante credenciales de cuenta de servicio
Después de configurar una instancia con el fin de que se ejecute como una cuenta de servicio, puedes usar las credenciales de la cuenta de servicio para autenticar las aplicaciones que se ejecutan en la instancia.
Autentica aplicaciones con una biblioteca cliente
Las bibliotecas cliente pueden usar las credenciales predeterminadas de la aplicación para autenticarse con las API de Google y enviar solicitudes a esas API. Las credenciales predeterminadas de la aplicación permiten que las aplicaciones obtengan de forma automática credenciales de múltiples fuentes para que puedas probar tu aplicación de forma local y, luego, implementarla en una instancia de Compute Engine sin cambiar el código de la aplicación.
Para obtener información sobre la configuración de las credenciales predeterminadas de la aplicación, consulta Proporciona credenciales para las credenciales predeterminadas de la aplicación.
En este ejemplo, se usa la biblioteca cliente de Python para autenticar y realizar una solicitud a la API de Cloud Storage con el fin de generar una lista de los depósitos en un proyecto. En el ejemplo, se usa el siguiente procedimiento:
- Obtener las credenciales de autenticación necesarias para la API de Cloud Storage y, a continuación, inicializar el servicio de Cloud Storage con el método
build()
y las credenciales - Enumerar los depósitos en Cloud Storage
Puedes ejecutar este ejemplo en una instancia que tenga acceso para administrar depósitos en Cloud Storage.
.Autentica aplicaciones directamente con tokens de acceso
Para la mayoría de las aplicaciones, puedes autenticarte con las credenciales predeterminadas de la aplicación, que encuentra las credenciales y administra los tokens por ti. Sin embargo, si la aplicación requiere que proporciones un token de acceso de OAuth2, Compute Engine te permite obtener un token de acceso del servidor de metadatos para usarlo en la aplicación.
Hay varias opciones para obtener y usar estos tokens de acceso con el objetivo de autenticar tus aplicaciones. Por ejemplo, puedes usar curl
con el objetivo de crear una solicitud simple o usar un lenguaje de programación, como Python, para lograr una mayor flexibilidad.
cURL
Para usar curl
con el fin de solicitar un token de acceso y enviar una solicitud a una API, sigue estos pasos:
En la instancia donde se ejecuta tu aplicación, usa el siguiente comando para realizar una consulta al servidor de metadatos con el fin de obtener un token de acceso:
$ curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" \ -H "Metadata-Flavor: Google"
La solicitud muestra una respuesta similar a la siguiente:
{ "access_token":"ya29.AHES6ZRN3-HlhAPya30GnW_bHSb_QtAS08i85nHq39HE3C2LTrCARA", "expires_in":3599, "token_type":"Bearer" }
Para las solicitudes a la API, debes incluir el valor
access_token
, no toda la respuesta. Si tienes instalado el procesador JSON de la línea de comandos de jq, puedes usar el siguiente comando para extraer el valor del token de acceso de la respuesta:$ ACCESS_TOKEN=`curl \ "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" \ -H "Metadata-Flavor: Google" | jq -r '.access_token'`
Copia el valor de la propiedad
access_token
de la respuesta y úsalo para enviar solicitudes a la API. Por ejemplo, la siguiente solicitud imprime una lista de instancias de tu proyecto desde una zona determinada:$ curl https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances \ -H "Authorization":"Bearer [ACCESS_TOKEN]"
En el ejemplo anterior, se ilustra lo siguiente:
[PROJECT_ID]
es el ID del proyecto de esta solicitud.[ZONE]
es la zona desde la cual se enumeran las instancias.[ACCESS_TOKEN]
es el valor del token de acceso que obtuviste en el paso 1.
Para obtener información sobre los parámetros que puedes configurar en tu solicitud, consulta el documento de los parámetros.
Python
En este ejemplo, se muestra cómo solicitar un token para acceder a la API de Cloud Storage en una aplicación de Python. En el ejemplo, se usa el siguiente procedimiento:
- Solicitar un token de acceso al servidor de metadatos
- Extrae el token de acceso de la respuesta del servidor.
- Usa el token de acceso para realizar una solicitud a Cloud Storage.
- Si la solicitud es exitosa, la secuencia de comandos imprime la respuesta
Los tokens de acceso vencen después de un período corto. El servidor de metadatos almacena en caché los tokens de acceso hasta que queden 5 minutos de tiempo restante antes de que venzan. Puedes solicitar nuevos tokens con la frecuencia que desees, pero tus aplicaciones deben tener un token de acceso válido para que sus llamadas a la API tengan éxito.
Autentica herramientas en una instancia mediante una cuenta de servicio
Algunas aplicaciones pueden usar comandos de las herramientas gcloud
y gsutil
, que están configurados de forma predeterminada en la mayoría de las imágenes de Compute Engine. Estas herramientas reconocen automáticamente la cuenta de servicio de una instancia y los permisos relevantes otorgados a la cuenta de servicio. De manera específica, si otorgas las funciones correctas a la cuenta de servicio, podrás usar las herramientas de gcloud
y gsutil
de tus instancias sin necesidad de emplear gcloud auth login
.
Este reconocimiento de cuenta de servicio se realiza automáticamente y se aplica solo a las herramientas de gcloud
y gsutil
que se incluyen con la instancia. Si creas herramientas nuevas o agregas herramientas personalizadas, debes autorizar tu aplicación mediante una biblioteca cliente o por intermedio de tokens de acceso directamente en tu aplicación.
Para aprovechar el reconocimiento automático de la cuenta de servicio, otorga las funciones de IAM apropiadas a esa cuenta y configura una instancia para que se ejecute como una cuenta de servicio.
Por ejemplo, si otorgas la función roles/storage.objectAdmin
a una cuenta de servicio, la herramienta de gsutil
puede administrar y acceder automáticamente a los objetos de Cloud Storage.
Del mismo modo, si habilitas roles/compute.instanceAdmin.v1
en la cuenta de servicio, la herramienta de gcloud compute
podrá administrar las instancias de forma automática.
Cambia la cuenta de servicio y los niveles de acceso para una instancia
Si deseas ejecutar la VM como una identidad diferente o determinas que la instancia necesita un conjunto diferente de alcances para llamar a las API requeridas, puedes cambiar la cuenta de servicio y los niveles de acceso de una instancia existente. Por ejemplo, puedes cambiar los permisos de acceso para otorgar acceso a una API nueva, quitar la cuenta de servicio y los permisos de acceso a fin de evitar que una VM acceda a cualquier servicio de Google Cloud, o puedes cambiar un VM para que se ejecute como una cuenta de servicio que creaste en lugar de la cuenta de servicio predeterminada de Compute Engine. Sin embargo, Google recomienda que uses las políticas de IAM detalladas en lugar de depender de los permisos de acceso para controlar el acceso a los recursos de la cuenta de servicio.
Para cambiar la cuenta de servicio de una instancia y los niveles de acceso, la instancia debe detenerse temporalmente. Con el fin de detener tu instancia, lee el documento con información sobre cómo detener una instancia. Después de cambiar la cuenta de servicio o los niveles de acceso, no olvides reiniciar la instancia. Usa uno de los siguientes métodos para cambiar la cuenta de servicio o los niveles de acceso de la instancia detenida.
Console
Ve a la página Instancias de VM.
Haz clic en el nombre de la instancia de VM para la que deseas cambiar la cuenta de servicio.
Si la instancia no se detiene, haz clic en Detener. Espera a que se detenga la instancia.
Luego, haz clic en Editar.
Desplázate hacia abajo hasta la sección Cuenta de servicio.
En la lista desplegable, selecciona la cuenta de servicio que se asignará a la instancia.
- Si eliges la cuenta de servicio predeterminada, puedes modificar los permisos de acceso en la consola de Google Cloud.
- Para cambiar los permisos, en la sección Permiso de acceso, selecciona Configurar acceso para cada API y configura los permisos adecuados según tus necesidades.
- Si no sabes con certeza qué niveles de acceso configurar, elige Permitir acceso completo a todas las API de Cloud y, luego, asegúrate de restringir el acceso mediante la configuración de las funciones de IAM en la cuenta de servicio.
- Si eliges una cuenta de servicio diferente, el permiso de acceso de la VM se establecerá de forma predeterminada en el permiso
cloud-platform
. Puedes modificar el permiso mediante la CLI de gcloud o la API de Compute Engine. - Para obtener más información sobre la configuración de los permisos de acceso, consulta Prácticas recomendadas.
- Si eliges la cuenta de servicio predeterminada, puedes modificar los permisos de acceso en la consola de Google Cloud.
Haz clic en Guardar para guardar los cambios.
gcloud
Usa el comando instances set-service-account
y proporciona el nombre de la instancia, el correo electrónico de la cuenta de servicio y los alcances deseados. Para obtener más información sobre la configuración de los permisos de acceso, consulta Prácticas recomendadas.
gcloud compute instances set-service-account [INSTANCE_NAME] \
[--service-account [SERVICE_ACCOUNT_EMAIL] | --no-service-account] \
[--no-scopes | --scopes [SCOPES,...]]
Donde:
[SERVICE_ACCOUNT_EMAIL]
es el correo electrónico de la cuenta de servicio que deseas usar. Por ejemplo:my-sa-123@my-project-123.iam.gserviceaccount.com
[INSTANCE_NAME]
es el nombre de la instancia.[SCOPES]
es una lista separada por comas de URI de alcance completo o alias de alcance proporcionados en la descripción de la marca--scopes
. Si quieres quitar todos los permisos de la instancia, usa la marca--no-scopes
en su lugar.
Por ejemplo, el siguiente comando permite asignar la cuenta de servicio my-sa-123@my-project-123.iam.gserviceaccount.com
a una instancia llamada example‑instance y establecer permisos de acceso en ella para permitir el acceso de lectura/escritura a Compute Engine y el acceso de solo lectura a Cloud Storage:
gcloud compute instances set-service-account example-instance \
--service-account my-sa-123@my-project-123.iam.gserviceaccount.com \
--scopes compute-rw,storage-ro
API
En la API, realiza una solicitud POST
al método setServiceAccount
:
https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setServiceAccount
En el ejemplo anterior, se ilustra lo siguiente:
[PROJECT_ID]
es el ID del proyecto de esta solicitud.[ZONE]
es la zona a la que pertenece esta instancia.[INSTANCE_NAME]
es el nombre de la instancia.
En el cuerpo de la solicitud, proporciona la dirección de correo electrónico de la cuenta de servicio y los URI de alcance deseados para la instancia. Para obtener más información sobre la configuración de los permisos de acceso, consulta Prácticas recomendadas.
{
"email": "[SERVICE_ACCOUNT_EMAIL]",
"scopes": [
"[SCOPE_URI]",
"[SCOPE_URI]",
...
]
}
Por ejemplo, la siguiente solicitud utiliza el correo electrónico de la cuenta de servicio my-sa-123@my-project-123.iam.gserviceaccount.com
y establece un alcance de Cloud Storage y BigQuery:
{
"email": "my-sa-123@my-project-123.iam.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/devstorage.read_only"
]
}
Obtén un correo electrónico de cuenta de servicio
Para identificar una cuenta de servicio, necesitas el correo electrónico de la cuenta de servicio. Obtén un correo electrónico de cuenta de servicio a través de una de las siguientes opciones:
Console
Ve a la página de cuentas de servicio.
Si se te solicita, selecciona un proyecto. En la página de cuentas de servicio se enumeran todas las cuentas de servicio del proyecto y sus correos electrónicos.
gcloud
Usa el comando gcloud compute instances describe
de tu máquina local:
gcloud compute instances describe [INSTANCE_NAME] --format json
{ ... "serviceAccounts":[ { "email":"123845678986-compute@developer.gserviceaccount.com", "scopes":[ "https://www.googleapis.com/auth/devstorage.full_control" ] } ] ... }
Si la instancia no usa una cuenta de servicio, recibirás una respuesta sin la propiedad serviceAccounts
.
Servidor de metadatos
Consulta el servidor de metadatos desde la propia instancia. Haz una solicitud a http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/
:
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/" \
-H "Metadata-Flavor: Google"
Si habilitaste una o más cuentas de servicio cuando creaste la instancia, este comando curl
mostrará un resultado similar al siguiente:
123845678986-compute@developer.gserviceaccount.com/
default/
Si la instancia no usa una cuenta de servicio, recibirás una respuesta vacía.
API
Realiza una solicitud a la API de cuentas de servicio.
Usa la cuenta de servicio predeterminada de Compute Engine
Si estás familiarizado con la cuenta de servicio predeterminada de Compute Engine y deseas usar las credenciales proporcionadas por la cuenta de servicio predeterminada en lugar de crear cuentas de servicio nuevas, puedes otorgar funciones de IAM a la cuenta de servicio predeterminada.
De manera predeterminada, todas las instancias de Compute Engine pueden ejecutarse como la cuenta de servicio predeterminada. Cuando creas una instancia mediante la CLI de Google Cloud o la consola de Google Cloud y omites las especificaciones de la cuenta de servicio, la cuenta de servicio predeterminada se asigna a la instancia.
Antes de asignar roles de IAM a la cuenta de servicio predeterminada, ten en cuenta la siguiente información:
Otorgar una función de IAM a la cuenta de servicio predeterminada afecta a todas las instancias que se ejecutan como cuenta de servicio predeterminada. Por ejemplo, si le otorgas a la cuenta de servicio predeterminada la función
roles/storage.objectAdmin
, todas las instancias que se ejecutan como la cuenta de servicio predeterminada con los niveles de acceso requeridos tendrán los permisos que les otorga la funciónroles/storage.objectAdmin
. Del mismo modo, si limitas el acceso por omisión de ciertas funciones, esto afectará a todas las instancias que se ejecutan como cuenta de servicio predeterminada.Debes revocar el permiso de editor del proyecto para la cuenta de servicio. La cuenta de servicio predeterminada se agrega como editor de proyecto a los proyectos de manera predeterminada. Para usar las funciones de IAM, debes revocar el permiso de editor del proyecto.
Si no estás seguro de otorgar funciones de IAM a la cuenta de servicio predeterminada, crea una nueva cuenta de servicio.
Sigue estas instrucciones para otorgar una función de IAM a la cuenta de servicio predeterminada:
En la consola de Google Cloud, ve a la página IAM.
Si se te solicita, selecciona un proyecto.
Busca la cuenta de servicio denominada Cuenta de servicio predeterminada de Compute Engine.
En la columna Funciones, expande el menú desplegable para la cuenta de servicio predeterminada de Compute Engine.
Quita el acceso de editor y guarda tus cambios.
A continuación, otorga funciones de IAM a la cuenta de servicio.
Cualquier instancia de máquina virtual que se esté ejecutando en la actualidad como cuenta de servicio predeterminada tendrá ahora acceso a otras API de Google Cloud, de acuerdo con las funciones de IAM que le otorgaste a la cuenta.
Si deseas configurar una instancia nueva para que se ejecute como cuenta de servicio predeterminada, sigue estas instrucciones:
Console
Ir a la página Crear una instancia
Especifica los detalles de la VM.
En la sección Identidad y acceso a la API, elige Cuenta de servicio predeterminada de Compute Engine de la lista desplegable Cuenta de servicio.
Continúa con el proceso de creación de VM.
gcloud
Para crear una instancia nueva y autorizar el acceso completo a todos los servicios de Google Cloud mediante la cuenta de servicio predeterminada, usa el siguiente comando:
gcloud compute instances create [INSTANCE_NAME] \
--scopes cloud-platform
API
En la API, genera una solicitud estándar para crear una instancia , pero incluye la propiedad serviceAccounts
.
Obtén tu ID de cuenta de servicio predeterminada y, luego, inclúyela como el email
de la cuenta de servicio. Luego, establece uno o más alcances en la propiedad scopes
.
POST https://compute.googleapis.com/compute/v1/projects/zones/[ZONE]/instances { "machineType": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/machineTypes/[MACHINE_TYPE]", "name": "[INSTANCE_NAME]", "serviceAccounts": [ { "email": "[DEFAULT_SERVICE_ACCOUNT_EMAIL]", "scopes": ["https://www.googleapis.com/auth/cloud-platform"] } ], ... }
Prácticas recomendadas
- Google recomienda que cada instancia de VM que necesite llamar a una API de Google se ejecute como una cuenta de servicio con los permisos mínimos necesarios para que esa VM haga su trabajo.
Sigue estas instrucciones a fin de configurar cuentas de servicio para las VM:
- Crea una cuenta de servicio nueva en lugar de usar la predeterminada de Compute Engine.
- Otorga funciones de IAM a esa cuenta de servicio solo para los recursos que necesita.
- Configura la VM para que se ejecute como la cuenta de servicio nueva que creaste.
- Otorga el alcance
https://www.googleapis.com/auth/cloud-platform
a tu VM para permitir el acceso a la mayoría de las API de Google Cloud, de modo que los permisos de IAM de la VM estén determinados por completo por las funciones de IAM que otorgaste a la cuenta de servicio de las VM. La cuenta de servicio solo puede ejecutar los métodos de la API que permitan el nivel de acceso y las funciones específicas de IAM de la cuenta de servicio.
Limita los privilegios de las cuentas de servicio y verifica con regularidad los permisos de tu cuenta de servicio para asegurarte de que estén actualizados.
Borra las cuentas de servicio con cuidado. Asegúrate de que tus aplicaciones importantes ya no usen la cuenta de servicio antes de borrarla. Si no estás seguro de si se está usando una cuenta de servicio, te recomendamos que inhabilites la cuenta de servicio en lugar de borrarla. Las cuentas de servicio inhabilitadas se pueden volver a habilitar si aún son necesarias.
Mitiga los riesgos de seguridad para la cuenta de servicio. Si deseas obtener más información, consulta Prácticas recomendadas para trabajar con cuentas de servicio.
¿Qué sigue?
- Obtén más información sobre cuentas de servicio.
- Obtén más información sobre las funciones de IAM de Compute Engine.
- Obtén más información sobre las prácticas recomendadas para trabajar con cuentas de servicio.
Pruébalo tú mismo
Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Compute Engine en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Probar Compute Engine gratis