Entendendo as chaves de API

Uma chave de interface de programação de aplicativos (chave de API) é um código exclusivo passado para uma API para identificar o aplicativo de chamada ou o usuário. As chaves API são usadas para rastrear e controlar como a API está sendo usada, por exemplo, para evitar uso malicioso ou abuso da API. A chave de API muitas vezes age como um identificador exclusivo e um token secreto para autenticação e um conjunto de acesso específico para a identidade que está associada a ele é designado.

Para visualizar suas chaves de API, vá para Gerenciar > Acesso (IAM) > Chaves de API no console IBM Cloud.

Chaves de API do IBM Cloud para usuários

As chaves de API do IBM Cloud® estão associadas à identidade de um usuário. Cada chave de API criada por um usuário tem o mesmo acesso que lhe é atribuído em todas as contas das quais ele é membro. Como a chave de API herda todo o acesso do usuário, ela pode fornecer a capacidade de acessar recursos em qualquer conta em que o usuário tenha permissões. Por esse motivo, as chaves de API do usuário devem ser tratadas de forma semelhante a um nome de usuário e senha e nunca devem ser compartilhadas.

Uso de IDs funcionais

As chaves de API do IBM Cloud para os usuários podem ser criadas e associadas a um ID funcional. Um ID funcional é um ID do usuário criado para representar um programa, um aplicativo ou um serviço. O ID funcional pode ser convidado para uma conta e ter designado somente o acesso para um determinado propósito, como interagir com um recurso ou aplicativo específico.

Se um serviço exigir uma chave de API de usuário para interagir com outros serviços ou aplicativos, use uma chave de API de usuário de ID funcional. Ao usar a chave de API associada à ID funcional, você fornece apenas o acesso necessário para esse serviço. Compartilhar uma chave de API de ID de usuário real com um serviço permite que o serviço acesse quaisquer recursos que o usuário possa acessar em várias contas, o que é altamente desencorajado.

Somente o usuário para o qual a chave de API está associada e um administrador do serviço IAM podem excluí-la. Você pode usar as chaves de API do IBM Cloud na interface de linha de comando (CLI) ou como parte da automação para fazer login como sua identidade de usuário. Também é possível usar as chave de API do IBM Cloud para acessar APIs de infraestrutura clássica.

Para obter mais informações sobre como usar uma chave API associada à sua identidade de usuário, veja Gerenciando chaves API do usuário.

Outros tipos de chaves de API

Além de suas chaves de API IBM Cloud, outros tipos de chaves de API estão disponíveis:

Chaves de API do ID de serviço
Os IDs de serviço são usados para conectar um aplicativo dentro ou fora do IBM Cloud a um serviço IBM Cloud. As chaves de API de ID de serviço herdam todo o acesso que é designado ao ID de serviço específico. Para obter mais informações, consulte Gerenciando chaves de API do ID de serviço.
Chaves de API de infraestrutura clássica
As chaves de API de infraestrutura clássica são usadas para chamar as APIs para serviços de infraestrutura clássica. É possível criar somente uma chave de API de infraestrutura clássica por vez. Para obter mais informações, consulte Gerenciando chaves de API de infraestrutura clássica.
Chaves API específicas do serviço
Alguns serviços no IBM Cloud podem fornecer uma chave de API quando você trabalha com o serviço. Essas são chaves de API geradas automaticamente e associadas a um ID de serviço. Por exemplo, se você estiver visualizando os detalhes do produto de um serviço Watson na página Resource list (Lista de recursos), poderá criar uma credencial que inclua uma chave de API e um segredo específicos para esse serviço na página Service credentials (Credenciais de serviço).

As chaves de API do IBM Cloud também podem ser usadas para acessar APIs de infraestrutura clássica.

Compreensão das práticas recomendadas de segurança para chaves de API

A implementação das seguintes práticas recomendadas para chaves de API pode ajudar a aumentar a segurança e a proteção de suas cargas de trabalho:

  • Evite incorporar chaves no código para minimizar os riscos de exposição.
  • Gire as chaves de API regularmente para limitar a janela de vulnerabilidade. O site Secrets Manager pode ajudá-lo a automatizar isso. Para obter mais informações, consulte Rotação de seus segredos.
  • Aplique o princípio do menor privilégio ao atribuir permissões.
  • Mantenha os contatos de segurança atualizados para receber notificações oportunas.
  • Monitore o site Activity Tracker Event Routing quanto ao uso suspeito de chaves de API.
  • Defina datas de validade nas chaves de API, quando apropriado.
  • Configure a definição de ação de vazamento para desativar ou excluir automaticamente uma chave de API se ela for descoberta em um vazamento.

Trabalhando com chaves API

Para gerenciar as chaves de API do IBM Cloud associadas à sua identidade de usuário ou as que você tem acesso para gerenciar para outros usuários na conta, acesse Manage > Access (IAM) > API keys no console IBM Cloud.

Na página IBM Cloud API keys (Chaves de API ), você pode criar, editar ou excluir suas próprias chaves de API IBM Cloud. Você também pode gerenciar todas as chaves de API de infraestrutura clássica para usuários na sua hierarquia de usuários. Se você for o proprietário da conta ou um usuário com o acesso necessário para gerenciar as chaves de API de outros usuários na conta, poderá usar o filtro View para listar e gerenciar essas chaves de API.

Expiração da chave de API

Quando uma chave de API é criada ou atualizada, você pode definir uma data de expiração. Se uma data de expiração for especificada, a chave de API será inválida após essa data. As chaves de API expiradas são excluídas automaticamente 90 dias após a expiração. Alguns dias antes de uma chave de API expirar, uma notificação é enviada por meio do serviço de notificação IBM Cloud para o usuário que possui a chave de API (para chaves de nível de usuário) ou para o proprietário da conta (para chaves de API de ID de serviço).

Proteção de chaves de API vazadas

As chaves de API são credenciais poderosas que fornecem acesso aos recursos e serviços do site IBM Cloud. Quando essas chaves são expostas inadvertidamente em repositórios públicos, registros ou outros locais, elas podem criar riscos significativos à segurança. Os agentes mal-intencionados examinam ativamente os repositórios públicos em busca de credenciais vazadas e podem explorá-las rapidamente para obter acesso não autorizado, operações de mineração de criptografia ou outras atividades mal-intencionadas, geralmente minutos após a exposição. Dependendo do acesso concedido ao usuário ou ID de serviço associado à chave, os malfeitores podem ser capazes de:

  • Acessar ou excluir dados.
  • Provisionar recursos em sua conta, incluindo recursos que podem ser usados para mineração de bitcoin.
  • Realizar outras ações nos serviços de sua conta.
  • Criam IDs adicionais ou chaves de API em sua conta para dar a si mesmos acesso persistente, mesmo depois que você muda a chave comprometida.

IBM Cloud aproveita os recursos de varredura de segredos de plataformas como GitHub e GitLab para ajudar a identificar chaves de API expostas. Quando se determina que uma chave foi vazada, você ou sua equipe de segurança podem tomar rapidamente a ação apropriada com base na disposição configurada para essa chave. Dependendo de sua configuração, o site IBM pode executar as seguintes ações:

Desativar a chave vazada
A chave da API é imediatamente desativada pelo site IBM, impedindo o uso não autorizado enquanto você investiga e determina as próximas etapas. Essa abordagem é recomendada para a maioria das chaves, exceto em situações em que tenha sido feita uma avaliação e o risco devido a uma chave exposta seja baixo. Se uma chave for desativada, as chamadas de API do seu aplicativo para os serviços de nuvem falharão, o que pode causar uma interrupção.
Excluir a chave vazada
A chave de API é excluída permanentemente pelo site IBM após a detecção. Isso oferece a proteção mais forte, mas requer a criação de uma nova chave. Se uma chave for excluída, as chamadas de API do seu aplicativo para os serviços de nuvem falharão, o que pode causar uma interrupção.
Não fazer nada
Nenhuma ação automática é tomada. Você ainda poderá receber notificações sobre a exposição, mas deverá resolver o problema manualmente.

Antes de tomar uma decisão, é importante pesar as consequências de segurança da exposição de uma chave em relação às consequências de uma interrupção do aplicativo. O site IBM recomenda o uso da opção "Disable" (Desativar) para a maioria das chaves, exceto em situações em que uma avaliação tenha sido feita e o risco de uma chave ser exposta seja baixo devido ao acesso limitado. Se a sua organização exigir a configuração "Do nothing" (Não fazer nada) para chaves de API específicas devido a requisitos de produção, o site IBM recomenda que você analise regularmente a sua postura de segurança, implemente controles de compensação, como a rotação frequente de chaves, e planeje ativar a proteção automática quando o seu ambiente permitir.

Para obter mais informações, consulte Revisão de chaves de API de usuário que vazaram ou Revisão de chaves de API de ID de serviço que vazaram.

Acesso necessário para gerenciar chaves de API

Por padrão, você sempre tem acesso para criar suas próprias chaves de API e, então, atualizar e excluí-las, conforme necessário. Você também pode gerenciar sua própria chave de API de infraestrutura clássica e as chaves de API de infraestrutura clássica de qualquer usuário do qual você seja um ancestral na hierarquia de usuários de infraestrutura clássica.

Se a configuração de conta IAM Restrict API key creation (Restringir criação de chave de API) estiver ativada, todos na conta serão impedidos de criar chaves de API, inclusive o proprietário da conta, a menos que lhes seja atribuído acesso explícito. Para obter mais informações, consulte Restringindo a criação de chaves de API pelos usuários.

Se você for o proprietário da conta ou um usuário com o acesso necessário, poderá acessar as chaves de API do usuário ou as chaves de API do ID de serviço usando o filtro Visualizar na página de chaves de API. É possível editar ou excluir as chaves de API, dependendo de seu acesso designado. Você vê apenas as opções de filtro para o tipo de chaves de API que você tem acesso para visualizar e gerenciar.

Tabela 1. Acesso necessário para o gerenciamento de chaves de API na página Chaves de API
Opções de filtro Chaves de API exibidas Acesso necessário Ações permitidas
Minhas chaves de API do IBM Cloud Suas chaves de API do IBM Cloud Nenhum acesso necessário Visualizar, criar, editar, excluir
Todas as chaves de API do usuário do IBM Cloud Todas as chaves de API do IBM Cloud criadas por todos os usuários na conta Função de administrador no serviço de Identidade do IAM Visualizar, editar e excluir
Todas as chaves de API do ID de serviço Todas as chaves de API criadas para IDs de serviço na conta Função de administrador no serviço de Identidade do IAM Visualizar, editar e excluir
Chaves de API de infraestrutura clássica Sua chave de API de infraestrutura clássica e quaisquer chaves de API de infraestrutura clássicas para usuários dos quais você é antecessor na hierarquia do usuário Nenhum acesso necessário além de ser um antecessor na hierarquia do usuário Visualizar detalhes e excluir