Creación de una clave privada utilizando la CLI de Google
Se requiere una clave privada en la Consola de UDP para crear un plan de VSB a GCP.
Antes de poder crear una nueva clave, se debe instalar e inicializar la CLI de gcloud. Siga los pasos mencionados en los vínculos siguientes para instalar e inicializar la herramienta CLI con permiso de administrador.
- Para obtener instrucciones sobre cómo instalar la CLI de Google Cloud, haga clic aquí.
- Para obtener instrucciones sobre cómo inicializar la CLI de Google Cloud, haga clic aquí.
Después de instalar e inicializar gcloud en el mismo entorno, siga estos pasos para crear la clave manualmente o para ejecutar el script de Windows PowerShell gcp_auth_key_create.ps1:
- Después de instalar e inicializar la herramienta de gcloud, haga lo siguiente:
- Pruebe y confirme que la herramienta de gcloud se ha instalado correctamente. Para ello, compruebe la versión con el comando "gcloud --version".
- Durante la inicialización, el usuario se debe autenticar en gcloud con una cuenta de administrador que tenga el control completo de la organización para adjuntarla a un proyecto específico.
- Establezca un proyecto en el que las instancias de VSB se deben crear mediante el comando "gcloud config set project PROJECT_ID" donde PROJECT_ID es un proyecto válido disponible en la organización.
- Use gcloud para configurar el acceso al proyecto para el usuario creando una función personalizada para el proyecto que permita tareas relacionadas con VSB.
- Para crear una cuenta de servicio, reemplace los valores siguientes y ejecute el comando que se indica a continuación:
- SA_NAME: el nombre deseado de la cuenta de servicio.
- DISPLAY_NAME: el nombre de la cuenta de servicio que se mostrará en Google Cloud Console.
- Obtenga la dirección de correo electrónico de la cuenta de servicio y ejecute el comando:
- Reemplace lo siguiente:
- DISPLAY_NAME: el nombre de visualización proporcionado en el paso 3.
- Anote la dirección de correo electrónico de la cuenta de servicio del resultado del comando anterior, que tendrá el siguiente formato y se representará como SA_EMAIL en el resto de los pasos:
- SA_NAME@PROJECT_ID.iam.gserviceaccount.com
- Para crear y descargar el archivo de clave JSON, reemplace los valores siguientes y ejecute el comando que se indica a continuación:
- KEY_FILE: La ruta a un nuevo archivo de salida para la clave privada como, por ejemplo, c:\gcp-private-key.json o ~/sa-private-key.json.
- SA_EMAIL: Dirección de correo electrónico de la cuenta de servicio anotada en el paso 5, también mencionada como SA_NAME@PROJECT_ID.iam.gserviceaccount.com, donde SA_NAME es el nombre de la cuenta de servicio para la cual se va a crear una clave y PROJECT_ID es el ID del proyecto de Google Cloud.
- El archivo de clave JSON contiene la clave privada que se necesita más adelante en la consola de UDP.
- Para crear un rol personalizado que contenga los siguientes 69 permisos necesarios para la tarea de Virtual Standby, reemplace los valores siguientes y ejecute el comando:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- ROLE_NAME: El nombre de rol deseado.
- Este comando crea un rol personalizado en el proyecto llamado ROLE_NAME con los permisos para crear y gestionar instancias. El nombre completo del rol se muestra como resultado del comando anterior, el formato del nombre del rol es projects/PROJECT_ID/roles/ROLE_NAME.
- Para vincular el rol personalizado ROLE_NAME a la cuenta de servicio SA_NAME, reemplace los valores siguientes y ejecute el comando que se indica a continuación:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- ROLE_FULL_NAME: El nombre completo de la función enumerada en el paso 6 anterior con el formato projects/PROJECT_ID/roles/ROLE_NAME, donde ROLE_NAME es el nombre utilizado en el paso anterior y PROJECT_ID es el ID del proyecto de Google Cloud.
- SA_EMAIL: Dirección de correo electrónico de la cuenta de servicio anotada en el paso anterior con el formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com, donde SA_NAME es el nombre de la cuenta de servicio para la cual se va a crear una clave y PROJECT_ID es el ID del proyecto de Google Cloud.
- En la Consola de UDP, utilice este archivo de clave JSON de cuentas de servicio descargado en el paso 5 para crear el plan VSB para GCP.
gcloud iam service-accounts create SA_NAME --display-name="DISPLAY_NAME"
gcloud iam service-accounts list --filter "displayName=DISPLAY_NAME"
gcloud iam service-accounts keys create KEY_FILE --iam-account=SA_EMAIL
gcloud iam roles create ROLE_NAME --project PROJECT_ID –permissions=
compute.addresses.list,compute.addresses.use,compute.disks.create,compute.disks.createSnapshot,
compute.disks.delete,compute.disks.get,compute.disks.use,compute.firewallPolicies.create,compute.firewallPolicies.delete,
compute.firewallPolicies.get,compute.firewallPolicies.list,compute.firewallPolicies.update,compute.firewallPolicies.use,
compute.firewalls.create,compute.firewalls.delete,compute.firewalls.get,compute.firewalls.list,compute.firewalls.update,
compute.globalOperations.get,compute.images.useReadOnly,compute.instances.addAccessConfig,
compute.instances.attachDisk,compute.instances.create,compute.instances.delete,compute.instances.deleteAccessConfig,
compute.instances.detachDisk,compute.instances.list,compute.instances.setMetadata,compute.instances.setServiceAccount,
compute.instances.start,compute.instances.stop,compute.instances.update,compute.instances.updateDisplayDevice,compute.machineTypes.list,compute.networks.access,
compute.networks.create,compute.networks.delete,compute.networks.get,compute.networks.getEffectiveFirewalls,compute.networks.list,compute.networks.update,
compute.networks.use,compute.networks.useExternalIp,compute.regionOperations.get,compute.snapshots.create,compute.snapshots.delete,compute.snapshots.get,
compute.snapshots.useReadOnly,compute.subnetworks.create,compute.subnetworks.delete,compute.subnetworks.get,compute.subnetworks.list,compute.subnetworks.update,
compute.subnetworks.use,compute.subnetworks.useExternalIp,compute.zoneOperations.get,compute.zones.list,iam.serviceAccounts.actAs,iam.serviceAccounts.get,iam.serviceAccounts.list,
resourcemanager.projects.get,serviceusage.services.use,storage.buckets.create,storage.buckets.enableObjectRetention,storage.buckets.list,storage.objects.create,storage.objects.delete,
storage.objects.get,storage.objects.list
Nota: Un rol es una recopilación de permisos. No se puede asignar un permiso al usuario directamente; en su lugar, les concede un rol. Cuando se concede un rol a un usuario, se le conceden todos los permisos que contiene el rol.
gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:SA_EMAIL --role=ROLE_FULL_NAME