Crie assinaturas

Esta página mostra como usar o método Trusted Cloud signBlob para criar uma assinatura a partir de uma string a assinar ou de um documento de política. As assinaturas são usadas como credenciais em determinados pedidos, como URLs assinados. Este guia usa chaves RSA para criar assinaturas.

Antes de começar

  1. Enable the Service Account Credentials API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Tem de ter a autorização iam.serviceAccounts.signBlob para a conta de serviço que usa neste guia. A autorização iam.serviceAccounts.signBlob está incluída na função roles/iam.serviceAccountTokenCreator.

  3. A conta de serviço que usa neste guia tem de ter autorização para executar o pedido codificado na assinatura. Por exemplo, se a assinatura for usada para ler dados de objetos de um contentor, a conta de serviço tem de ter autorização para ler os dados de objetos.

Crie uma assinatura

  1. Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho Authorization.

  2. Crie um ficheiro JSON que contenha as seguintes informações:

    {
      "payload": "REQUEST_INFORMATION"
    }

    Onde:

  3. Use cURL para chamar a API IAM com um pedido signBlob:

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"

    Onde:

    • JSON_FILE_NAME é o nome do ficheiro que criou no passo 2.

    • SERVICE_ACCOUNT_EMAIL é o endereço de email da conta de serviço que quer usar para criar a assinatura. Por exemplo, service-7550275089395@my-pet-project.s3ns.iam.gserviceaccount.com.

    Se for bem-sucedido, é devolvido um resumo da mensagem no campo signedBlob da resposta, que é codificado em base64.

  4. Para concluir a assinatura, certifique-se de que o resumo da mensagem está descodificado em base64 e, em seguida, codifique o resumo da mensagem em hexadecimal.

O que se segue?