Esta página explica como criar credenciais de curta duração para uma conta de serviço, que pode usar para roubar a identidade da conta de serviço. Consoante o tipo de token que criar, o token de curta duração fornece a identidade (para tokens de ID) ou as autorizações (para tokens de acesso) associadas à conta de serviço.
Se a arquitetura do seu sistema exigir que use uma série de chamadas de geração de tokens, pode usar uma cadeia de delegação composta por várias contas de serviço. Na maioria dos casos, o método direto, conforme explicado nesta página, é suficiente.
Antes de começar
-
Enable the IAM and Service Account Credentials APIs:
gcloud services enable iam.googleapis.com
iamcredentials.googleapis.com Configurar autenticação.
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
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Ir
Para usar os Go exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.
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.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Trusted Cloud documentação de autenticação.
Java
Para usar os Java exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.
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.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Trusted Cloud documentação de autenticação.
Node.js
Para usar os Node.js exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.
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.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Trusted Cloud documentação de autenticação.
Python
Para usar os Python exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.
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.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Trusted Cloud documentação de autenticação.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.
Compreenda as contas de serviço IAM.
Compreenda a simulação de contas de serviço.
Compreenda que tipo de token precisa e siga os passos adequados indicados nas secções abaixo:
Crie uma chave de acesso de curta duração
Os tokens de acesso são aceites para autenticação pela maioria das APIs Google. Quando gera uma chave de acesso através da representação da conta de serviço, a chave de acesso não inclui um símbolo de atualização, o que significa que, quando a chave expira, tem de repetir o processo de representação para gerar uma nova.
Para mais informações, consulte o artigo Tokens de acesso.
Para criar um token de acesso de curta duração, conclua estas tarefas:
Conceda as autorizações necessárias
Um pedido direto envolve duas identidades: o autor da chamada que pede a credencial e a conta de serviço para a qual a credencial é criada. A forma como configura as autorizações depende de o autor da chamada estar a autenticar como uma conta de serviço ou como uma conta de utilizador.
Se quiser executar um comando REST ou gcloud CLI nesta página num ambiente de desenvolvimento local, o autor da chamada pode ser representado por credenciais de utilizador. Para cargas de trabalho automatizadas, como uma aplicação executada no Compute Engine, o autor da chamada tem de ser representado por uma conta de serviço.
Conta de serviço
Quando a aplicação de chamadas usa uma conta de serviço como identidade, os seguintes principais estão envolvidos:
Conta do serviço de chamadas (
CALLER_SA
)Esta conta de serviço representa a aplicação de chamada, que emite o pedido das credenciais de curta duração.
-
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para conceder autorizações à app
CALLER_SA
para criar credenciais de curta duração paraPRIV_SA
, atribui à appCALLER_SA
a função Criador de tokens de conta de serviço (roles/iam.serviceAccountTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o endereço de email da conta de serviço do autor da chamada,
CALLER_SA
.Por exemplo,
demo@my-project.s3ns-system.iam.gserviceaccount.com
. -
Selecione a função Criador de tokens de contas de serviço
(
roles/iam.serviceAccountTokenCreator
). - Clique em Guardar para conceder a função à conta de serviço.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_SA
: o endereço de email da conta de serviço que representa a aplicação que está a pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de permissão para conceder a
CALLER_SA
a função de criador de tokens de conta de serviço (roles/iam.serviceAccountTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_SA
é a conta de serviço que cria o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Credenciais de utilizador
Quando quiser usar a CLI Google Cloud para gerar tokens de curta duração ou quiser gerar tokens de curta duração a partir de um ambiente de desenvolvimento local, pode usar uma conta de utilizador para gerar os tokens. Muitas vezes, pode usar a sua própria conta de utilizador.
Quando usa uma conta de utilizador para gerar tokens de curta duração, estão envolvidas as seguintes identidades:
Conta do autor da chamada (
CALLER_ACCOUNT
)Esta conta de utilizador é usada para gerar credenciais de curta duração para a conta de serviço com privilégios.
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para permitir que
CALLER_ACCOUNT
crie credenciais de curta duração paraPRIV_SA
, atribui aCALLER_ACCOUNT
a função de criador de tokens da conta de serviço (roles/iam.serviceAccountTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o identificador principal da conta do autor da chamada,
CALLER_ACCOUNT
.Por exemplo,
//iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
. -
Selecione a função Criador de tokens de contas de serviço
(
roles/iam.serviceAccountTokenCreator
). - Clique em Guardar para conceder a função à conta de utilizador.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_ACCOUNT
: o endereço de email da conta de utilizador que está a ser usada para pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de autorização para conceder
CALLER_ACCOUNT
a função de criador de tokens de contas de serviço (roles/iam.serviceAccountTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_ACCOUNT
é a conta de utilizador que está a criar o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Gere o token de acesso
Pode gerar um token de acesso OAuth 2.0 através da CLI gcloud, da API REST ou das bibliotecas cliente do Google Cloud e das bibliotecas cliente de APIs Google.
Se usar a API REST e o seu sistema estiver configurado para permitir durações dos tokens prolongadas, pode criar um token com uma duração superior à predefinida. A CLI Google Cloud não suporta a definição de um tempo de vida para o token.
Os exemplos abaixo foram concebidos para serem usados num ambiente de desenvolvimento local; o autor da chamada tem de ser representado por uma conta de utilizador e não por uma conta de serviço.
Gere uma chave de acesso OAuth 2.0 para uma conta de serviço:
gcloud
Certifique-se de que tem sessão iniciada na CLI gcloud com a conta de utilizador do autor da chamada.
Gere um token para a conta de serviço através do comando
gcloud auth print-access-token
.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Windows (PowerShell)
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Windows (cmd.exe)
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Deve receber uma resposta semelhante à seguinte:
WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.s3ns-system.iam.gserviceaccount.com]. ya29.c.b0AXv0zTPnzTnDV8F8Aj5Fgy46Yf2v_v8eZIoKq7xGpfbpXuy23aQ1693m3gAuE8AZga7w6kdagN7a9bfdDYbdeoGY0CMHOClsCwIdutL7k_RFC672lOCbUgF5hS8Iu2nCA8hle-11LJXBLmaxFmH08ZTBJLuDrWSNd8cYqGYFunSC1K1qLIPBF18tsa0hxVgKPucI8b1A9L8_MK1JGLGcr0n7-zY77_lmbcdODG3NmIbLOGWOutjJgqSO_YoeCKK2QTUZIp5PG7RkKlXWnmYJA9pEahzNoQrs5sWZctc2bia9af_ITzqqlXC9h1Kj5-me6e8rd734MJvpagqYazRk0gGWpMb03XmMGpgPc_FBp4pnX9rGOzW83SNpcDz8zeFO1Q0Bo3N7CuZougjRce0y8I2_4rtw5ME_nV3wrCWa..................................................................................................................................................................................................................................................................................................
-
REST
O método
serviceAccounts.generateAccessToken
da API Service Account Credentials gera uma chave de acesso do OAuth 2.0 para uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. -
LIFETIME
: o tempo até o token de acesso expirar, em segundos. Por exemplo,300s
.Por predefinição, a duração máxima do token é de 1 hora (3600 segundos). Para prolongar a duração total máxima destas chaves de acesso para 12 horas (43 200 segundos), adicione a conta de serviço a uma política da organização que inclua a restrição de lista
constraints/iam.allowServiceAccountCredentialLifetimeExtension
.
Método HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateAccessToken
Corpo JSON do pedido:
{ "scope": [ "https://www.googleapis.com/auth/cloud-platform" ], "lifetime": "LIFETIME" }
Para enviar o seu pedido, expanda uma destas opções:
Se o pedido
generateAccessToken
for bem-sucedido, o corpo da resposta contém uma chave de acesso OAuth 2.0 e um prazo de validade. Em seguida, oaccessToken
pode ser usado para autenticar um pedido em nome da conta de serviço até atingir oexpireTime
:{ "accessToken": "eyJ0eXAi...NiJ9", "expireTime": "2020-04-07T15:01:23.045123456Z" }
Ir
Java
Node.js
Python
Crie um token de ID do OpenID Connect (OIDC)
Os tokens de ID seguem a especificação do OpenID Connect (OIDC). Os tokens de ID são aceites por um número limitado de serviços e aplicações.
Para mais informações, consulte tokens de ID.
Para criar um token de ID, conclua estas tarefas:
Conceda as autorizações necessárias ao autor da chamada.
Use a função Criador de tokens de identidade OpenID Connect da conta de serviço (
roles/iam.serviceAccountOpenIdTokenCreator
) para criar um token de ID. Esta é uma função diferente da função que usa para outros tipos de tokens.
Conceda as autorizações necessárias
Um pedido direto envolve duas identidades: o autor da chamada que pede a credencial e a conta de serviço para a qual a credencial é criada. A forma como configura as autorizações depende de o autor da chamada estar a autenticar como uma conta de serviço ou como uma conta de utilizador.
Se quiser executar um comando REST ou gcloud CLI nesta página num ambiente de desenvolvimento local, o autor da chamada pode ser representado por credenciais de utilizador. Para cargas de trabalho automatizadas, como uma aplicação executada no Compute Engine, o autor da chamada tem de ser representado por uma conta de serviço.
Conta de serviço
Quando a aplicação de chamadas usa uma conta de serviço como identidade, os seguintes principais estão envolvidos:
Conta do serviço de chamadas (
CALLER_SA
)Esta conta de serviço representa a aplicação de chamada, que emite o pedido das credenciais de curta duração.
-
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para conceder autorizações à app
CALLER_SA
para criar credenciais de curta duração paraPRIV_SA
, concede à appCALLER_SA
a função de criador de tokens de identidade do OpenID Connect da conta de serviço (roles/iam.serviceAccountOpenIdTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o endereço de email da conta de serviço do autor da chamada,
CALLER_SA
.Por exemplo,
demo@my-project.s3ns-system.iam.gserviceaccount.com
. -
Selecione a função Criador de tokens de identidade OpenID Connect da conta de serviço
(
roles/iam.serviceAccountOpenIdTokenCreator
). - Clique em Guardar para conceder a função à conta de serviço.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_SA
: o endereço de email da conta de serviço que representa a aplicação que está a pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountOpenIdTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de autorização para conceder a
CALLER_SA
a função de criador de tokens de identidade do OpenID Connect da conta de serviço (roles/iam.serviceAccountOpenIdTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_SA
é a conta de serviço que cria o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Credenciais de utilizador
Quando quiser usar a CLI Google Cloud para gerar tokens de curta duração ou quiser gerar tokens de curta duração a partir de um ambiente de desenvolvimento local, pode usar uma conta de utilizador para gerar os tokens. Muitas vezes, pode usar a sua própria conta de utilizador.
Quando usa uma conta de utilizador para gerar tokens de curta duração, estão envolvidas as seguintes identidades:
Conta do autor da chamada (
CALLER_ACCOUNT
)Esta conta de utilizador é usada para gerar credenciais de curta duração para a conta de serviço com privilégios.
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para permitir que
CALLER_ACCOUNT
crie credenciais de curta duração paraPRIV_SA
, concede aCALLER_ACCOUNT
a função Criador de tokens de identidade OpenID Connect da conta de serviço (roles/iam.serviceAccountOpenIdTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o identificador principal da conta do autor da chamada,
CALLER_ACCOUNT
.Por exemplo,
//iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
. -
Selecione a função Criador de tokens de identidade OpenID Connect da conta de serviço
(
roles/iam.serviceAccountOpenIdTokenCreator
). - Clique em Guardar para conceder a função à conta de utilizador.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_ACCOUNT
: o endereço de email da conta de utilizador que está a ser usada para pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountOpenIdTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de permissão para conceder à conta de serviço
CALLER_ACCOUNT
a função de criador de tokens de identidade do OpenID Connect (roles/iam.serviceAccountOpenIdTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_ACCOUNT
é a conta de utilizador que está a criar o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Gere o token de ID
Pode gerar um token de ID do OpenID Connect (OIDC) através da CLI gcloud, da API REST ou das bibliotecas cliente da nuvem e das bibliotecas cliente de APIs Google.
Os exemplos abaixo foram concebidos para serem usados num ambiente de desenvolvimento local; o autor da chamada tem de ser representado por uma conta de utilizador e não por uma conta de serviço.
Os tokens de ID OIDC são válidos durante 1 hora (3600 segundos).
Gere um token de ID OIDC assinado pela Google para uma conta de serviço:
gcloud
Certifique-se de que tem sessão iniciada na CLI gcloud com a conta de utilizador do autor da chamada.
Gere um token para a conta de serviço através do comando
gcloud auth print-identity-token
.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. -
AUDIENCE_NAME
: o público-alvo do token, normalmente o URL da aplicação ou do serviço que o token vai usar para aceder.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Windows (PowerShell)
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Windows (cmd.exe)
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Deve receber uma resposta semelhante à seguinte:
WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.s3ns-system.iam.gserviceaccount.com]. eyJhbGciOiJSUzI1NiIsImtpZDNhMDg4ZDRmZmMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ3d3cuZXhhbXBsJhenAiOiIxMTYzwNDYyMDk0ODIiLCJleHAiOjE2NTQ4ODU0MzEsImlhdCI6MTY1NDg4MTgzMSwiaXN6Ly9hY2NvdW50cy5nb29nbGUuY29tIiwic3ViIMDQ2MjA5NDgyIn0.F7mu8IHj5VQdu7ItFrnYAKyGd7YqXuOP_rFLc98q8BaFBycAF1zAQnSnwqnSUXba0UK9PDT_-IOry68qLwBObz4XlX9lk0ehpN0O0W9FcFToKLB6wefXXPd4h7xtuPe5KzmpSOqj2Qqv34HriGw00Nqd-oGSgNY_lZ4wGEf4rT4oQa_kEcrY57Q2G6pwd769BhgeFwoLi5aK_Cv2kvf_zfMszC-xlkP9zwWQ8XinJBwe-qcQBa4NTgrbueNtXsEjccBS366zmw
-
REST
O método
serviceAccounts.generateIdToken
da API Service Account Credentials gera um token de ID OIDC para uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. -
AUDIENCE_NAME
: o público-alvo do token, normalmente o URL da aplicação ou do serviço que o token vai usar para aceder.
Método HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateIdToken
Corpo JSON do pedido:
{ "audience": "AUDIENCE_NAME", "includeEmail": "true" }
Para enviar o seu pedido, expanda uma destas opções:
Se o pedido
generateId
for bem-sucedido, o corpo da resposta contém um token de ID válido durante 1 hora. Em seguida, otoken
pode ser usado para autenticar um pedido em nome da conta de serviço:{ "token": "eyJ0eXAi...NiJ9" }
Crie um símbolo da Web JSON (JWT) autoassinado
Os símbolos da Web JSON (JWTs) autoassinados são úteis em vários cenários:
- Comunicar em segurança entre as suas próprias aplicações. Neste cenário, uma aplicação pode assinar um token que pode ser validado por outra aplicação para fins de autenticação.
- Tratar uma conta de serviço como um fornecedor de identidade ao assinar um JWT que contém reivindicações arbitrárias sobre um utilizador, uma conta ou um dispositivo.
Para criar um JWT, conclua estas tarefas:
Conceda as autorizações necessárias
Um pedido direto envolve duas identidades: o autor da chamada que pede a credencial e a conta de serviço para a qual a credencial é criada. A forma como configura as autorizações depende de o autor da chamada estar a autenticar como uma conta de serviço ou como uma conta de utilizador.
Se quiser executar um comando REST ou gcloud CLI nesta página num ambiente de desenvolvimento local, o autor da chamada pode ser representado por credenciais de utilizador. Para cargas de trabalho automatizadas, como uma aplicação executada no Compute Engine, o autor da chamada tem de ser representado por uma conta de serviço.
Conta de serviço
Quando a aplicação de chamadas usa uma conta de serviço como identidade, os seguintes principais estão envolvidos:
Conta do serviço de chamadas (
CALLER_SA
)Esta conta de serviço representa a aplicação de chamada, que emite o pedido das credenciais de curta duração.
-
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para conceder autorizações à app
CALLER_SA
para criar credenciais de curta duração paraPRIV_SA
, atribui à appCALLER_SA
a função Criador de tokens de conta de serviço (roles/iam.serviceAccountTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o endereço de email da conta de serviço do autor da chamada,
CALLER_SA
.Por exemplo,
demo@my-project.s3ns-system.iam.gserviceaccount.com
. -
Selecione a função Criador de tokens de contas de serviço
(
roles/iam.serviceAccountTokenCreator
). - Clique em Guardar para conceder a função à conta de serviço.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_SA
: o endereço de email da conta de serviço que representa a aplicação que está a pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de permissão para conceder a
CALLER_SA
a função de criador de tokens de conta de serviço (roles/iam.serviceAccountTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_SA
é a conta de serviço que cria o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Credenciais de utilizador
Quando quiser usar a CLI Google Cloud para gerar tokens de curta duração ou quiser gerar tokens de curta duração a partir de um ambiente de desenvolvimento local, pode usar uma conta de utilizador para gerar os tokens. Muitas vezes, pode usar a sua própria conta de utilizador.
Quando usa uma conta de utilizador para gerar tokens de curta duração, estão envolvidas as seguintes identidades:
Conta do autor da chamada (
CALLER_ACCOUNT
)Esta conta de utilizador é usada para gerar credenciais de curta duração para a conta de serviço com privilégios.
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para permitir que
CALLER_ACCOUNT
crie credenciais de curta duração paraPRIV_SA
, atribui aCALLER_ACCOUNT
a função de criador de tokens da conta de serviço (roles/iam.serviceAccountTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o identificador principal da conta do autor da chamada,
CALLER_ACCOUNT
.Por exemplo,
//iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
. -
Selecione a função Criador de tokens de contas de serviço
(
roles/iam.serviceAccountTokenCreator
). - Clique em Guardar para conceder a função à conta de utilizador.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_ACCOUNT
: o endereço de email da conta de utilizador que está a ser usada para pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de autorização para conceder
CALLER_ACCOUNT
a função de criador de tokens de contas de serviço (roles/iam.serviceAccountTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_ACCOUNT
é a conta de utilizador que está a criar o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Gere o JWT
Gere um JWT autoassinado:
REST
O método
serviceAccounts.signJwt
da API Service Account Credentials assina um JWT com a chave privada gerida pelo sistema de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. -
JWT_PAYLOAD
: o payload JWT a assinar, que é um objeto JSON que contém um conjunto de afirmações JWT. Inclua as reivindicações necessárias para o exemplo de utilização pretendido e para cumprir os requisitos de validação do serviço que está a chamar. Se estiver a chamar uma API Google, consulte o guia de autenticação da Google para ver os requisitos de reivindicação.A reivindicação
exp
(hora de validade) não pode ser superior a 12 horas no futuro. Se estiver a chamar uma API Google, a reivindicaçãoexp
tem de ser definida no máximo 1 hora no futuro.A carga útil de exemplo seguinte contém reivindicações para chamar uma API Google, em que
EXP
é uma data/hora com indicação de tempo inteiro que representa a hora de validade:{ \"iss\": \"PRIV_SA\", \"sub\": \"PRIV_SA\", \"aud\": \"https://firestore.googleapis.com/\", \"iat\": 1529350000, \"exp\": EXP }
Método HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signJwt
Corpo JSON do pedido:
{ "payload": "JWT_PAYLOAD" }
Para enviar o seu pedido, expanda uma destas opções:
Se o pedido
signJwt
for bem-sucedido, o corpo da resposta contém um JWT assinado e o ID da chave de assinatura que foi usado para assinar o JWT. Pode usar o valorsignedJwt
como um token de autorização para autenticar diretamente um pedido em nome da conta de serviço. O token é válido até à hora de validade especificada no pedido:{ "keyId": "42ba1e...fc0a", "signedJwt": "eyJ0eXAi...NiJ9" }
Crie um objeto binário autoassinado (blob)
Os objetos binários ou os blobs autoassinados são usados para transmitir dados binários de forma que o originador dos dados seja conhecido (porque o blob é autoassinado). Os blobs podem ser usados para criar assinaturas, um objeto do Cloud Storage necessário para vários fluxos de autenticação, incluindo URLs assinados. Para obter informações sobre assinaturas, consulte a documentação do Cloud Storage.
Para criar um objeto binário autoassinado, conclua estas tarefas:
Conceda as autorizações necessárias
Um pedido direto envolve duas identidades: o autor da chamada que pede a credencial e a conta de serviço para a qual a credencial é criada. A forma como configura as autorizações depende de o autor da chamada estar a autenticar como uma conta de serviço ou como uma conta de utilizador.
Se quiser executar um comando REST ou gcloud CLI nesta página num ambiente de desenvolvimento local, o autor da chamada pode ser representado por credenciais de utilizador. Para cargas de trabalho automatizadas, como uma aplicação executada no Compute Engine, o autor da chamada tem de ser representado por uma conta de serviço.
Conta de serviço
Quando a aplicação de chamadas usa uma conta de serviço como identidade, os seguintes principais estão envolvidos:
Conta do serviço de chamadas (
CALLER_SA
)Esta conta de serviço representa a aplicação de chamada, que emite o pedido das credenciais de curta duração.
-
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para conceder autorizações à app
CALLER_SA
para criar credenciais de curta duração paraPRIV_SA
, atribui à appCALLER_SA
a função Criador de tokens de conta de serviço (roles/iam.serviceAccountTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o endereço de email da conta de serviço do autor da chamada,
CALLER_SA
.Por exemplo,
demo@my-project.s3ns-system.iam.gserviceaccount.com
. -
Selecione a função Criador de tokens de contas de serviço
(
roles/iam.serviceAccountTokenCreator
). - Clique em Guardar para conceder a função à conta de serviço.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_SA
: o endereço de email da conta de serviço que representa a aplicação que está a pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de permissão para conceder a
CALLER_SA
a função de criador de tokens de conta de serviço (roles/iam.serviceAccountTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_SA
é a conta de serviço que cria o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Credenciais de utilizador
Quando quiser usar a CLI Google Cloud para gerar tokens de curta duração ou quiser gerar tokens de curta duração a partir de um ambiente de desenvolvimento local, pode usar uma conta de utilizador para gerar os tokens. Muitas vezes, pode usar a sua própria conta de utilizador.
Quando usa uma conta de utilizador para gerar tokens de curta duração, estão envolvidas as seguintes identidades:
Conta do autor da chamada (
CALLER_ACCOUNT
)Esta conta de utilizador é usada para gerar credenciais de curta duração para a conta de serviço com privilégios.
Conta de serviço com privilégios (
PRIV_SA
)Esta conta de serviço tem as funções de IAM necessárias para o token de curta duração. Esta é a conta de serviço para a qual o token de curta duração é criado.
Para permitir que
CALLER_ACCOUNT
crie credenciais de curta duração paraPRIV_SA
, atribui aCALLER_ACCOUNT
a função de criador de tokens da conta de serviço (roles/iam.serviceAccountTokenCreator
) emPRIV_SA
.Conceda a função necessária em
PRIV_SA
:Consola
-
Na Trusted Cloud consola, aceda à página Contas de serviço.
- Selecione um projeto.
-
Clique no endereço de email da conta de serviço com privilégios,
PRIV_SA
. - Clique no separador Autorizações.
- Em Principais com acesso a esta conta de serviço, clique em Conceder acesso.
-
Introduza o identificador principal da conta do autor da chamada,
CALLER_ACCOUNT
.Por exemplo,
//iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
. -
Selecione a função Criador de tokens de contas de serviço
(
roles/iam.serviceAccountTokenCreator
). - Clique em Guardar para conceder a função à conta de utilizador.
gcloud
O comando
gcloud iam service-accounts add-iam-policy-binding
concede uma função numa conta de serviço.Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token é gerado. -
CALLER_ACCOUNT
: o endereço de email da conta de utilizador que está a ser usada para pedir o token de curta duração.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Deve receber uma resposta semelhante à seguinte:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Leia a política de permissão para
PRIV_SA
:O método
serviceAccounts.getIamPolicy
obtém a política de autorização de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON do pedido:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
Se não tiver concedido funções à conta de serviço, a resposta contém apenas um valor
etag
. Inclua esse valoretag
no passo seguinte. -
Modifique a política de autorização para conceder
CALLER_ACCOUNT
a função de criador de tokens de contas de serviço (roles/iam.serviceAccountTokenCreator
).Por exemplo, para modificar a resposta de exemplo do passo anterior, adicione o seguinte:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }
-
Escreva a política de permissão atualizada:
O método
serviceAccounts.setIamPolicy
define uma política de permissão atualizada para a conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. POLICY_VERSION
: a versão da política a ser devolvida. Os pedidos devem especificar a versão da política mais recente, que é a versão 3 da política. Consulte o artigo Especificar uma versão da política ao obter uma política para ver detalhes.-
POLICY
: Uma representação JSON da política que quer definir. Para mais informações sobre o formato de uma política, consulte a referência de políticas.Por exemplo, para definir a política de permissão apresentada no passo anterior, substitua
POLICY
pelo seguinte, em queCALLER_ACCOUNT
é a conta de utilizador que está a criar o token de curta duração:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON do pedido:
{ "policy": POLICY }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a política de permissão atualizada.
Gere o blob autoassinado
Gere um blob autoassinado para a conta de serviço:
REST
O método
serviceAccounts.signBlob
da API Service Account Credentials assina um blob com a chave privada gerida pelo sistema de uma conta de serviço.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
PRIV_SA
: o endereço de email da conta de serviço com privilégios para a qual o token de curta duração é criado. -
BLOB_PAYLOAD
: uma string de bytes com codificação base64. Por exemplo,VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu
.
Método HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signBlob
Corpo JSON do pedido:
{ "payload": "BLOB_PAYLOAD" }
Para enviar o seu pedido, expanda uma destas opções:
Se o pedido
signBlob
for bem-sucedido, o corpo da resposta contém um blob assinado e o ID da chave de assinatura que foi usado para assinar o blob. Pode usar o valorsignedBlob
como um token de portador para autenticar diretamente um pedido em nome da conta de serviço. O token é válido até a chave privada gerida pelo sistema da conta de serviço expirar. O ID desta chave é o valor do campokeyId
na resposta.{ "keyId": "42ba1e...fc0a", "signedBlob": "eyJ0eXAi...NiJ9" }
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-20 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-20 UTC."],[[["This page details how to create short-lived credentials for service accounts, enabling impersonation using methods such as direct token generation instead of delegation chains."],["To create short-lived access tokens, the caller (user or service account) requires the Service Account Token Creator role (`roles/iam.serviceAccountTokenCreator`) on the privilege-bearing service account (`PRIV_SA`)."],["You can grant the necessary role through the Google Cloud Console, `gcloud` command-line tool, or REST API, with specific steps provided for each method, depending on whether the caller is a user or service account."],["The document outlines how to generate access tokens, OIDC ID tokens, and self-signed JWTs using `gcloud` and REST API, alongside examples of code snippets in various programming languages."],["The document also provides a summary section of the permissions required, and their respective gcloud and rest methods to achieve that, along with a glossary of key terms."]]],[]]