Operações de identidade
Você pode usar o serviço de metadados para obter um token de acesso à identidade do serviço de metadados, gerar um token de acesso ao IAM e criar um certificado de identidade. Esses tokens e certificados podem ser usados para acessar os serviços de metadados para chamar serviços habilitados para IAM e para estabelecer conexões criptografadas entre compartilhamentos de arquivos e instâncias de servidor virtual.
Token de acesso de identidade
Um token de acesso de identidade fornece uma credencial de segurança para acessar os serviços de metadados do IBM Cloud® e de identidade da VPC. Trata-se de um token assinado com um conjunto de reivindicações baseadas em informações sobre a
instância e em informações fornecidas na solicitação do token. A versão mínima necessária para usar o recurso de token de acesso de identidade é 2022-03-01.
A comunicação entre a instância e o serviço de metadados ocorre internamente no servidor. Você adquire o token de dentro da instância. Se o acesso seguro ao serviço de metadados estiver ativado em sua instância, use o protocolo "https" em vez do protocolo "http".
Para obter o token de identidade, faça uma solicitação PUT /identity/v1/token para a API do serviço de metadados.
Se você atualmente usa o /instance_identity/v1/token método e deseja adotar a versão de lançamento 2025-08-26 da API ou posterior, analise as alterações descritas nas orientações de migração: Atualização para a 2025-08-26 versão da API de identidade VPC.
curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26" -H "Metadata-Flavor: ibm" -d '{}'
Na solicitação, você pode especificar um tempo de expiração para o token. O valor de expiração padrão é de 5 minutos, mas você pode especificar qualquer valor entre 5 segundos e 1 hora. Veja o exemplo a seguir de um host que tem o acesso seguro ativado. No próximo exemplo, o tempo de expiração do token é especificado como uma 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}'
A resposta da API contém o token de acesso à identidade. Use este token para acessar o serviço de metadados.
A resposta JSON a seguir mostra a sequência de caracteres do token de acesso de identidade, a data e a hora em que foi criado, a data e a hora de validade, bem como o horário de validade definido por você. Esse token expira em 5 minutos.
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IlZTSS1DUl91cy1lYXN0X2I5...",
"created_at": "2025-06-10T11:08:39.363Z",
"expires_at": "2025-06-10T11:13:39.363Z",
"expires_in": 300
}
Ou você também pode usar o seguinte 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)'`
No exemplo a seguir, o valor de retorno do comando cURL é o token de acesso à identidade. O token é extraído pelo comando jq e inserido na variável de ambiente 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)'`
O exemplo utiliza o jq como analisador sintático, uma ferramenta de terceiros licenciada sob a licença MIT. O jq pode não vir pré-instalado em todas as imagens de
VPC disponíveis no momento da criação de uma instância. Talvez seja necessário instalar o jq antes de usá-lo ou utilizar outro analisador de sua preferência.
Você pode especificar a variável identity_token em uma chamada GET para o serviço de metadados para invocar um dos métodos de metadados. Para obter mais informações, consulte Recuperar metadados de suas instâncias em execução.
Você também pode gerar um token do IAM a partir desse token de identidade e usar a API da VPC para chamar serviços habilitados para o IAM. Para obter mais informações, consulte “Gerar um token IAM a partir de um token de acesso de identidade ”.
Gerar um token IAM a partir de um token de identidade e acesso
Para acessar os serviços do IBM Cloud s que suportam o IAM na conta, você pode gerar um token do IAM a partir do token de identidade e acesso e de um perfil confiável. Depois de gerar o token do IAM, você poderá usá-lo para acessar serviços compatíveis com o IAM, como o IBM Cloud Object Storage, o Cloud Database Service e as APIs do VPC. Você pode reutilizar o token várias vezes.
Faça uma solicitação POST /identity/v1/iam_tokens e especifique a ID do perfil confiável. Essa solicitação utiliza o token de acesso de identidade e um perfil confiável vinculado a uma instância de servidor virtual para gerar um
token de acesso do IAM. O perfil confiável pode ser vinculado quando ao criar a instância ou fornecido no corpo da solicitação.
A API do IAM usada para passar o token de identidade e acesso e gerar um token do IAM está sendo descontinuada. Os usuários beta devem migrar para a API do serviço de metadados para gerar um token IAM usando POST /identity/v1/iam_tokens.
Solicitação de exemplo:
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)'`
A resposta JSON mostra o token de IAM.
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aGVfYmVzdCI6I8...",
"created_at": "2025-06-10T14:10:15Z",
"expires_at": "2025-06-10T15:10:15Z",
"expires_in": 3600
}
Para obter mais informações sobre perfis confiáveis, consulte Usando um perfil confiável para chamar os serviços ativados pelo IAM.
Geração de um certificado de identidade usando um token de acesso à identidade
Os certificados de identidade são necessários para ativar e usar com êxito a criptografia em trânsito entre as instâncias do servidor virtual e os compartilhamentos IBM Cloud® File Storage for VPC. Para gerar um certificado de identidade para
a instância, faça uma chamada para POST /identity/v1/certificates com o token de acesso à identidade e uma solicitação de assinatura de certificado (CSR).
Você pode obter as solicitações de assinatura de certificado (CSRs) no kit de ferramentas de linha de comando de código aberto. OpenSSL
-
O comando a seguir gera uma CSR ( Certificate Signing Request, solicitação de assinatura de certificado ) e um par de chaves RSA usando o openssl. Quando você executar o comando, substitua o código do país
USpelo código do país de dois dígitos em'/C=US'.openssl req -sha256 -newkey rsa:4096 -subj '/C=US' -out ./sslcert.csr -keyout file.key -nodesSe estiver usando um software diferente para criar o CSR, talvez seja solicitado que você insira informações sobre sua localização, como código do país (C), estado (ST), localidade (L), nome da organização (O) e unidade organizacional (OU). Qualquer um desses atributos de nomenclatura pode ser usado. Quaisquer outros atributos de nomenclatura, tais como nomes comuns, são rejeitados. As CSRs com Common Name especificado são rejeitadas porque, quando você faz a solicitação à API de metadados, o sistema aplica valores de ID de instância ao Common Name do assunto para os certificados de identidade. Os CSRs com extensões também são rejeitados.
-
Formate o CSR antes de fazer uma chamada de API para o serviço de metadados usando o seguinte comando.
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' sslcert.csr
Em seguida, você pode fazer a solicitação de API para o serviço Metadata. Consulte o exemplo a seguir. O valor de csr é obrigatório. O valor de expires_in é opcional. O valor padrão para
expiração é 3600, o 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"}'
Ou você também pode usar o seguinte 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"}'
Uma resposta bem-sucedida retorna o novo certificado com informações como seu ID e os horários de criação e expiração.
{
"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 obter mais informações, consulte Criptografia em trânsito - Protegendo conexões de montagem entre o compartilhamento de arquivos e o host.
Decodificação do token de acesso de identidade
IBM Cloud® Virtual Private Cloud Os tokens de acesso a metadados de identidade são tokens JSON Web (JWTs) padrão. É possível decodificá-las usando ferramentas de linha de comando, decodificadores on-line ou bibliotecas de programação para visualizar informações como o tempo de validade (exp), informações do servidor (iaas) e o nonce.
A maneira mais rápida de decodificar um token de identidade do IBM Cloud VPC no seu terminal é usando ferramentas padrão do Unix ou utilitários de CLI especializados.
Os tokens de identidade consistem em três partes (cabeçalho, carga útil e assinatura), separadas por separadores de ponto ..
- O objeto de cabeçalho codificado é composto por pares chave-valor.
- O objeto de carga útil codificada, composto por reivindicações, que são essencialmente pares chave-valor. A seguir, apresentamos exemplos de reivindicações do tipo “ IBM Cloud VPC ” em tokens de identidade.
iaasvpc- endereços IP personalizados
- sub-redes
- A assinatura do emissor, utilizada para determinar se o código JWT foi comprometido ou alterado após sua emissão. A assinatura é criada pelo emissor por meio da assinatura dos objetos de cabeçalho e carga codificados com uma chave de servidor
ou chave privada. O emissor é indicado pela declaração “
iss”.
-
Para decodificar um token de identidade usando o
base64e ojq, você pode decodificar a carga útil (a segunda parte) com o seguinte comando.# Replace <TOKEN> with your actual token string echo "<TOKEN>" | cut -d '.' -f 2 | base64 --decode | jq .Para tokens que utilizam URL-safe Base64, talvez seja necessário substituir
-por+e_por/antes da decodificação. -
Para decodificar um token de identidade usando o jwt-cli, siga as etapas a seguir. Esse processo deve ser utilizado com cautela.
-
Instale uma ferramenta específica para obter um resultado mais limpo.
npm install -g jwt-cli -
Emita o seguinte comando.
jwt decode <TOKEN> -
Analise as informações contidas na seção de carga útil. Consulte o exemplo a seguir.
{ "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 o JWT, verifique a assinatura
isse certifique-se de que o objeto de cabeçalho codificado e o objeto de carga útil codificado não tenham sido alterados após a emissão do JWT.
-
Você também pode usar uma ferramenta de terceiros, como o python-jwt ou o golang-jwt, para decodificar o JWT.
Criação de um perfil confiável para a instância
Os perfis confiáveis para identidades de recursos de computação ajudam você a atribuir uma identidade IAM do tipo “ IBM Cloud® ” a um recurso do tipo “ IBM Cloud® ”, como uma instância de servidor virtual. É possível chamar qualquer serviço ativado pelo IAM de uma instância sem ter que gerenciar e distribuir segredos do IAM para a instância. É possível criar um perfil confiável ao gerar um token IAM a partir de um token de identidade e acesso e vinculá-lo à instância. Para obter mais informações, consulte Usando um perfil confiável para chamar os serviços ativados pelo IAM.
Próximas etapas
Depois de criar um token de acesso de identidade e habilitar o acesso ao serviço de metadados, você poderá recuperar os metadados da instância, das chaves SSH e dos grupos de alocação. Para obter mais informações, consulte Recuperação de metadados de uma instância.