Desative e ative chaves de contas de serviço

Esta página explica como desativar e ativar chaves de contas de serviço através da Google Cloud consola, da CLI do Google Cloud, da API Identity and Access Management ou de uma das bibliotecas de cliente do Google Cloud.

Antes de começar

  • Enable the IAM API.

    Enable the API

  • Configurar autenticação.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    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.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      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 Google 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.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

  • Compreenda as credenciais da conta de serviço.

Funções necessárias

Para receber as autorizações de que precisa para desativar e ativar chaves de contas de serviço, peça ao seu administrador para lhe conceder a função Administrador de chaves de contas de serviço (roles/iam.serviceAccountKeyAdmin) do IAM no projeto ou na conta de serviço cujas chaves quer gerir. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Para mais informações, consulte o artigo Funções das contas de serviço.

As funções básicas do IAM também contêm autorizações para gerir chaves de contas de serviço. Não deve conceder funções básicas num ambiente de produção, mas pode concedê-las num ambiente de desenvolvimento ou teste.

Desative uma chave de conta de serviço

A desativação de uma chave da conta de serviço impede a utilização da chave para autenticar com as APIs Google. Pode ativar uma chave desativada em qualquer altura.

Antes de eliminar uma chave de conta de serviço, recomendamos que desative a chave e, em seguida, aguarde até ter a certeza de que já não é necessária. Em seguida, pode eliminar a chave.

Pode ver as chaves desativadas na Google Cloud consola, mas não pode usar a Google Cloud consola para desativar uma chave. Em alternativa, use a CLI gcloud ou a API REST.

gcloud

Execute o comando gcloud iam service-accounts keys disable para desativar uma chave de conta de serviço.

Substitua os seguintes valores:

  • KEY_ID: o ID da chave a desativar. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que quer desativar e, em seguida, copie o respetivo ID.
  • SA_NAME: o nome da conta de serviço à qual a chave pertence.
  • PROJECT_ID: o ID do seu Google Cloud projeto.
gcloud iam service-accounts keys disable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --project=PROJECT_ID

Saída:

Disabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.iam.gserviceaccount.com]

Java

Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.

Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.


import com.google.cloud.iam.admin.v1.IAMClient;
import java.io.IOException;


public class DisableServiceAccountKey {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the below variables before running.
    String projectId = "gcloud-project-id";
    String serviceAccountName = "service-account-name";
    String serviceAccountKeyName = "service-account-key-name";

    disableServiceAccountKey(projectId, serviceAccountName, serviceAccountKeyName);
  }

  // Disables a service account key.
  public static void disableServiceAccountKey(String projectId,
                                              String accountName,
                                              String key) throws IOException {
    // Construct the service account email.
    // You can modify the ".iam.gserviceaccount.com" to match the service account name in which
    // you want to disable the key.
    // See, https://cloud.google.com/iam/docs/creating-managing-service-account-keys#disabling
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);
    String name = String.format("projects/%s/serviceAccounts/%s/keys/%s", projectId, email, key);

    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (IAMClient iamClient = IAMClient.create()) {
      iamClient.disableServiceAccountKey(name);

      System.out.println("Disabled service account key: " + name);
    }
  }
}

REST

O método projects.serviceAccounts.keys.disable desativa uma chave de 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 Google Cloud projeto. Os IDs dos projetos são strings alfanuméricas, como my-project.
  • SA_NAME: o nome da conta de serviço cuja chave quer desativar.
  • KEY_ID: o ID da chave que quer desativar. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que quer desativar e, de seguida, copie o respetivo ID do final do campo name. O ID da chave é tudo o que se encontra depois de keys/.

Método HTTP e URL:

POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:disable

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
}

Ative uma chave de conta de serviço

Depois de desativar uma chave da conta de serviço, pode ativá-la em qualquer altura e, em seguida, usar a chave para fazer a autenticação com as APIs Google.

Não pode usar a consola Google Cloud para ativar chaves de contas de serviço. Em alternativa, use a CLI gcloud ou a API REST.

gcloud

Execute o comando gcloud iam service-accounts keys enable para ativar uma chave de conta de serviço.

Substitua os seguintes valores:

  • KEY_ID: o ID da chave a ativar. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que quer ativar e, em seguida, copie o respetivo ID.
  • SA_NAME: o nome da conta de serviço à qual a chave pertence.
  • PROJECT_ID: o ID do seu Google Cloud projeto.
gcloud iam service-accounts keys enable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com\
    --project=PROJECT_ID

Saída:

Enabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.iam.gserviceaccount.com]

Java

Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.

Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.


import com.google.cloud.iam.admin.v1.IAMClient;
import java.io.IOException;


public class EnableServiceAccountKey {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the below variables before running.
    String projectId = "gcloud-project-id";
    String serviceAccountName = "service-account-name";
    String serviceAccountKeyName = "service-account-key-name";

    enableServiceAccountKey(projectId, serviceAccountName, serviceAccountKeyName);
  }

  // Enables a service account key.
  public static void enableServiceAccountKey(String projectId,
                                             String accountName,
                                             String key) throws IOException {
    // Construct the service account email.
    // You can modify the ".iam.gserviceaccount.com" to match the service account name in which
    // you want to enable the key.
    // See, https://cloud.google.com/iam/docs/creating-managing-service-account-keys#enabling
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);
    String name = String.format("projects/%s/serviceAccounts/%s/keys/%s", projectId, email, key);

    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (IAMClient iamClient = IAMClient.create()) {
      iamClient.enableServiceAccountKey(name);

      System.out.println("Enabled service account key: " + name);
    }
  }
}

REST

O método projects.serviceAccounts.keys.enable permite uma chave de 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 Google Cloud projeto. Os IDs dos projetos são strings alfanuméricas, como my-project.
  • SA_NAME: o nome da conta de serviço cuja chave quer ativar.
  • KEY_ID: o ID da chave que quer ativar. Para encontrar o ID da chave: liste todas as chaves da conta de serviço, identifique a chave que quer ativar e, em seguida, copie o respetivo ID do final do campo name. O ID da chave é tudo o que se encontra após keys/.

Método HTTP e URL:

POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:enable

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
}

O que se segue?

Experimente

Se for um novo utilizador do Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Os novos clientes também recebem 300 USD em créditos gratuitos para executar, testar e implementar cargas de trabalho.

Comece gratuitamente