En este documento, se explica cómo crear una instancia de máquina virtual (VM) configurada para usar una cuenta de servicio administrada por el usuario. Una cuenta de servicio es un tipo especial de cuenta que, por lo general, es usada por una carga de trabajo de aplicación o procesamiento para realizar llamadas autorizadas a la API.
Las cuentas de servicio son necesarias para situaciones en las que una carga de trabajo, como una aplicación personalizada, necesita acceder a recursos Trusted Cloud by S3NS o realizar acciones sin la participación del usuario final. Si deseas obtener más información sobre cuándo usar las cuentas de servicio, consulta Prácticas recomendadas para usar cuentas de servicio.
Si tienes aplicaciones que necesitan realizar llamadas a las APIs de Trusted Cloud by S3NS , Google recomienda que conectes una cuenta de servicio administrada por el usuario a la VM en la que se ejecuta la aplicación o la carga de trabajo. Luego, otorgas los roles de IAM de la cuenta de servicio, que otorga a la cuenta de servicio (y, por extensión, a las aplicaciones que se ejecutan en la VM) acceso a los recursos deTrusted Cloud by S3NS .
Antes de comenzar
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las APIs de Trusted Cloud by S3NS .
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1
) -
Crea cuentas de servicio (
roles/iam.serviceAccountCreator
) -
Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin
) -
Para crear cuentas de servicio, haz lo siguiente: Todos los permisos del rol
iam.serviceAccountCreator
-
Para otorgar permisos a la cuenta de servicio, haz lo siguiente: Todos los permisos del rol
resourcemanager.projectIamAdmin
-
Para crear VMs, sigue estos pasos:
compute.instances.create
en el proyecto- Para usar una imagen personalizada con el fin de crear la VM, sigue estos pasos:
compute.images.useReadOnly
en la imagen - Si deseas usar una instantánea para crear la VM, sigue estos pasos:
compute.snapshots.useReadOnly
en la instantánea - Para usar una plantilla de instancias a fin de crear la VM, haz lo siguiente:
compute.instanceTemplates.useReadOnly
en la plantilla de instancias - Para asignar una red heredada a la VM:
compute.networks.use
en el proyecto - Si deseas especificar una dirección IP estática para la VM;
compute.addresses.use
en el proyecto - Para asignar una dirección IP externa a la VM cuando se usa una red y punto heredado;
compute.networks.useExternalIp
en el proyecto - A fin de especificar una subred para la VM:
compute.subnetworks.use
en el proyecto o en la subred elegida - Para asignar una dirección IP externa a la VM cuando se usa una red de VPC,
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida - A fin de configurar los metadatos de la instancia de VM para la VM y los puntos, sigue estos pasos:
compute.instances.setMetadata
en el proyecto - A fin de configurar etiquetas para la VM y los puntos;
compute.instances.setTags
en la VM - Si deseas configurar etiquetas para la VM, haz lo siguiente:
compute.instances.setLabels
en la VM - A fin de configurar una cuenta de servicio para que la VM la use
compute.instances.setServiceAccount
en la VM - Si deseas crear un disco nuevo para la VM:
compute.disks.create
en el proyecto - Para conectar un disco existente en modo de solo lectura o de lectura y escritura, haz lo siguiente:
compute.disks.use
en el disco - Para conectar un disco existente en modo de solo lectura y dos puntos, sigue estos pasos:
compute.disks.useReadOnly
en el disco
- Crea una cuenta de servicio nueva administrada por el usuario en lugar de usar la cuenta de servicio predeterminada de Compute Engine y otórgale roles de IAM solo a los recursos y las operaciones que necesita.
- Conecta la cuenta de servicio a tu VM.
- Configura el permiso de la plataforma en la nube (
https://www.googleapis.com/auth/cloud-platform
) en tu VM. Esto permite que la cuenta de servicio de la VM llame a las APIs de Trusted Cloud by S3NS que tiene permiso para usar.- Si especificas la cuenta de servicio con la consola de Trusted Cloud , establece el permiso de acceso de la cuenta de servicio en Permitir el acceso total a todas las APIs de Cloud.
- Si especificas la cuenta de servicio con Google Cloud CLI o la API de Compute Engine, puedes usar el parámetro
scopes
para configurar el permiso de acceso.
- Select your project.
-
In the Service account name field, enter a name. The Trusted Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the required roles to the service account.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
In the Service account users role field, enter the identifier for the principal that will attach the service account to other resources, such as Compute Engine instances.
This is typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
-
Click Done to finish creating the service account.
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com --member="principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service account.PROJECT_ID
: the project ID where you created the service account.POOL_ID
: a workforce identity pool ID.-
SUBJECT_ID
: a subject ID; typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
En la consola de Trusted Cloud , ve a la página Crear una instancia.
Para adjuntar una cuenta de servicio, haz lo siguiente:
- En el menú de navegación, haz clic en Seguridad.
- En el cuadro Cuenta de servicio, selecciona la cuenta de servicio que creaste.
- En Permisos de acceso, selecciona Permitir el acceso total a todas las APIs de Cloud.
Opcional: Especifica otros parámetros de configuración. Para obtener más información, consulta Opciones de configuración durante la creación de instancias.
Para crear y, luego, iniciar la instancia, haz clic en Crear.
SERVICE_ACCOUNT_EMAIL
: la dirección de correo electrónico de la cuenta de servicio que creaste. Por ejemplo:my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
Para ver la dirección de correo electrónico, consulta Enumera cuentas de servicio.VM_NAME
: El nombre de la instancia de VMPROJECT_ID
: ID del proyecto en el que se creará la VMZONE
: Zona en la que se creará la VMMACHINE_TYPE_ZONE
: Zona que contiene el tipo de máquina que se usará para la VM nuevaMACHINE_TYPE
: El tipo de máquina, predefinido o personalizado de la VM nuevaVM_NAME
: Nombre de la VM nuevaIMAGE_PROJECT
: El proyecto que contiene la imagen
Por ejemplo, si especificasdebian-10
como familia de imágenes, especificadebian-cloud
como proyecto de imagen.IMAGE
: Especifica una de las siguientes opciones:IMAGE
: Es una versión específica de una imagen pública.Por ejemplo:
"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
IMAGE_FAMILY
: Es una familia de imágenes.Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas
"sourceImage": "projects/debian-cloud/global/images/family/debian-10"
, Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenesDebian 10
.
NETWORK_NAME
: La red de VPC que deseas usar para la VM. Puedes especificardefault
para usar tu red predeterminadaSERVICE_ACCOUNT_EMAIL
: la dirección de correo electrónico de la cuenta de servicio que creaste. Por ejemplo:my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
. Para ver la dirección de correo electrónico, consulta obtén un correo electrónico de cuenta de servicio.ENABLE_SECURE_BOOT
: Opcional: Si eliges una imagen que admite funciones de VM protegida, Compute Engine habilita de forma predeterminada el módulo virtual de plataforma de confianza (vTPM) y la supervisión de la integridad. Compute Engine no habilita el Inicio seguro de forma predeterminada.Si especificas
true
paraenableSecureBoot
, Compute Engine crea una VM con las tres funciones de VM protegida habilitadas. Después de que Compute Engine inicie la VM, debes detenerla para modificar las opciones de VM protegida.Asegúrate de que la cuenta de servicio conectada a tu VM tenga el rol
roles/storage.admin
.Si tu VM usa una imagen de SO personalizada, instala gcloud CLI. De forma predeterminada, gcloud CLI está instalada en la mayoría de las imágenes públicas del SO que proporciona Trusted Cloud by S3NS.
Conéctate a la VM.
Desde la VM, usa Google Cloud CLI para administrar tus recursos de Cloud Storage.
- Obtén información para autenticar cargas de trabajo con cuentas de servicio.
- Obtén más información para cambiar la cuenta de servicio conectada a una VM.
- Obtén información sobre cómo enumerar y editar cuentas de servicio.
- Revisa las prácticas recomendadas para trabajar con cuentas de servicio y mitiga los riesgos de seguridad.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la Trusted Cloud documentación de autenticación.
Roles obligatorios
Para obtener los permisos que necesitas para crear VMs que usen cuentas de servicio, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para crear VMs que usen cuentas de servicio. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Los siguientes permisos son necesarios para crear VMs que usen cuentas de servicio:
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Descripción general
Se recomienda que configures las cuentas de servicio para las VMs de la siguiente manera:
Configurar una cuenta de servicio
Crea una cuenta de servicio y asígnale los roles de IAM necesarios. Asigna tantos roles de IAM como sea necesario. Puedes modificar los roles de IAM en tu cuenta de servicio según sea necesario.
Google recomienda que limites los privilegios de las cuentas de servicio y que verifiques con regularidad los permisos de tu cuenta de servicio para asegurarte de que estén actualizados.
Usa uno de los siguientes métodos para configurar la cuenta de servicio.
Console
In the Trusted Cloud console, go to the Create service account page.
Go to Create service accountgcloud
Set up authentication:
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
ydisplay_name
.Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Crea una VM y adjunta la cuenta de servicio
Después de crear la cuenta de servicio, crea una VM y conecta la cuenta de servicio que creaste en la sección anterior. Además, configura el permiso de acceso de la VM en
cloud-platform
.Si ya tienes una VM existente y quieres configurarla para que use una cuenta de servicio diferente, consulta Cambia la cuenta de servicio conectada.
Usa uno de los siguientes métodos para crear una VM y conectar la cuenta de servicio.
Console
gcloud
Para crear una instancia de VM nueva y configurarla para que use una cuenta de servicio personalizada con Google Cloud CLI, usa el comando
gcloud compute instances create
y proporciona el correo electrónico de la cuenta de servicio y el permiso de accesocloud-platform
a la instancia de VM.gcloud compute instances create VM_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=https://www.googleapis.com/auth/cloud-platform
Reemplaza lo siguiente:
Por ejemplo:
gcloud compute instances create example-vm \ --service-account 123-my-sa@my-project-123.s3ns-system.iam.gserviceaccount.com \ --scopes=https://www.googleapis.com/auth/cloud-platform
También puedes especificar el alcance con el alias:
--scopes=cloud-platform
. Solo la CLI de gcloud reconoce estos alias. La API y otras bibliotecas no reconocen estos alias, por lo que debes especificar el URI de permiso completo.Terraform
Para configurar una VM nueva para que use una cuenta de servicio, puedes usar el recurso
google_compute_instance
.REST
Usa el método
instances.insert
para crear la VM y especifica el correo electrónico de la cuenta de servicio y el permiso de acceso para la instancia de VM.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME
", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME" } ], "serviceAccounts": [ { "email": "SERVICE_ACCOUNT_EMAIL", "scopes": ["https://www.googleapis.com/auth/cloud-platform"] } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }Reemplaza lo siguiente:
Acceder a otros servicios de Trusted Cloud by S3NS y usarlos
Después de que tu VM esté configurada para usar la cuenta de servicio, las aplicaciones pueden usar la cuenta de servicio para autenticarse. El método más común es autenticarse con las credenciales predeterminadas de la aplicación y una biblioteca cliente. Algunas Trusted Cloud by S3NS herramientas, como gcloud CLI, pueden usar automáticamente la cuenta de servicio para acceder a las Trusted Cloud by S3NS APIs desde una VM. Para obtener más información, consulta Autentica cargas de trabajo con cuentas de servicio.
Si se borra una cuenta de servicio, las aplicaciones ya no tendrán acceso a los recursos deTrusted Cloud by S3NS a través de esa cuenta. Si borras las cuentas de servicio predeterminadas de App Engine y Compute Engine, las instancias ya no tendrán acceso a los recursos del proyecto. Si no tienes en claro si se está usando una cuenta de servicio, te recomendamos que inhabilites la cuenta de servicio antes de borrarla. Las cuentas de servicio inhabilitadas se pueden volver a habilitar si aún son necesarias.
Ejemplo: Accede a recursos de Cloud Storage desde tu VM
Después de configurar tu VM para usar una cuenta de servicio que tenga el rol
storage.admin
, puedes usar herramientas como gcloud CLI para administrar los archivos que almacenaste en Cloud Storage Para acceder a tus recursos de Cloud Storage, completa lo siguiente:Próximos pasos
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-21 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-21 (UTC)"],[[["This document outlines how to create a virtual machine (VM) instance configured to use a user-managed service account, which is a special type of account used by applications or workloads to make authorized API calls to Google Cloud."],["Attaching a user-managed service account to a VM is recommended for applications needing to access Google Cloud resources without end-user involvement, and it is essential to grant appropriate IAM roles to the service account to define its access permissions."],["The process involves creating a new user-managed service account, assigning necessary IAM roles to it, attaching it to the VM, and setting the VM's access scope to the `cloud-platform` scope to enable Google Cloud API access."],["The required permissions to create VMs that use service accounts include specific permissions related to the creation and management of the service account and the VM itself, such as creating and attaching disks, setting metadata, and managing network settings, and can be fulfilled by using a combination of predefined roles."],["After configuring the VM to use a service account, applications can authenticate using Application Default Credentials and client libraries, allowing access to other Google Cloud services; for instance, if the service account has the `storage.admin` role, tools like the gcloud CLI can be used from the VM to manage Cloud Storage resources."]]],[]] -