Operaciones de identidad
Puede utilizar el servicio de metadatos para obtener un token de acceso de identidad del servicio de metadatos, generar un token de acceso de IAM y crear un certificado de identidad. Estos tokens y certificados se pueden utilizar para acceder a los servicios de metadatos con el fin de llamar a servicios habilitados para IAM y establecer conexiones cifradas entre recursos compartidos de archivos e instancias de servidores virtuales.
Identificador de acceso
Un token de acceso de identidad proporciona una credencial de seguridad para acceder a los servicios de metadatos de IBM Cloud® y a los servicios de identidad de VPC. Es un token firmado que contiene un conjunto de propiedades basadas en la
información sobre la instancia y en la información que se envía en la solicitud del token. La fecha mínima de la versión para utilizar la función de token de acceso de identidad es 2022-03-01.
La comunicación entre la instancia y el servicio de metadatos se realiza dentro del servidor. Puede adquirir la señal desde dentro de la instancia. Si el acceso seguro al servicio de metadatos está habilitado en su instancia, utilice el protocolo "https" en lugar del protocolo "http".
Para obtener el token de identidad, realice una solicitud PUT /identity/v1/token a la API del servicio de metadatos.
Si actualmente utiliza el /instance_identity/v1/token método y desea adoptar la versión de 2025-08-26 lanzamiento de la API o posterior, revise los cambios que se describen en la guía de migración: Actualización a la 2025-08-26 versión de la API de identidad de VPC.
curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26" -H "Metadata-Flavor: ibm" -d '{}'
En la solicitud, puede especificar un tiempo de caducidad para el token. El valor de caducidad por defecto es de 5 minutos, pero puede especificar cualquier valor entre 5 segundos y 1 hora. Véase el siguiente ejemplo para un host que tiene activado el acceso seguro. En el siguiente ejemplo, el tiempo de expiración del token se especifica como una hora.
curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26" -H "Metadata-Flavor: ibm" -d '{"expires_in": 3600}'
La respuesta de la API contiene el token de acceso a la identidad. Utilice esta señal para acceder al servicio de metadatos.
La siguiente respuesta JSON muestra la cadena de caracteres del token de acceso de identidad, la fecha y la hora en que se creó, la fecha y la hora en que caduca, y la hora de caducidad que has establecido. Este token caduca en 5 minutos.
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IlZTSS1DUl91cy1lYXN0X2I5...",
"created_at": "2025-06-10T11:08:39.363Z",
"expires_at": "2025-06-10T11:13:39.363Z",
"expires_in": 300
}
O también puedes utilizar el siguiente comando :
identity_token=`curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26"\
-H "Metadata-Flavor: ibm"\
-d '{
"expires_in": 3600
}' | jq -r '(.access_token)'`
En el siguiente ejemplo, el valor de retorno del comando cURL es el token de acceso a la identidad. jq extrae el token y lo almacena en la variable de entorno identity_token.
identity_token=`curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26"\
-H "Metadata-Flavor: ibm"\
-d '{
"expires_in": 3600
}' | jq -r '(.access_token)'`
En el ejemplo se utiliza jq como analizador sintáctico, una herramienta de terceros bajo licencia MIT. Es posible que jq no venga preinstalado en todas las imágenes
de VPC disponibles al crear una instancia. Es posible que tengas que instalar jq antes de utilizarlo o bien utilizar otro analizador sintáctico de tu elección.
Puede especificar la variable identity_token en una llamada GET al servicio de metadatos para invocar uno de los métodos de metadatos. Para obtener más información, consulte Recuperar metadatos de las instancias en ejecución.
También puedes generar un token de IAM a partir de este token de identidad y utilizar la API de VPC para llamar a servicios compatibles con IAM. Para obtener más información, consulta « Generar un token de IAM a partir de un token de acceso de identidad ».
Generar un token de IAM a partir de un token de identidad y acceso
Para acceder a los servicios de IBM Cloud habilitados para IAM en la cuenta, puedes generar un token de IAM a partir del token de identidad y acceso y de un perfil de confianza. Una vez generado el token de IAM, podrás utilizarlo para acceder a servicios compatibles con IAM, como IBM Cloud Object Storage, Cloud Database Service y las API de VPC. Puedes reutilizar el token varias veces.
Haga una solicitud a POST /identity/v1/iam_tokens y especifique el ID del perfil de confianza. Esta solicitud utiliza el token de acceso de identidad y un perfil de confianza vinculado a una instancia de servidor virtual para generar
un token de acceso de IAM. El perfil de confianza se puede vincular al crear la instancia, o proporcionarlo en el cuerpo de la petición.
La API de IAM que se utiliza para transmitir el token de acceso de identidad y generar un token de IAM va a quedar obsoleta. Los usuarios beta deben migrar a la API del servicio de metadatos para generar un token IAM mediante POST /identity/v1/iam_tokens.
Solicitud de ejemplo:
iam_token=`curl -X POST "$vpc_metadata_api_endpoint/identity/v1/iam_tokens?version=2025-10-14" \
-H "Authorization: Bearer $identity_token" \
-d '{
"trusted_profile": {
"id": "Profile-8dd84246-7df4-4667-94e4-8cede51d5ac5"
}
}'| jq -r '(.access_token)'`
La respuesta JSON muestra la señal de IAM.
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aGVfYmVzdCI6I8...",
"created_at": "2025-06-10T14:10:15Z",
"expires_at": "2025-06-10T15:10:15Z",
"expires_in": 3600
}
Para obtener más información sobre los perfiles de confianza, consulte Utilización de un perfil de confianza para invocar servicios habilitados para IAM.
Generación de un certificado de identidad mediante un token de acceso a la identidad
Los certificados de identidad son necesarios para activar y utilizar correctamente el cifrado en tránsito entre las instancias de servidor virtual y los recursos compartidos de IBM Cloud® File Storage for VPC. Para generar un certificado de
identidad para la instancia, realice una llamada a POST /identity/v1/certificates con el token de acceso de identidad y una solicitud de firma de certificado (CSR).
Puede obtener las solicitudes de firma de certificados (CSR) del kit de herramientas comando línea de comandos de código abierto. OpenSSL
-
El siguiente comando genera una solicitud de firma de certificado (CSR) y un par de claves RSA mediante openssl. Cuando ejecute el comando, sustituya el código de país
USpor su código de país de dos dígitos en'/C=US'.openssl req -sha256 -newkey rsa:4096 -subj '/C=US' -out ./sslcert.csr -keyout file.key -nodesSi utiliza un software diferente para crear el CSR, es posible que se le pida que introduzca información sobre su ubicación, como el código de país (C), el estado (ST), la localidad (L), el nombre de su organización (O) y la unidad de organización (OU). Se puede utilizar cualquiera de estos atributos de nomenclatura. Se rechazan cualquier otro atributo de denominación, como los nombres comunes. Las CSR con el nombre común especificado se rechazan porque cuando se realiza la solicitud a la API de metadatos, el sistema aplica valores de ID de instancia al nombre común del asunto para los certificados de identidad. También se rechazan los CSR con prórrogas.
-
Formatee el CSR antes de realizar una llamada API al servicio de metadatos utilizando el siguiente comando.
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' sslcert.csr
A continuación, puede realizar la solicitud de API al servicio de metadatos. Vea el ejemplo siguiente. El valor « csr » es obligatorio. El valor de « expires_in » es opcional. El valor por defecto para la expiración
es 3600, que equivale a 1 hora.
curl -X POST "$vpc_metadata_api_endpoint/identity/v1/certificates?version=2024-11-12" \
-H "Authorization: Bearer $identity_token" \
-d '{ "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICnTCCAYUCAQAwWDELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCU1pbm5lc290YTES\nMBAGA1UEBwwJUm9jaGVzdGVyMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0\neSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYBvW12cKEkRUu\nyPScs7Xjwu/m+W8pZSQf9wrBa7DBVLFCdh440xOuSnIbsm+BNgYz4wL6/8la+N/K\nff06CdEwy9HLhPYc2z62tECxOBhI1G9gnsRUwb6WHNY71VulZs+37/9Mgd/eQy2n\nKHULNEU7sjNpLYoguKX8GRV3etKDp3tlFQmB6cNGOAgB3aQDmhdAh7K6oftesm0R\n8C7nmFA4SSjaI+855JxoxadlB2cCA5boaQ2gNO6YhYbtuTrMicQb0MTlZmacqzqP\nAxXWD3yFmAuUCpa2tBFBsavSW/kc52m4ldcO60U6hARvOxcXDqrbwu8r1ieY+tcZ\ncqjjBi99AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAgAqWjtH3yAsX8QfTa9Pv\n3kktYFQKFsBzntmFDdIrOkeGayWRCuSG06f3sHWH0RuGkpq1x/4bedjcyyNVSna7\nxYX6kPOQX5iqf9pISD7A0XIkfS6XAos7gOh/jadjtxSwPCkuztSqIPKObH9OClAE\nU1fYDEtZCaZxsUdLwWJwOzbsivT97g1UVnbJAEzAJrqyaV4cUbv/w/slytHF+GAg\nNoUvPD8NGOQ+VzuI2oQuK515cyHO1SXrJyvkEVwRVVr3SoasqqWIQRrIv6zgzgik\nLN+uQxpzL1EeTB8qKy7xjymo2y1PbmaZzVNQNaBnxJfLE522pfW69evBRJ1qhrby\nTQ==\n-----END CERTIFICATE REQUEST-----\n"}'
O también puedes utilizar el siguiente comando :
curl -X POST "$vpc_metadata_api_endpoint/identity/v1/certificates?version=2025-08-26" \
-H "Authorization: Bearer $identity_token" \
-d '{ "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICnTCCAYUCAQAwWDELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCU1pbm5lc290YTES\nMBAGA1UEBwwJUm9jaGVzdGVyMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0\neSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYBvW12cKEkRUu\nyPScs7Xjwu/m+W8pZSQf9wrBa7DBVLFCdh440xOuSnIbsm+BNgYz4wL6/8la+N/K\nff06CdEwy9HLhPYc2z62tECxOBhI1G9gnsRUwb6WHNY71VulZs+37/9Mgd/eQy2n\nKHULNEU7sjNpLYoguKX8GRV3etKDp3tlFQmB6cNGOAgB3aQDmhdAh7K6oftesm0R\n8C7nmFA4SSjaI+855JxoxadlB2cCA5boaQ2gNO6YhYbtuTrMicQb0MTlZmacqzqP\nAxXWD3yFmAuUCpa2tBFBsavSW/kc52m4ldcO60U6hARvOxcXDqrbwu8r1ieY+tcZ\ncqjjBi99AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAgAqWjtH3yAsX8QfTa9Pv\n3kktYFQKFsBzntmFDdIrOkeGayWRCuSG06f3sHWH0RuGkpq1x/4bedjcyyNVSna7\nxYX6kPOQX5iqf9pISD7A0XIkfS6XAos7gOh/jadjtxSwPCkuztSqIPKObH9OClAE\nU1fYDEtZCaZxsUdLwWJwOzbsivT97g1UVnbJAEzAJrqyaV4cUbv/w/slytHF+GAg\nNoUvPD8NGOQ+VzuI2oQuK515cyHO1SXrJyvkEVwRVVr3SoasqqWIQRrIv6zgzgik\nLN+uQxpzL1EeTB8qKy7xjymo2y1PbmaZzVNQNaBnxJfLE522pfW69evBRJ1qhrby\nTQ==\n-----END CERTIFICATE REQUEST-----\n"}'
Una respuesta satisfactoria devuelve el nuevo certificado con información como su ID y las horas de creación y caducidad.
{
"certificates": [
"-----BEGIN CERTIFICATE-----\nMIIDmTCCAoECFDGlhn2VlwNEQymsNpyt9rOiiiWDMA0GCSqGSIb3DQEBCwUAMIGJ\nMQswCQYDVQQGEwJVUzESMBAGA1UECAwJTWlubmVzb3RhMRIwEAYDVQQHDAlSb2No\nZXN0ZXIxDDAKBgNVBAoMA0lCTTEeMBwGA1UECwwVVmlydHVhbCBQcml2YXRlIENs\nb3VkMSQwIgYDVQQDDBtWUEMgRXhhbXBsZSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjIx\nMTAxMTM1MDE0WhcNMjIxMTAxMTQyMDE0WjCBhzELMAkGA1UEBhMCVVMxEjAQBgNV\nBAgMCU1pbm5lc290YTESMBAGA1UEBwwJUm9jaGVzdGVyMQwwCgYDVQQKDANJQk0x\nHjAcBgNVBAsMFVZpcnR1YWwgUHJpdmF0ZSBDbG91ZDEiMCAGA1UEAwwZRXhhbXBs\nZSBTaGFyZSBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAM6JytY3R4zWo3zzw/dM9ldUw8TIDQ9dNt+0sm3bFHHlAXaSKvmI+Ls/uQoh\n9VPpRLTx+WyljnKNnkXC6BQOzlugjAfi8hE2f5CC0A0m58XcBiZqH5BwTeLI4vVZ\nO9pLySckkEtHcmFE4h70KS5+1jDApeOTTS6EJsQcal/AAVYg7PDyXr1jE2HTKxnt\nlXopB/+bvWmBQ2k50Km0h0D1n0Ipoqqwb1wwWCrzQ2ds2XNKCUGkCgN6buFiF2nN\nLYS1tsIaw6OsTx+VheNGlYdlOhMUVypCok9JQ85P4NU47O6YgITX1V63ewZBnn5p\napywqdg8K2X2YgU/tLdpl5Jz2ysCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEABuOX\npxGbBQPdG3VGkNCYScZUcxocqmx4mCegBFfv4PjWU2+eG+3JikB3YWwqD11hixQm\n5Qwge/zMXzuKPs5D4yyblpDJlq5Iz/0VMjEl2paCHg9nm5Z3QaSydFH3SCGwfvld\nRn9ib6DSw4a58hmqON+CiWUSSibQy46gUsqVvYhq2lJimejTAN2DlePY2su1xvNV\nAdmDjmvO7j7YV/eWk6r7OgcqtVaAovN3okaybwxf8sLAFxLzp/aUaqXL10qJ/ISz\nVL+UHN7t5WzjHdh2OjDXwz0BOyhdbjyNX8ptKd+E0O21PsFFe8ErfShDh00g/ERP\nzXuEUsCxzTyWRTm8GA==\n-----END CERTIFICATE-----\n",
"-----BEGIN CERTIFICATE-----\nMIIEADCCAuigAwIBAgIUDzQruKqvBY7+CS6DL0u93Na6cLMwDQYJKoZIhvcNAQEL\nBQAwgYExCzAJBgNVBAYTAlVTMRIwEAYDVQQIDAlNaW5uZXNvdGExEjAQBgNVBAcM\nCVJvY2hlc3RlcjEMMAoGA1UECgwDSUJNMR4wHAYDVQQLDBVWaXJ0dWFsIFByaXZh\ndGUgQ2xvdWQxHDAaBgNVBAMME1ZQQyBFeGFtcGxlIFJvb3QgQ0EwHhcNMjIxMTAx\nMDM0OTI5WhcNMjcxMDMxMDM0OTI5WjCBiTELMAkGA1UEBhMCVVMxEjAQBgNVBAgM\nCU1pbm5lc290YTESMBAGA1UEBwwJUm9jaGVzdGVyMQwwCgYDVQQKDANJQk0xHjAc\nBgNVBAsMFVZpcnR1YWwgUHJpdmF0ZSBDbG91ZDEkMCIGA1UEAwwbVlBDIEV4YW1w\nbGUgSW50ZXJtZWRpYXRlIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAxjvxOtSFKsJKl4teBLgkX4+myxhClz2Qmg5MnNQ+oyhyNrpYvjG3+O+DrSUK\nKTXzmWSkKU/6BKmHQPNdpd4ymbb0cG7wmpcU3YjjrSNFgd/o3CEK9M7+ofIuQtTX\nXNUQWX5rb3wBqEA1TWazVTZpphhhcGQ8u03VTKvoF4S2DI6L3brDJJ0w1DM9Isaa\nB2mS64VYMIj3jLry39ryGEoYq1a0tC4C9fET3V5NmUnIRNqVDnGGkYBy/57VRACU\nXxXcQuW6eoPYGk6Ho3eKly34eilF2n9xD/bB41R4NzaxO/0lHq+caI5r1WlnTXtF\nE8wLpFoYMkuC0qiKBesyuyef2QIDAQABo2YwZDAdBgNVHQ4EFgQU2MIYc9g4Z7Kj\n79u2HPGYyTk5QHwwHwYDVR0jBBgwFoAUVnTLKJHyjHUcRp22jx+d3uGqnrwwEgYD\nVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD\nggEBADhOBfnBEaWVWCsZo3UR7UlP5/8i3mRgyFt4YkICPMacy2IcnDw8aoyjTO5b\n4BLO4J1m4AmcJnDJcFIEKLBSNbzsiDdP2rWIAAJKO4gKxdTArIuLgq7zrR74j46L\nn6IFwumKQRw0diGYD6wWIo/f9kGy1NQ46igmRYrEfzA5HWitEpF0mu6lz8mZ8m9s\na6CTEqwLFhP+qOcWtpGjNTa+OHENAmmAR4mR4Os4MsBBnb4RA//S/4suW419Cz8N\n1/Ul7KduYRKpRMSiS9YWbCvC5WiEvOvfp8Z4ecXlC+ohU5MLuCRPfP+blBvxNx2O\nsLotlbzDpim/gYiJCHgW3POlsLE=\n-----END CERTIFICATE-----\n"
],
"created_at": "2024-11-12T13:50:14Z",
"expires_at": "2024-11-12T14:50:14Z",
"expires_in": 3600,
"id": "9fd84246-7df4-4667-94e4-8ecde51d5ac5"
}
Para obtener más información, consulte Cifrado en tránsito: seguridad de las conexiones de montaje entre el recurso compartido de archivos y el host.
Descifrar el token de acceso de identidad
IBM Cloud® Virtual Private Cloud Los tokens de acceso a metadatos de identidad son tokens web JSON (JWT) estándar. Puedes descodificarlos utilizando herramientas comando, descodificadores en línea o bibliotecas de programación para ver datos como la fecha de caducidad (exp), la información del servidor (iaas) y el nonce.
La forma más rápida de descodificar un token de identidad de IBM Cloud VPC en tu terminal es utilizando herramientas estándar de Unix o utilidades de línea de comandos especializadas.
Los tokens de identidad constan de tres partes (encabezado, carga útil y firma) separadas por puntos ..
- El objeto de encabezado codificado está formado por pares clave-valor.
- El objeto de carga útil codificada, compuesto por afirmaciones, que son, en esencia, pares clave-valor. A continuación se muestran algunos ejemplos de reclamaciones de « IBM Cloud VPC » en los tokens de identidad.
iaasvpc- direcciones IP personalizadas
- subredes
- La firma del emisor, que se utiliza para determinar si el código JWT se ha visto comprometido o alterado tras su emisión. El emisor crea la firma firmando los objetos de encabezado y de carga útil codificados con una clave de servidor o una
clave privada. El emisor se indica mediante la indicación «
iss».
-
Para descodificar un token de identidad utilizando base64 y jq, puedes descodificar la carga útil (la segunda parte) con el siguiente comando.
# Replace <TOKEN> with your actual token string echo "<TOKEN>" | cut -d '.' -f 2 | base64 --decode | jq .En el caso de los tokens que utilizan URL-safe Base64, es posible que tengas que sustituir
-por+y_por/antes de descodificarlos. -
Para descodificar un token de identidad con jwt-cli, sigue estos pasos. Este proceso debe utilizarse con precaución.
-
Instala una herramienta específica para obtener un resultado más limpio.
npm install -g jwt-cli -
Emita el mandato siguiente:
jwt decode <TOKEN> -
Revisa la información que figura en la sección «carga útil». Vea el ejemplo siguiente.
{ "aud": [ "VSI-CR_us-south", "247cd7d3-ff6b-11ef-8b70-ca73f727becf_63791398320466773051136262737897537855791952320" ], "exp": 1741802544, "iaas": { "crn": "crn:v1:staging:public:is:us-south-3:a/af6443f619a949c9919c1eb1625d6cc5::instance:7389_bca3d8e4-b8b4-42e0-881e-761a01a89f20", "accountID": "af6443f619a949c9919c1eb1625d6cc5", "instanceID": "7389_bca3d8e4-b8b4-42e0-881e-761a01a89f20", "zone": "us-south-3", "region": "us-south", "profile_name": "bx2-2x8", "resource_group_id": "6d42cce33e604a86b95485c5735be52d" }, "iat": 1741802244, "ip_addresses": [ { "address": "52.118.123.193" }, { "address": "10.240.128.4" } ], "iss": "VSI-CR_us-south", "nonce": "2026-03-12T12:34:56.789Z", "subnets": [ { "crn": "crn:v1:staging:public:is:us-south-3:a/af6443f619a949c9919c1eb1625d6cc5::subnet:7389-9b1a8341-5863-40da-a29f-9a9d6eef2a51", "name": "fode-sn3", "id": "7389-9b1a8341-5863-40da-a29f-9a9d6eef2a51" } ], "vpc": { "crn": "crn:v1:staging:public:is:us-south:a/af6443f619a949c9919c1eb1625d6cc5::vpc:r134-199db3c7-928c-41af-95fd-d4e166648773", "name": "fode", "id": "r134-199db3c7-928c-41af-95fd-d4e166648773" } } -
Para validar el JWT, comprueba la firma «
iss» y verifica que el objeto de encabezado codificado y el objeto de carga útil codificado no se hayan modificado tras la emisión del JWT.
-
También puedes utilizar una herramienta de terceros, como python-jwt o golang-jwt, para descodificar el JWT.
Creación de un perfil de confianza para la instancia
Los perfiles de confianza para las identidades de los recursos de computación te ayudan a asignar una identidad de IAM de IBM Cloud® a un recurso de IBM Cloud®, como una instancia de servidor virtual. Puede llamar a cualquier servicio habilitado para IAM desde una instancia sin tener que gestionar y distribuir secretos de IAM a la instancia. Puedes crear un perfil de confianza al generar un token de IAM a partir de un token de acceso de identidad y vincularlo a la instancia. Para obtener más información, consulte Utilización de un perfil de confianza para llamar a servicios habilitados para IAM.
Próximos pasos
Una vez que hayas creado un token de acceso de identidad y hayas habilitado el acceso al servicio de metadatos, podrás recuperar los metadatos de la instancia, las claves SSH y los grupos de ubicación. Para obtener más información, consulte Recuperación de metadatos de una instancia.